WebKit Bugzilla
Attachment 342345 Details for
Bug 181293
: Import the 2.0.0 version of Khronos WebGL conformance suite
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Full Patch try #2
update-tests.patch (text/plain), 27.99 MB, created by
Justin Fan
on 2018-06-08 16:47:06 PDT
(
hide
)
Description:
Full Patch try #2
Filename:
MIME Type:
Creator:
Justin Fan
Created:
2018-06-08 16:47:06 PDT
Size:
27.99 MB
patch
obsolete
>diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index fc310f02e34..9c1f3516776 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,129 @@ >+2018-06-07 Justin Fan <justin_fan@apple.com> >+ >+ Import the 2.0.0 version of Khronos WebGL conformance suite >+ https://bugs.webkit.org/show_bug.cgi?id=181293 >+ <rdar://problem/40654103> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Original description and patch by Zan Dobersek <zdobersek@igalia.com>. >+ Retrying patch with up-to-date revision of conformance suite: >+ >+ "Import the 2.0.0 version of the WebGL conformance suite that's >+ maintained under the Khronos organization on GitHub: >+ https://github.com/KhronosGroup/WebGL.git >+ >+ The following revision of this repository has been used for importing: >+ 8ea92581353d18f50d25159489897ae634eb23b1 >+ >+ For importing purposes, the generate-webgl-tests.py script is modified >+ to import tests at version 2.0.0 or below. 2.0 is now used as the >+ default version for importing purposes. Additionally, the >+ GreaterThanOrEqualToVersion function is fixed to correctly compare 2.x >+ versions against 1.x. >+ >+ The following generate-webgl-tests.py invocation was used: >+ $ python generate-webgl-tests.py -e -w ~/WebGL/conformance-suites/2.0.0 >+ >+ The 2.0.0 version of the conformance suite is composed of three parts: >+ - tests under conformance/ cover WebGL1 functionality, >+ - tests under conformance2/ cover WebGL2 functionality, >+ - tests under deqp/ are a port of the dEQP suite. >+ webkit-webgl-test-harness.js file is added under webgl/2.0.0/resources/ >+ to properly integrate the imported tests with the WebKit testing >+ facilities. >+ >+ The complete suite is for now skipped on all platforms. WebGL1 tests >+ should be passing in majority, with failures in that part of the suite >+ mirroring the ones experienced in the current 1.0.2 and 1.0.3 suites. >+ The WebGL2 support is still incomplete, and the conformance2/ pass rate >+ will reflect that. dEQP in majority utilizes WebGL2, so the pass rate >+ is similarly poor. >+ >+ List of imported conformance suite files is omitted for brevity." >+ >+ * TestExpectations: Skip the WebGL 1 (conformance) and WebGL 2 (conformance2) tests >+ * webgl/2.0.0/conformance: Added. >+ * webgl/2.0.0/conformance2: Added. >+ * webgl/2.0.0/deqp: Added. >+ * webgl/2.0.0/resources: Added. >+ * webgl/2.0.0/resources/webkit-webgl-test-harness.js: >+ (window.layoutTestController.window.console.log): >+ (window.layoutTestController.window.console.error): >+ (log): >+ (window.webglTestHarness.reportResults): >+ (window.webglTestHarness.notifyFinished): >+ * webgl/generate-webgl-tests.py: >+ (GreaterThanOrEqualToVersion): >+ * webgl/resources/js-test-pre.js: >+ (window.console.log): >+ (window.console.error): >+ (initNonKhronosFramework): >+ (this.initTestingHarness): >+ (nonKhronosFrameworkNotifyDone): >+ (reportTestResultsToHarness): >+ (notifyFinishedToHarness): >+ (_logToConsole): >+ (enableJSTestPreVerboseLogging): >+ (description): >+ (_addSpan): >+ (debug): >+ (escapeHTML): >+ (testPassed): >+ (testFailed): >+ (areArraysEqual): >+ (isMinusZero): >+ (isResultCorrect): >+ (stringify): >+ (evalAndLog): >+ (shouldBe): >+ (shouldNotBe): >+ (shouldBeTrue): >+ (shouldBeFalse): >+ (shouldBeNaN): >+ (shouldBeNull): >+ (shouldBeEqualToString): >+ (shouldEvaluateTo): >+ (shouldBeNonZero): >+ (shouldBeNonNull): >+ (shouldBeUndefined): >+ (shouldBeDefined): >+ (shouldBeGreaterThanOrEqual): >+ (expectTrue): >+ (shouldThrow): >+ (assertMsg): >+ (gc.gcRec): >+ (gc): >+ (finishTest): >+ * webgl/resources/webgl-test-harness.js: >+ (log): >+ (try.request.onreadystatechange): >+ (loadTextFileAsynchronous): >+ (getMajorVersion): >+ (getURLWithOptions): >+ (greaterThanOrEqualToVersion): >+ (copyObject): >+ (toCamelCase): >+ (getFileListImpl): >+ (getFileList): >+ (FilterURL): >+ (TestFile): >+ (Test): >+ (TestHarness): >+ (TestHarness.prototype.addFiles_): >+ (TestHarness.prototype.runTests): >+ (TestHarness.prototype.setTimeout): >+ (TestHarness.prototype.clearTimeout): >+ (TestHarness.prototype.startNextTest): >+ (TestHarness.prototype.startTest): >+ (TestHarness.prototype.getTest): >+ (TestHarness.prototype.reportResults): >+ (TestHarness.prototype.dequeTest): >+ (TestHarness.prototype.notifyFinished): >+ (TestHarness.prototype.timeout): >+ (TestHarness.prototype.setTimeoutDelay): >+ (WebGLTestHarnessModule): >+ > 2018-06-08 Brendan McLoughlin <brendan@bocoup.com> > > Sync web-platform-tests repo to 197cdad >diff --git a/LayoutTests/TestExpectations b/LayoutTests/TestExpectations >index b332b9c6b75..d7e8d174dcb 100644 >--- a/LayoutTests/TestExpectations >+++ b/LayoutTests/TestExpectations >@@ -2010,4 +2010,8 @@ webkit.org/b/184802 http/tests/security/contentTypeOptions/nosniff-importScript- > webkit.org/b/181100 inspector/worker/worker-recover-if-inspector-close.html [ Pass Failure ] > > [ Debug ] imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-large.html [ Failure ] >-[ Debug ] imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-small.html [ Failure ] >\ No newline at end of file >+[ Debug ] imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-small.html [ Failure ] >+### WebL Conformance Suite 2.0.0 tests that do not yet have support as of 6/7/2018. Enable as support is implemented. ### >+ >+# All WebGL 1 and 2 tests for now >+webgl/2.0.0 [ Skip ] >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-bindAttribLocation-aliasing-expected.txt b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-bindAttribLocation-aliasing-expected.txt >new file mode 100644 >index 00000000000..0196a009414 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-bindAttribLocation-aliasing-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-aliasing.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-bindAttribLocation-aliasing.html b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-bindAttribLocation-aliasing.html >new file mode 100644 >index 00000000000..890e38de397 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-bindAttribLocation-aliasing.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-bindAttribLocation-aliasing.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-aliasing.html">../../resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-aliasing.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-aliasing.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-bindAttribLocation-matrix-expected.txt b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-bindAttribLocation-matrix-expected.txt >new file mode 100644 >index 00000000000..9bfaffcb61c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-bindAttribLocation-matrix-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-matrix.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-bindAttribLocation-matrix.html b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-bindAttribLocation-matrix.html >new file mode 100644 >index 00000000000..768da00b6e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-bindAttribLocation-matrix.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-bindAttribLocation-matrix.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-matrix.html">../../resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-matrix.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-matrix.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-bindAttribLocation-repeated-expected.txt b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-bindAttribLocation-repeated-expected.txt >new file mode 100644 >index 00000000000..a2430d3881a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-bindAttribLocation-repeated-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-repeated.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-bindAttribLocation-repeated.html b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-bindAttribLocation-repeated.html >new file mode 100644 >index 00000000000..a797a9f50ec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-bindAttribLocation-repeated.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-bindAttribLocation-repeated.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-repeated.html">../../resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-repeated.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-repeated.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-disabled-vertex-attrib-expected.txt b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-disabled-vertex-attrib-expected.txt >new file mode 100644 >index 00000000000..67b02b49ad2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-disabled-vertex-attrib-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/attribs/gl-disabled-vertex-attrib.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-disabled-vertex-attrib.html b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-disabled-vertex-attrib.html >new file mode 100644 >index 00000000000..9d622f14138 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-disabled-vertex-attrib.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-disabled-vertex-attrib.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/attribs/gl-disabled-vertex-attrib.html">../../resources/webgl_test_files/conformance/attribs/gl-disabled-vertex-attrib.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/attribs/gl-disabled-vertex-attrib.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-enable-vertex-attrib-expected.txt b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-enable-vertex-attrib-expected.txt >new file mode 100644 >index 00000000000..0fdb23bbd1f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-enable-vertex-attrib-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/attribs/gl-enable-vertex-attrib.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-enable-vertex-attrib.html b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-enable-vertex-attrib.html >new file mode 100644 >index 00000000000..408efdaaf73 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-enable-vertex-attrib.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-enable-vertex-attrib.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/attribs/gl-enable-vertex-attrib.html">../../resources/webgl_test_files/conformance/attribs/gl-enable-vertex-attrib.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/attribs/gl-enable-vertex-attrib.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-matrix-attributes-expected.txt b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-matrix-attributes-expected.txt >new file mode 100644 >index 00000000000..f5ced2b37cd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-matrix-attributes-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/attribs/gl-matrix-attributes.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-matrix-attributes.html b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-matrix-attributes.html >new file mode 100644 >index 00000000000..7338e5ed6f3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-matrix-attributes.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-matrix-attributes.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/attribs/gl-matrix-attributes.html">../../resources/webgl_test_files/conformance/attribs/gl-matrix-attributes.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/attribs/gl-matrix-attributes.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertex-attrib-expected.txt b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertex-attrib-expected.txt >new file mode 100644 >index 00000000000..67524926a47 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertex-attrib-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/attribs/gl-vertex-attrib.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertex-attrib-render-expected.txt b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertex-attrib-render-expected.txt >new file mode 100644 >index 00000000000..58306ae7187 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertex-attrib-render-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-render.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertex-attrib-render.html b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertex-attrib-render.html >new file mode 100644 >index 00000000000..b6e89109f90 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertex-attrib-render.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-vertex-attrib-render.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-render.html">../../resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-render.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-render.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertex-attrib-zero-issues-expected.txt b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertex-attrib-zero-issues-expected.txt >new file mode 100644 >index 00000000000..fa8eae5d95e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertex-attrib-zero-issues-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-zero-issues.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertex-attrib-zero-issues.html b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertex-attrib-zero-issues.html >new file mode 100644 >index 00000000000..693b9eca986 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertex-attrib-zero-issues.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-vertex-attrib-zero-issues.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-zero-issues.html">../../resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-zero-issues.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-zero-issues.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertex-attrib.html b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertex-attrib.html >new file mode 100644 >index 00000000000..b439d823a80 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertex-attrib.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-vertex-attrib.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/attribs/gl-vertex-attrib.html">../../resources/webgl_test_files/conformance/attribs/gl-vertex-attrib.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/attribs/gl-vertex-attrib.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertexattribpointer-expected.txt b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertexattribpointer-expected.txt >new file mode 100644 >index 00000000000..e7c9bab9bfa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertexattribpointer-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertexattribpointer-offsets-expected.txt b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertexattribpointer-offsets-expected.txt >new file mode 100644 >index 00000000000..09292b802f0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertexattribpointer-offsets-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer-offsets.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertexattribpointer-offsets.html b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertexattribpointer-offsets.html >new file mode 100644 >index 00000000000..790d424ff27 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertexattribpointer-offsets.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-vertexattribpointer-offsets.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer-offsets.html">../../resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer-offsets.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer-offsets.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertexattribpointer.html b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertexattribpointer.html >new file mode 100644 >index 00000000000..5a1b25b8d6a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/attribs/gl-vertexattribpointer.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-vertexattribpointer.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer.html">../../resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-bind-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-bind-test-expected.txt >new file mode 100644 >index 00000000000..21e3a8c13ef >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-bind-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/buffers/buffer-bind-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-bind-test.html b/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-bind-test.html >new file mode 100644 >index 00000000000..91888819743 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-bind-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for buffer-bind-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/buffers/buffer-bind-test.html">../../resources/webgl_test_files/conformance/buffers/buffer-bind-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/buffers/buffer-bind-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-data-and-buffer-sub-data-expected.txt b/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-data-and-buffer-sub-data-expected.txt >new file mode 100644 >index 00000000000..520f48792c5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-data-and-buffer-sub-data-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/buffers/buffer-data-and-buffer-sub-data.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-data-and-buffer-sub-data.html b/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-data-and-buffer-sub-data.html >new file mode 100644 >index 00000000000..a82d1ab540d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-data-and-buffer-sub-data.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for buffer-data-and-buffer-sub-data.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/buffers/buffer-data-and-buffer-sub-data.html">../../resources/webgl_test_files/conformance/buffers/buffer-data-and-buffer-sub-data.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/buffers/buffer-data-and-buffer-sub-data.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-data-array-buffer-delete-expected.txt b/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-data-array-buffer-delete-expected.txt >new file mode 100644 >index 00000000000..7f9823adcc9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-data-array-buffer-delete-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/buffers/buffer-data-array-buffer-delete.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-data-array-buffer-delete.html b/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-data-array-buffer-delete.html >new file mode 100644 >index 00000000000..3e55df03f6e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-data-array-buffer-delete.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for buffer-data-array-buffer-delete.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/buffers/buffer-data-array-buffer-delete.html">../../resources/webgl_test_files/conformance/buffers/buffer-data-array-buffer-delete.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/buffers/buffer-data-array-buffer-delete.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-uninitialized-expected.txt b/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-uninitialized-expected.txt >new file mode 100644 >index 00000000000..dd561586037 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-uninitialized-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/buffers/buffer-uninitialized.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-uninitialized.html b/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-uninitialized.html >new file mode 100644 >index 00000000000..acc90a7021d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/buffer-uninitialized.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for buffer-uninitialized.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/buffers/buffer-uninitialized.html">../../resources/webgl_test_files/conformance/buffers/buffer-uninitialized.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/buffers/buffer-uninitialized.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/element-array-buffer-delete-recreate-expected.txt b/LayoutTests/webgl/2.0.0/conformance/buffers/element-array-buffer-delete-recreate-expected.txt >new file mode 100644 >index 00000000000..2be75572133 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/element-array-buffer-delete-recreate-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/buffers/element-array-buffer-delete-recreate.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/element-array-buffer-delete-recreate.html b/LayoutTests/webgl/2.0.0/conformance/buffers/element-array-buffer-delete-recreate.html >new file mode 100644 >index 00000000000..4414c5e8a41 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/element-array-buffer-delete-recreate.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for element-array-buffer-delete-recreate.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/buffers/element-array-buffer-delete-recreate.html">../../resources/webgl_test_files/conformance/buffers/element-array-buffer-delete-recreate.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/buffers/element-array-buffer-delete-recreate.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-copies-indices-expected.txt b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-copies-indices-expected.txt >new file mode 100644 >index 00000000000..3bae87def24 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-copies-indices-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/buffers/index-validation-copies-indices.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-copies-indices.html b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-copies-indices.html >new file mode 100644 >index 00000000000..f951d1efd5a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-copies-indices.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for index-validation-copies-indices.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/buffers/index-validation-copies-indices.html">../../resources/webgl_test_files/conformance/buffers/index-validation-copies-indices.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/buffers/index-validation-copies-indices.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-crash-with-buffer-sub-data-expected.txt b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-crash-with-buffer-sub-data-expected.txt >new file mode 100644 >index 00000000000..306b4be3ac2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-crash-with-buffer-sub-data-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/buffers/index-validation-crash-with-buffer-sub-data.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-crash-with-buffer-sub-data.html b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-crash-with-buffer-sub-data.html >new file mode 100644 >index 00000000000..baa39610ed9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-crash-with-buffer-sub-data.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for index-validation-crash-with-buffer-sub-data.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/buffers/index-validation-crash-with-buffer-sub-data.html">../../resources/webgl_test_files/conformance/buffers/index-validation-crash-with-buffer-sub-data.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/buffers/index-validation-crash-with-buffer-sub-data.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-expected.txt b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-expected.txt >new file mode 100644 >index 00000000000..ff0d9c98e60 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/buffers/index-validation.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-large-buffer-expected.txt b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-large-buffer-expected.txt >new file mode 100644 >index 00000000000..2c308ef9509 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-large-buffer-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/buffers/index-validation-large-buffer.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-large-buffer.html b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-large-buffer.html >new file mode 100644 >index 00000000000..9ba53f95d35 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-large-buffer.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for index-validation-large-buffer.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/buffers/index-validation-large-buffer.html">../../resources/webgl_test_files/conformance/buffers/index-validation-large-buffer.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/buffers/index-validation-large-buffer.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-verifies-too-many-indices-expected.txt b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-verifies-too-many-indices-expected.txt >new file mode 100644 >index 00000000000..17f9f891aea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-verifies-too-many-indices-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/buffers/index-validation-verifies-too-many-indices.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-verifies-too-many-indices.html b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-verifies-too-many-indices.html >new file mode 100644 >index 00000000000..fb5a3827633 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-verifies-too-many-indices.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for index-validation-verifies-too-many-indices.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/buffers/index-validation-verifies-too-many-indices.html">../../resources/webgl_test_files/conformance/buffers/index-validation-verifies-too-many-indices.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/buffers/index-validation-verifies-too-many-indices.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-with-resized-buffer-expected.txt b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-with-resized-buffer-expected.txt >new file mode 100644 >index 00000000000..3571dbb79b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-with-resized-buffer-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/buffers/index-validation-with-resized-buffer.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-with-resized-buffer.html b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-with-resized-buffer.html >new file mode 100644 >index 00000000000..a2aa2ce7eca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation-with-resized-buffer.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for index-validation-with-resized-buffer.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/buffers/index-validation-with-resized-buffer.html">../../resources/webgl_test_files/conformance/buffers/index-validation-with-resized-buffer.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/buffers/index-validation-with-resized-buffer.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation.html b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation.html >new file mode 100644 >index 00000000000..b6057b5b455 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/buffers/index-validation.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for index-validation.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/buffers/index-validation.html">../../resources/webgl_test_files/conformance/buffers/index-validation.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/buffers/index-validation.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/buffer-offscreen-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/canvas/buffer-offscreen-test-expected.txt >new file mode 100644 >index 00000000000..3f035b7b213 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/buffer-offscreen-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/canvas/buffer-offscreen-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/buffer-offscreen-test.html b/LayoutTests/webgl/2.0.0/conformance/canvas/buffer-offscreen-test.html >new file mode 100644 >index 00000000000..5c7a3c19a00 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/buffer-offscreen-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for buffer-offscreen-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/canvas/buffer-offscreen-test.html">../../resources/webgl_test_files/conformance/canvas/buffer-offscreen-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/canvas/buffer-offscreen-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/buffer-preserve-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/canvas/buffer-preserve-test-expected.txt >new file mode 100644 >index 00000000000..e55c5cb85e8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/buffer-preserve-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/canvas/buffer-preserve-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/buffer-preserve-test.html b/LayoutTests/webgl/2.0.0/conformance/canvas/buffer-preserve-test.html >new file mode 100644 >index 00000000000..e4885e226f0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/buffer-preserve-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for buffer-preserve-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/canvas/buffer-preserve-test.html">../../resources/webgl_test_files/conformance/canvas/buffer-preserve-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/canvas/buffer-preserve-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/canvas-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/canvas/canvas-test-expected.txt >new file mode 100644 >index 00000000000..042190e5019 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/canvas-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/canvas/canvas-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/canvas-test.html b/LayoutTests/webgl/2.0.0/conformance/canvas/canvas-test.html >new file mode 100644 >index 00000000000..5d935371e87 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/canvas-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for canvas-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/canvas/canvas-test.html">../../resources/webgl_test_files/conformance/canvas/canvas-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/canvas/canvas-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/canvas-zero-size-expected.txt b/LayoutTests/webgl/2.0.0/conformance/canvas/canvas-zero-size-expected.txt >new file mode 100644 >index 00000000000..b1619bcc2d7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/canvas-zero-size-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/canvas/canvas-zero-size.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/canvas-zero-size.html b/LayoutTests/webgl/2.0.0/conformance/canvas/canvas-zero-size.html >new file mode 100644 >index 00000000000..330488cacdc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/canvas-zero-size.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for canvas-zero-size.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/canvas/canvas-zero-size.html">../../resources/webgl_test_files/conformance/canvas/canvas-zero-size.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/canvas/canvas-zero-size.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/draw-static-webgl-to-multiple-canvas-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/canvas/draw-static-webgl-to-multiple-canvas-test-expected.txt >new file mode 100644 >index 00000000000..7282a0d85ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/draw-static-webgl-to-multiple-canvas-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/canvas/draw-static-webgl-to-multiple-canvas-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/draw-static-webgl-to-multiple-canvas-test.html b/LayoutTests/webgl/2.0.0/conformance/canvas/draw-static-webgl-to-multiple-canvas-test.html >new file mode 100644 >index 00000000000..2318fb11ab7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/draw-static-webgl-to-multiple-canvas-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for draw-static-webgl-to-multiple-canvas-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/canvas/draw-static-webgl-to-multiple-canvas-test.html">../../resources/webgl_test_files/conformance/canvas/draw-static-webgl-to-multiple-canvas-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/canvas/draw-static-webgl-to-multiple-canvas-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/draw-webgl-to-canvas-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/canvas/draw-webgl-to-canvas-test-expected.txt >new file mode 100644 >index 00000000000..f2486448675 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/draw-webgl-to-canvas-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/canvas/draw-webgl-to-canvas-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/draw-webgl-to-canvas-test.html b/LayoutTests/webgl/2.0.0/conformance/canvas/draw-webgl-to-canvas-test.html >new file mode 100644 >index 00000000000..e64c477a395 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/draw-webgl-to-canvas-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for draw-webgl-to-canvas-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/canvas/draw-webgl-to-canvas-test.html">../../resources/webgl_test_files/conformance/canvas/draw-webgl-to-canvas-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/canvas/draw-webgl-to-canvas-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/drawingbuffer-hd-dpi-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/canvas/drawingbuffer-hd-dpi-test-expected.txt >new file mode 100644 >index 00000000000..bbb96c2af7b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/drawingbuffer-hd-dpi-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/canvas/drawingbuffer-hd-dpi-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/drawingbuffer-hd-dpi-test.html b/LayoutTests/webgl/2.0.0/conformance/canvas/drawingbuffer-hd-dpi-test.html >new file mode 100644 >index 00000000000..2595359a00b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/drawingbuffer-hd-dpi-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for drawingbuffer-hd-dpi-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/canvas/drawingbuffer-hd-dpi-test.html">../../resources/webgl_test_files/conformance/canvas/drawingbuffer-hd-dpi-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/canvas/drawingbuffer-hd-dpi-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/drawingbuffer-static-canvas-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/canvas/drawingbuffer-static-canvas-test-expected.txt >new file mode 100644 >index 00000000000..e035d8110b3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/drawingbuffer-static-canvas-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/canvas/drawingbuffer-static-canvas-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/drawingbuffer-static-canvas-test.html b/LayoutTests/webgl/2.0.0/conformance/canvas/drawingbuffer-static-canvas-test.html >new file mode 100644 >index 00000000000..34165b61b87 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/drawingbuffer-static-canvas-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for drawingbuffer-static-canvas-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/canvas/drawingbuffer-static-canvas-test.html">../../resources/webgl_test_files/conformance/canvas/drawingbuffer-static-canvas-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/canvas/drawingbuffer-static-canvas-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/drawingbuffer-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/canvas/drawingbuffer-test-expected.txt >new file mode 100644 >index 00000000000..9c3c60424ab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/drawingbuffer-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/canvas/drawingbuffer-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/drawingbuffer-test.html b/LayoutTests/webgl/2.0.0/conformance/canvas/drawingbuffer-test.html >new file mode 100644 >index 00000000000..d3858f018ec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/drawingbuffer-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for drawingbuffer-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/canvas/drawingbuffer-test.html">../../resources/webgl_test_files/conformance/canvas/drawingbuffer-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/canvas/drawingbuffer-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/framebuffer-bindings-affected-by-to-data-url-expected.txt b/LayoutTests/webgl/2.0.0/conformance/canvas/framebuffer-bindings-affected-by-to-data-url-expected.txt >new file mode 100644 >index 00000000000..91da188e5a0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/framebuffer-bindings-affected-by-to-data-url-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/canvas/framebuffer-bindings-affected-by-to-data-url.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/framebuffer-bindings-affected-by-to-data-url.html b/LayoutTests/webgl/2.0.0/conformance/canvas/framebuffer-bindings-affected-by-to-data-url.html >new file mode 100644 >index 00000000000..fd079adf9e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/framebuffer-bindings-affected-by-to-data-url.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for framebuffer-bindings-affected-by-to-data-url.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/canvas/framebuffer-bindings-affected-by-to-data-url.html">../../resources/webgl_test_files/conformance/canvas/framebuffer-bindings-affected-by-to-data-url.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/canvas/framebuffer-bindings-affected-by-to-data-url.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/framebuffer-bindings-unaffected-on-resize-expected.txt b/LayoutTests/webgl/2.0.0/conformance/canvas/framebuffer-bindings-unaffected-on-resize-expected.txt >new file mode 100644 >index 00000000000..464de72007b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/framebuffer-bindings-unaffected-on-resize-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/canvas/framebuffer-bindings-unaffected-on-resize.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/framebuffer-bindings-unaffected-on-resize.html b/LayoutTests/webgl/2.0.0/conformance/canvas/framebuffer-bindings-unaffected-on-resize.html >new file mode 100644 >index 00000000000..0526cbbe495 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/framebuffer-bindings-unaffected-on-resize.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for framebuffer-bindings-unaffected-on-resize.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/canvas/framebuffer-bindings-unaffected-on-resize.html">../../resources/webgl_test_files/conformance/canvas/framebuffer-bindings-unaffected-on-resize.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/canvas/framebuffer-bindings-unaffected-on-resize.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/rapid-resizing-expected.txt b/LayoutTests/webgl/2.0.0/conformance/canvas/rapid-resizing-expected.txt >new file mode 100644 >index 00000000000..521f7bdb008 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/rapid-resizing-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/canvas/rapid-resizing.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/rapid-resizing.html b/LayoutTests/webgl/2.0.0/conformance/canvas/rapid-resizing.html >new file mode 100644 >index 00000000000..7715c66da3c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/rapid-resizing.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for rapid-resizing.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/canvas/rapid-resizing.html">../../resources/webgl_test_files/conformance/canvas/rapid-resizing.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/canvas/rapid-resizing.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/texture-bindings-unaffected-on-resize-expected.txt b/LayoutTests/webgl/2.0.0/conformance/canvas/texture-bindings-unaffected-on-resize-expected.txt >new file mode 100644 >index 00000000000..32b9dfe8a5f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/texture-bindings-unaffected-on-resize-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/canvas/texture-bindings-unaffected-on-resize.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/texture-bindings-unaffected-on-resize.html b/LayoutTests/webgl/2.0.0/conformance/canvas/texture-bindings-unaffected-on-resize.html >new file mode 100644 >index 00000000000..deb4ceb8d2c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/texture-bindings-unaffected-on-resize.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-bindings-unaffected-on-resize.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/canvas/texture-bindings-unaffected-on-resize.html">../../resources/webgl_test_files/conformance/canvas/texture-bindings-unaffected-on-resize.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/canvas/texture-bindings-unaffected-on-resize.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/to-data-url-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/canvas/to-data-url-test-expected.txt >new file mode 100644 >index 00000000000..2e4ab9ccb93 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/to-data-url-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/canvas/to-data-url-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/to-data-url-test.html b/LayoutTests/webgl/2.0.0/conformance/canvas/to-data-url-test.html >new file mode 100644 >index 00000000000..f811409c97c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/to-data-url-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for to-data-url-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/canvas/to-data-url-test.html">../../resources/webgl_test_files/conformance/canvas/to-data-url-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/canvas/to-data-url-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/viewport-unchanged-upon-resize-expected.txt b/LayoutTests/webgl/2.0.0/conformance/canvas/viewport-unchanged-upon-resize-expected.txt >new file mode 100644 >index 00000000000..6a2ce078807 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/viewport-unchanged-upon-resize-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/canvas/viewport-unchanged-upon-resize.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/canvas/viewport-unchanged-upon-resize.html b/LayoutTests/webgl/2.0.0/conformance/canvas/viewport-unchanged-upon-resize.html >new file mode 100644 >index 00000000000..38b44e1dbc7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/canvas/viewport-unchanged-upon-resize.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for viewport-unchanged-upon-resize.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/canvas/viewport-unchanged-upon-resize.html">../../resources/webgl_test_files/conformance/canvas/viewport-unchanged-upon-resize.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/canvas/viewport-unchanged-upon-resize.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/constants-and-properties-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/constants-and-properties-expected.txt >new file mode 100644 >index 00000000000..b659a258730 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/constants-and-properties-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/constants-and-properties.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/constants-and-properties.html b/LayoutTests/webgl/2.0.0/conformance/context/constants-and-properties.html >new file mode 100644 >index 00000000000..ce186babefc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/constants-and-properties.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for constants-and-properties.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/constants-and-properties.html">../../resources/webgl_test_files/conformance/context/constants-and-properties.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/constants-and-properties.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-attribute-preserve-drawing-buffer-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/context-attribute-preserve-drawing-buffer-expected.txt >new file mode 100644 >index 00000000000..3653f44ac6e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-attribute-preserve-drawing-buffer-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/context-attribute-preserve-drawing-buffer.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-attribute-preserve-drawing-buffer.html b/LayoutTests/webgl/2.0.0/conformance/context/context-attribute-preserve-drawing-buffer.html >new file mode 100644 >index 00000000000..23ade6ed4d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-attribute-preserve-drawing-buffer.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for context-attribute-preserve-drawing-buffer.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/context-attribute-preserve-drawing-buffer.html">../../resources/webgl_test_files/conformance/context/context-attribute-preserve-drawing-buffer.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/context-attribute-preserve-drawing-buffer.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-attributes-alpha-depth-stencil-antialias-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/context-attributes-alpha-depth-stencil-antialias-expected.txt >new file mode 100644 >index 00000000000..6e9a51b8242 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-attributes-alpha-depth-stencil-antialias-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/context-attributes-alpha-depth-stencil-antialias.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-attributes-alpha-depth-stencil-antialias.html b/LayoutTests/webgl/2.0.0/conformance/context/context-attributes-alpha-depth-stencil-antialias.html >new file mode 100644 >index 00000000000..d8ca5b937b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-attributes-alpha-depth-stencil-antialias.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for context-attributes-alpha-depth-stencil-antialias.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/context-attributes-alpha-depth-stencil-antialias.html">../../resources/webgl_test_files/conformance/context/context-attributes-alpha-depth-stencil-antialias.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/context-attributes-alpha-depth-stencil-antialias.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-creation-and-destruction-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/context-creation-and-destruction-expected.txt >new file mode 100644 >index 00000000000..ae449ff64e5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-creation-and-destruction-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/context-creation-and-destruction.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-creation-and-destruction.html b/LayoutTests/webgl/2.0.0/conformance/context/context-creation-and-destruction.html >new file mode 100644 >index 00000000000..f0c396b9b55 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-creation-and-destruction.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for context-creation-and-destruction.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/context-creation-and-destruction.html">../../resources/webgl_test_files/conformance/context/context-creation-and-destruction.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/context-creation-and-destruction.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-creation-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/context-creation-expected.txt >new file mode 100644 >index 00000000000..a9d0bc1f27e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-creation-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/context-creation.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-creation.html b/LayoutTests/webgl/2.0.0/conformance/context/context-creation.html >new file mode 100644 >index 00000000000..48f9e73d8a6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-creation.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for context-creation.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/context-creation.html">../../resources/webgl_test_files/conformance/context/context-creation.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/context-creation.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-eviction-with-garbage-collection-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/context-eviction-with-garbage-collection-expected.txt >new file mode 100644 >index 00000000000..840afbdcb73 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-eviction-with-garbage-collection-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/context-eviction-with-garbage-collection.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-eviction-with-garbage-collection.html b/LayoutTests/webgl/2.0.0/conformance/context/context-eviction-with-garbage-collection.html >new file mode 100644 >index 00000000000..1d0fe55e6fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-eviction-with-garbage-collection.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for context-eviction-with-garbage-collection.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/context-eviction-with-garbage-collection.html">../../resources/webgl_test_files/conformance/context/context-eviction-with-garbage-collection.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/context-eviction-with-garbage-collection.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-hidden-alpha-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/context-hidden-alpha-expected.txt >new file mode 100644 >index 00000000000..7f70243dba9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-hidden-alpha-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/context-hidden-alpha.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-hidden-alpha.html b/LayoutTests/webgl/2.0.0/conformance/context/context-hidden-alpha.html >new file mode 100644 >index 00000000000..90f1312c658 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-hidden-alpha.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for context-hidden-alpha.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/context-hidden-alpha.html">../../resources/webgl_test_files/conformance/context/context-hidden-alpha.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/context-hidden-alpha.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-lost-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/context-lost-expected.txt >new file mode 100644 >index 00000000000..eeacb2cfa6c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-lost-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/context-lost.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-lost-restored-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/context-lost-restored-expected.txt >new file mode 100644 >index 00000000000..202da2be211 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-lost-restored-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/context-lost-restored.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-lost-restored.html b/LayoutTests/webgl/2.0.0/conformance/context/context-lost-restored.html >new file mode 100644 >index 00000000000..f9b1252e9eb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-lost-restored.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for context-lost-restored.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/context-lost-restored.html">../../resources/webgl_test_files/conformance/context/context-lost-restored.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/context-lost-restored.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-lost.html b/LayoutTests/webgl/2.0.0/conformance/context/context-lost.html >new file mode 100644 >index 00000000000..f911d96a221 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-lost.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for context-lost.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/context-lost.html">../../resources/webgl_test_files/conformance/context/context-lost.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/context-lost.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-no-alpha-fbo-with-alpha-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/context-no-alpha-fbo-with-alpha-expected.txt >new file mode 100644 >index 00000000000..311e860addc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-no-alpha-fbo-with-alpha-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/context-no-alpha-fbo-with-alpha.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-no-alpha-fbo-with-alpha.html b/LayoutTests/webgl/2.0.0/conformance/context/context-no-alpha-fbo-with-alpha.html >new file mode 100644 >index 00000000000..0a7c3716862 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-no-alpha-fbo-with-alpha.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for context-no-alpha-fbo-with-alpha.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/context-no-alpha-fbo-with-alpha.html">../../resources/webgl_test_files/conformance/context/context-no-alpha-fbo-with-alpha.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/context-no-alpha-fbo-with-alpha.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-release-upon-reload-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/context-release-upon-reload-expected.txt >new file mode 100644 >index 00000000000..339810ce104 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-release-upon-reload-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/context-release-upon-reload.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-release-upon-reload.html b/LayoutTests/webgl/2.0.0/conformance/context/context-release-upon-reload.html >new file mode 100644 >index 00000000000..a2b54fa4ef3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-release-upon-reload.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for context-release-upon-reload.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/context-release-upon-reload.html">../../resources/webgl_test_files/conformance/context/context-release-upon-reload.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/context-release-upon-reload.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-release-with-workers-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/context-release-with-workers-expected.txt >new file mode 100644 >index 00000000000..f32a66b586a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-release-with-workers-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/context-release-with-workers.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-release-with-workers.html b/LayoutTests/webgl/2.0.0/conformance/context/context-release-with-workers.html >new file mode 100644 >index 00000000000..d615d9702a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-release-with-workers.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for context-release-with-workers.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/context-release-with-workers.html">../../resources/webgl_test_files/conformance/context/context-release-with-workers.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/context-release-with-workers.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-size-change-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/context-size-change-expected.txt >new file mode 100644 >index 00000000000..bec9ab00030 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-size-change-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/context-size-change.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-size-change.html b/LayoutTests/webgl/2.0.0/conformance/context/context-size-change.html >new file mode 100644 >index 00000000000..3a15339f722 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-size-change.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for context-size-change.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/context-size-change.html">../../resources/webgl_test_files/conformance/context/context-size-change.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/context-size-change.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-type-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/context-type-test-expected.txt >new file mode 100644 >index 00000000000..2fe2918d1d4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-type-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/context-type-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/context-type-test.html b/LayoutTests/webgl/2.0.0/conformance/context/context-type-test.html >new file mode 100644 >index 00000000000..d4deaf87f4f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/context-type-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for context-type-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/context-type-test.html">../../resources/webgl_test_files/conformance/context/context-type-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/context-type-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/incorrect-context-object-behaviour-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/incorrect-context-object-behaviour-expected.txt >new file mode 100644 >index 00000000000..79a9d880f55 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/incorrect-context-object-behaviour-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/incorrect-context-object-behaviour.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/incorrect-context-object-behaviour.html b/LayoutTests/webgl/2.0.0/conformance/context/incorrect-context-object-behaviour.html >new file mode 100644 >index 00000000000..4618578f4a2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/incorrect-context-object-behaviour.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for incorrect-context-object-behaviour.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/incorrect-context-object-behaviour.html">../../resources/webgl_test_files/conformance/context/incorrect-context-object-behaviour.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/incorrect-context-object-behaviour.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/methods-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/methods-expected.txt >new file mode 100644 >index 00000000000..50bbb879b6b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/methods-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/methods.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/methods.html b/LayoutTests/webgl/2.0.0/conformance/context/methods.html >new file mode 100644 >index 00000000000..80a7280dd78 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/methods.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for methods.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/methods.html">../../resources/webgl_test_files/conformance/context/methods.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/methods.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/premultiplyalpha-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/premultiplyalpha-test-expected.txt >new file mode 100644 >index 00000000000..4005e0ed2d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/premultiplyalpha-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/premultiplyalpha-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/premultiplyalpha-test.html b/LayoutTests/webgl/2.0.0/conformance/context/premultiplyalpha-test.html >new file mode 100644 >index 00000000000..37925056638 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/premultiplyalpha-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for premultiplyalpha-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/premultiplyalpha-test.html">../../resources/webgl_test_files/conformance/context/premultiplyalpha-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/premultiplyalpha-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/resource-sharing-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/resource-sharing-test-expected.txt >new file mode 100644 >index 00000000000..c9be3881d13 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/resource-sharing-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/resource-sharing-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/resource-sharing-test.html b/LayoutTests/webgl/2.0.0/conformance/context/resource-sharing-test.html >new file mode 100644 >index 00000000000..24ea9c31589 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/resource-sharing-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for resource-sharing-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/resource-sharing-test.html">../../resources/webgl_test_files/conformance/context/resource-sharing-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/resource-sharing-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/user-defined-properties-on-context-expected.txt b/LayoutTests/webgl/2.0.0/conformance/context/user-defined-properties-on-context-expected.txt >new file mode 100644 >index 00000000000..0c3eb6cab7e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/user-defined-properties-on-context-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/context/user-defined-properties-on-context.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/context/user-defined-properties-on-context.html b/LayoutTests/webgl/2.0.0/conformance/context/user-defined-properties-on-context.html >new file mode 100644 >index 00000000000..1accc25e858 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/context/user-defined-properties-on-context.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for user-defined-properties-on-context.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/context/user-defined-properties-on-context.html">../../resources/webgl_test_files/conformance/context/user-defined-properties-on-context.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/context/user-defined-properties-on-context.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/angle-instanced-arrays-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/angle-instanced-arrays-expected.txt >new file mode 100644 >index 00000000000..6e77ecb144d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/angle-instanced-arrays-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/angle-instanced-arrays.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/angle-instanced-arrays-out-of-bounds-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/angle-instanced-arrays-out-of-bounds-expected.txt >new file mode 100644 >index 00000000000..f866dded57c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/angle-instanced-arrays-out-of-bounds-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/angle-instanced-arrays-out-of-bounds.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/angle-instanced-arrays-out-of-bounds.html b/LayoutTests/webgl/2.0.0/conformance/extensions/angle-instanced-arrays-out-of-bounds.html >new file mode 100644 >index 00000000000..12e863b64f7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/angle-instanced-arrays-out-of-bounds.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for angle-instanced-arrays-out-of-bounds.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/angle-instanced-arrays-out-of-bounds.html">../../resources/webgl_test_files/conformance/extensions/angle-instanced-arrays-out-of-bounds.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/angle-instanced-arrays-out-of-bounds.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/angle-instanced-arrays.html b/LayoutTests/webgl/2.0.0/conformance/extensions/angle-instanced-arrays.html >new file mode 100644 >index 00000000000..db95b3368d8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/angle-instanced-arrays.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for angle-instanced-arrays.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/angle-instanced-arrays.html">../../resources/webgl_test_files/conformance/extensions/angle-instanced-arrays.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/angle-instanced-arrays.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/ext-blend-minmax-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-blend-minmax-expected.txt >new file mode 100644 >index 00000000000..e9f3a634866 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-blend-minmax-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/ext-blend-minmax.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/ext-blend-minmax.html b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-blend-minmax.html >new file mode 100644 >index 00000000000..68764ea37ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-blend-minmax.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for ext-blend-minmax.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/ext-blend-minmax.html">../../resources/webgl_test_files/conformance/extensions/ext-blend-minmax.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/ext-blend-minmax.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/ext-disjoint-timer-query-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-disjoint-timer-query-expected.txt >new file mode 100644 >index 00000000000..d0927955fc6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-disjoint-timer-query-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/ext-disjoint-timer-query.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/ext-disjoint-timer-query.html b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-disjoint-timer-query.html >new file mode 100644 >index 00000000000..cb5ba31d78d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-disjoint-timer-query.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for ext-disjoint-timer-query.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/ext-disjoint-timer-query.html">../../resources/webgl_test_files/conformance/extensions/ext-disjoint-timer-query.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/ext-disjoint-timer-query.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/ext-frag-depth-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-frag-depth-expected.txt >new file mode 100644 >index 00000000000..eef99b344a9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-frag-depth-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/ext-frag-depth.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/ext-frag-depth.html b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-frag-depth.html >new file mode 100644 >index 00000000000..d1e4a2545e5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-frag-depth.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for ext-frag-depth.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/ext-frag-depth.html">../../resources/webgl_test_files/conformance/extensions/ext-frag-depth.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/ext-frag-depth.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/ext-sRGB-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-sRGB-expected.txt >new file mode 100644 >index 00000000000..fb4254ee532 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-sRGB-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/ext-sRGB.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/ext-sRGB.html b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-sRGB.html >new file mode 100644 >index 00000000000..5661431e7c2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-sRGB.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for ext-sRGB.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/ext-sRGB.html">../../resources/webgl_test_files/conformance/extensions/ext-sRGB.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/ext-sRGB.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/ext-shader-texture-lod-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-shader-texture-lod-expected.txt >new file mode 100644 >index 00000000000..ef0f61514f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-shader-texture-lod-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/ext-shader-texture-lod.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/ext-shader-texture-lod.html b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-shader-texture-lod.html >new file mode 100644 >index 00000000000..0834f4592c9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-shader-texture-lod.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for ext-shader-texture-lod.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/ext-shader-texture-lod.html">../../resources/webgl_test_files/conformance/extensions/ext-shader-texture-lod.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/ext-shader-texture-lod.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/ext-texture-filter-anisotropic-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-texture-filter-anisotropic-expected.txt >new file mode 100644 >index 00000000000..9fc64ce727c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-texture-filter-anisotropic-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/ext-texture-filter-anisotropic.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/ext-texture-filter-anisotropic.html b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-texture-filter-anisotropic.html >new file mode 100644 >index 00000000000..d2fbe816fef >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/ext-texture-filter-anisotropic.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for ext-texture-filter-anisotropic.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/ext-texture-filter-anisotropic.html">../../resources/webgl_test_files/conformance/extensions/ext-texture-filter-anisotropic.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/ext-texture-filter-anisotropic.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/get-extension-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/get-extension-expected.txt >new file mode 100644 >index 00000000000..311fbfa9877 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/get-extension-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/get-extension.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/get-extension.html b/LayoutTests/webgl/2.0.0/conformance/extensions/get-extension.html >new file mode 100644 >index 00000000000..e549f159696 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/get-extension.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for get-extension.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/get-extension.html">../../resources/webgl_test_files/conformance/extensions/get-extension.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/get-extension.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-element-index-uint-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-element-index-uint-expected.txt >new file mode 100644 >index 00000000000..620fbe8a6db >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-element-index-uint-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/oes-element-index-uint.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-element-index-uint.html b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-element-index-uint.html >new file mode 100644 >index 00000000000..e4a85c4322e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-element-index-uint.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for oes-element-index-uint.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/oes-element-index-uint.html">../../resources/webgl_test_files/conformance/extensions/oes-element-index-uint.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/oes-element-index-uint.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-standard-derivatives-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-standard-derivatives-expected.txt >new file mode 100644 >index 00000000000..eb7d0ca1764 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-standard-derivatives-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/oes-standard-derivatives.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-standard-derivatives.html b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-standard-derivatives.html >new file mode 100644 >index 00000000000..d976f74bf2b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-standard-derivatives.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for oes-standard-derivatives.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/oes-standard-derivatives.html">../../resources/webgl_test_files/conformance/extensions/oes-standard-derivatives.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/oes-standard-derivatives.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-expected.txt >new file mode 100644 >index 00000000000..b7dc0bda803 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/oes-texture-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-linear-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-linear-expected.txt >new file mode 100644 >index 00000000000..2d4ee9ee701 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-linear-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/oes-texture-float-linear.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-linear.html b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-linear.html >new file mode 100644 >index 00000000000..459a6b28662 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-linear.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for oes-texture-float-linear.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/oes-texture-float-linear.html">../../resources/webgl_test_files/conformance/extensions/oes-texture-float-linear.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/oes-texture-float-linear.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-canvas-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-canvas-expected.txt >new file mode 100644 >index 00000000000..2bef16f2162 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-canvas-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/oes-texture-float-with-canvas.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-canvas.html b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-canvas.html >new file mode 100644 >index 00000000000..77518b9ce93 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-canvas.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for oes-texture-float-with-canvas.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/oes-texture-float-with-canvas.html">../../resources/webgl_test_files/conformance/extensions/oes-texture-float-with-canvas.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/oes-texture-float-with-canvas.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-image-data-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-image-data-expected.txt >new file mode 100644 >index 00000000000..1e973349901 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-image-data-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/oes-texture-float-with-image-data.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-image-data.html b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-image-data.html >new file mode 100644 >index 00000000000..4f80208c13c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-image-data.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for oes-texture-float-with-image-data.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/oes-texture-float-with-image-data.html">../../resources/webgl_test_files/conformance/extensions/oes-texture-float-with-image-data.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/oes-texture-float-with-image-data.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-image-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-image-expected.txt >new file mode 100644 >index 00000000000..4a07917a296 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-image-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/oes-texture-float-with-image.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-image.html b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-image.html >new file mode 100644 >index 00000000000..d613795a455 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-image.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for oes-texture-float-with-image.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/oes-texture-float-with-image.html">../../resources/webgl_test_files/conformance/extensions/oes-texture-float-with-image.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/oes-texture-float-with-image.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-video-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-video-expected.txt >new file mode 100644 >index 00000000000..a9f1fe8191d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-video-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/oes-texture-float-with-video.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-video.html b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-video.html >new file mode 100644 >index 00000000000..80dfc022046 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float-with-video.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for oes-texture-float-with-video.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/oes-texture-float-with-video.html">../../resources/webgl_test_files/conformance/extensions/oes-texture-float-with-video.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/oes-texture-float-with-video.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float.html b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float.html >new file mode 100644 >index 00000000000..f764bc42338 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for oes-texture-float.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/oes-texture-float.html">../../resources/webgl_test_files/conformance/extensions/oes-texture-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/oes-texture-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-expected.txt >new file mode 100644 >index 00000000000..70484a306b8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-linear-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-linear-expected.txt >new file mode 100644 >index 00000000000..239006c989c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-linear-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-linear.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-linear.html b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-linear.html >new file mode 100644 >index 00000000000..6029e86b34f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-linear.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for oes-texture-half-float-linear.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-linear.html">../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-linear.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-linear.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-canvas-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-canvas-expected.txt >new file mode 100644 >index 00000000000..86e421259c2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-canvas-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-canvas.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-canvas.html b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-canvas.html >new file mode 100644 >index 00000000000..86799f85757 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-canvas.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for oes-texture-half-float-with-canvas.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-canvas.html">../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-canvas.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-canvas.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-image-data-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-image-data-expected.txt >new file mode 100644 >index 00000000000..eaac4cca5da >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-image-data-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-image-data.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-image-data.html b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-image-data.html >new file mode 100644 >index 00000000000..c7867a465e0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-image-data.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for oes-texture-half-float-with-image-data.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-image-data.html">../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-image-data.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-image-data.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-image-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-image-expected.txt >new file mode 100644 >index 00000000000..9a054a4d8e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-image-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-image.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-image.html b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-image.html >new file mode 100644 >index 00000000000..f3ed0ea67a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-image.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for oes-texture-half-float-with-image.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-image.html">../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-image.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-image.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-video-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-video-expected.txt >new file mode 100644 >index 00000000000..e8a8198ee7d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-video-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-video.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-video.html b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-video.html >new file mode 100644 >index 00000000000..7e82b809ff6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-video.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for oes-texture-half-float-with-video.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-video.html">../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-video.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-video.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float.html b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float.html >new file mode 100644 >index 00000000000..3fee7f738a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-texture-half-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for oes-texture-half-float.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float.html">../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/oes-texture-half-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-vertex-array-object-bufferData-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-vertex-array-object-bufferData-expected.txt >new file mode 100644 >index 00000000000..b77dac12ac0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-vertex-array-object-bufferData-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/oes-vertex-array-object-bufferData.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-vertex-array-object-bufferData.html b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-vertex-array-object-bufferData.html >new file mode 100644 >index 00000000000..c86d6db8dd0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-vertex-array-object-bufferData.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for oes-vertex-array-object-bufferData.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/oes-vertex-array-object-bufferData.html">../../resources/webgl_test_files/conformance/extensions/oes-vertex-array-object-bufferData.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/oes-vertex-array-object-bufferData.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-vertex-array-object-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-vertex-array-object-expected.txt >new file mode 100644 >index 00000000000..c50e0b8a7ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-vertex-array-object-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/oes-vertex-array-object.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/oes-vertex-array-object.html b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-vertex-array-object.html >new file mode 100644 >index 00000000000..82721f70c79 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/oes-vertex-array-object.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for oes-vertex-array-object.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/oes-vertex-array-object.html">../../resources/webgl_test_files/conformance/extensions/oes-vertex-array-object.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/oes-vertex-array-object.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-etc-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-etc-expected.txt >new file mode 100644 >index 00000000000..cd55d18ad2b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-etc-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-etc.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-etc.html b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-etc.html >new file mode 100644 >index 00000000000..b714abde115 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-etc.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for webgl-compressed-texture-etc.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-etc.html">../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-etc.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-etc.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-pvrtc-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-pvrtc-expected.txt >new file mode 100644 >index 00000000000..5917ea86a7b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-pvrtc-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-pvrtc.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-pvrtc.html b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-pvrtc.html >new file mode 100644 >index 00000000000..ec943ff33c2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-pvrtc.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for webgl-compressed-texture-pvrtc.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-pvrtc.html">../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-pvrtc.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-pvrtc.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-s3tc-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-s3tc-expected.txt >new file mode 100644 >index 00000000000..f6924a334a2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-s3tc-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-s3tc-srgb-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-s3tc-srgb-expected.txt >new file mode 100644 >index 00000000000..c49aeb16c5c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-s3tc-srgb-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html >new file mode 100644 >index 00000000000..cbe3d51b75e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for webgl-compressed-texture-s3tc-srgb.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html">../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-s3tc.html b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-s3tc.html >new file mode 100644 >index 00000000000..94b87e0857a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-s3tc.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for webgl-compressed-texture-s3tc.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc.html">../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt >new file mode 100644 >index 00000000000..82142869911 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-size-limit.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-size-limit.html b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-size-limit.html >new file mode 100644 >index 00000000000..9af487bd026 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-compressed-texture-size-limit.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for webgl-compressed-texture-size-limit.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-size-limit.html">../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-size-limit.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-size-limit.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-debug-renderer-info-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-debug-renderer-info-expected.txt >new file mode 100644 >index 00000000000..6e0227b4892 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-debug-renderer-info-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/webgl-debug-renderer-info.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-debug-renderer-info.html b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-debug-renderer-info.html >new file mode 100644 >index 00000000000..525135dc503 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-debug-renderer-info.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for webgl-debug-renderer-info.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/webgl-debug-renderer-info.html">../../resources/webgl_test_files/conformance/extensions/webgl-debug-renderer-info.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/webgl-debug-renderer-info.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-debug-shaders-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-debug-shaders-expected.txt >new file mode 100644 >index 00000000000..35783526132 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-debug-shaders-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/webgl-debug-shaders.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-debug-shaders.html b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-debug-shaders.html >new file mode 100644 >index 00000000000..e9973caa640 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-debug-shaders.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for webgl-debug-shaders.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/webgl-debug-shaders.html">../../resources/webgl_test_files/conformance/extensions/webgl-debug-shaders.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/webgl-debug-shaders.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-depth-texture-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-depth-texture-expected.txt >new file mode 100644 >index 00000000000..6e8dec08006 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-depth-texture-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/webgl-depth-texture.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-depth-texture.html b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-depth-texture.html >new file mode 100644 >index 00000000000..03444a000d5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-depth-texture.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for webgl-depth-texture.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/webgl-depth-texture.html">../../resources/webgl_test_files/conformance/extensions/webgl-depth-texture.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/webgl-depth-texture.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-draw-buffers-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-draw-buffers-expected.txt >new file mode 100644 >index 00000000000..94f851ce219 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-draw-buffers-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/webgl-draw-buffers.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-draw-buffers-framebuffer-unsupported-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-draw-buffers-framebuffer-unsupported-expected.txt >new file mode 100644 >index 00000000000..fcfafffe51a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-draw-buffers-framebuffer-unsupported-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-framebuffer-unsupported.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-draw-buffers-framebuffer-unsupported.html b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-draw-buffers-framebuffer-unsupported.html >new file mode 100644 >index 00000000000..1f24718f2ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-draw-buffers-framebuffer-unsupported.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for webgl-draw-buffers-framebuffer-unsupported.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-framebuffer-unsupported.html">../../resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-framebuffer-unsupported.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-framebuffer-unsupported.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-draw-buffers-max-draw-buffers-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-draw-buffers-max-draw-buffers-expected.txt >new file mode 100644 >index 00000000000..077270ca988 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-draw-buffers-max-draw-buffers-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-max-draw-buffers.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-draw-buffers-max-draw-buffers.html b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-draw-buffers-max-draw-buffers.html >new file mode 100644 >index 00000000000..9db3eecaf7d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-draw-buffers-max-draw-buffers.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for webgl-draw-buffers-max-draw-buffers.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-max-draw-buffers.html">../../resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-max-draw-buffers.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-max-draw-buffers.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-draw-buffers.html b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-draw-buffers.html >new file mode 100644 >index 00000000000..4f578aad4fb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-draw-buffers.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for webgl-draw-buffers.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/webgl-draw-buffers.html">../../resources/webgl_test_files/conformance/extensions/webgl-draw-buffers.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/webgl-draw-buffers.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-shared-resources-expected.txt b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-shared-resources-expected.txt >new file mode 100644 >index 00000000000..a9faaba1806 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-shared-resources-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/extensions/webgl-shared-resources.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-shared-resources.html b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-shared-resources.html >new file mode 100644 >index 00000000000..dbc5b218114 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/extensions/webgl-shared-resources.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for webgl-shared-resources.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/extensions/webgl-shared-resources.html">../../resources/webgl_test_files/conformance/extensions/webgl-shared-resources.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/extensions/webgl-shared-resources.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-ambiguous-function-call-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-ambiguous-function-call-expected.txt >new file mode 100644 >index 00000000000..0cadaf53525 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-ambiguous-function-call-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/angle-ambiguous-function-call.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-ambiguous-function-call.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-ambiguous-function-call.html >new file mode 100644 >index 00000000000..e984eadc23a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-ambiguous-function-call.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for angle-ambiguous-function-call.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/angle-ambiguous-function-call.html">../../../resources/webgl_test_files/conformance/glsl/bugs/angle-ambiguous-function-call.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/angle-ambiguous-function-call.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-constructor-invalid-parameters-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-constructor-invalid-parameters-expected.txt >new file mode 100644 >index 00000000000..9ffc3f58329 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-constructor-invalid-parameters-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/angle-constructor-invalid-parameters.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-constructor-invalid-parameters.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-constructor-invalid-parameters.html >new file mode 100644 >index 00000000000..facc1acc78c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-constructor-invalid-parameters.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for angle-constructor-invalid-parameters.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/angle-constructor-invalid-parameters.html">../../../resources/webgl_test_files/conformance/glsl/bugs/angle-constructor-invalid-parameters.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/angle-constructor-invalid-parameters.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-d3d11-compiler-error-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-d3d11-compiler-error-expected.txt >new file mode 100644 >index 00000000000..ab4560fd115 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-d3d11-compiler-error-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/angle-d3d11-compiler-error.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-d3d11-compiler-error.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-d3d11-compiler-error.html >new file mode 100644 >index 00000000000..af7766bbe23 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-d3d11-compiler-error.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for angle-d3d11-compiler-error.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/angle-d3d11-compiler-error.html">../../../resources/webgl_test_files/conformance/glsl/bugs/angle-d3d11-compiler-error.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/angle-d3d11-compiler-error.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-dx-variable-bug-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-dx-variable-bug-expected.txt >new file mode 100644 >index 00000000000..ba3560a957c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-dx-variable-bug-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/angle-dx-variable-bug.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-dx-variable-bug.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-dx-variable-bug.html >new file mode 100644 >index 00000000000..e5bed4cc7e3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/angle-dx-variable-bug.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for angle-dx-variable-bug.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/angle-dx-variable-bug.html">../../../resources/webgl_test_files/conformance/glsl/bugs/angle-dx-variable-bug.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/angle-dx-variable-bug.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/array-of-struct-with-int-first-position-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/array-of-struct-with-int-first-position-expected.txt >new file mode 100644 >index 00000000000..01180391ea3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/array-of-struct-with-int-first-position-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/array-of-struct-with-int-first-position.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/array-of-struct-with-int-first-position.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/array-of-struct-with-int-first-position.html >new file mode 100644 >index 00000000000..caeb2d10aa1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/array-of-struct-with-int-first-position.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array-of-struct-with-int-first-position.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/array-of-struct-with-int-first-position.html">../../../resources/webgl_test_files/conformance/glsl/bugs/array-of-struct-with-int-first-position.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/array-of-struct-with-int-first-position.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/bool-type-cast-bug-int-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/bool-type-cast-bug-int-float-expected.txt >new file mode 100644 >index 00000000000..446ad2493fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/bool-type-cast-bug-int-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/bool-type-cast-bug-int-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/bool-type-cast-bug-int-float.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/bool-type-cast-bug-int-float.html >new file mode 100644 >index 00000000000..95acec4b729 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/bool-type-cast-bug-int-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for bool-type-cast-bug-int-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/bool-type-cast-bug-int-float.html">../../../resources/webgl_test_files/conformance/glsl/bugs/bool-type-cast-bug-int-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/bool-type-cast-bug-int-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/compare-loop-index-to-uniform-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/compare-loop-index-to-uniform-expected.txt >new file mode 100644 >index 00000000000..bffca40304d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/compare-loop-index-to-uniform-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/compare-loop-index-to-uniform.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/compare-loop-index-to-uniform.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/compare-loop-index-to-uniform.html >new file mode 100644 >index 00000000000..4e949afa5cc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/compare-loop-index-to-uniform.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for compare-loop-index-to-uniform.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/compare-loop-index-to-uniform.html">../../../resources/webgl_test_files/conformance/glsl/bugs/compare-loop-index-to-uniform.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/compare-loop-index-to-uniform.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/complex-glsl-does-not-crash-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/complex-glsl-does-not-crash-expected.txt >new file mode 100644 >index 00000000000..7c504bc93ec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/complex-glsl-does-not-crash-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/complex-glsl-does-not-crash.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/complex-glsl-does-not-crash.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/complex-glsl-does-not-crash.html >new file mode 100644 >index 00000000000..b44ed5c5471 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/complex-glsl-does-not-crash.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for complex-glsl-does-not-crash.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/complex-glsl-does-not-crash.html">../../../resources/webgl_test_files/conformance/glsl/bugs/complex-glsl-does-not-crash.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/complex-glsl-does-not-crash.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/compound-assignment-type-combination-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/compound-assignment-type-combination-expected.txt >new file mode 100644 >index 00000000000..8ca5818b155 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/compound-assignment-type-combination-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/compound-assignment-type-combination.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/compound-assignment-type-combination.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/compound-assignment-type-combination.html >new file mode 100644 >index 00000000000..d6d431505e8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/compound-assignment-type-combination.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for compound-assignment-type-combination.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/compound-assignment-type-combination.html">../../../resources/webgl_test_files/conformance/glsl/bugs/compound-assignment-type-combination.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/compound-assignment-type-combination.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/conditional-discard-in-loop-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/conditional-discard-in-loop-expected.txt >new file mode 100644 >index 00000000000..357ad1fc490 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/conditional-discard-in-loop-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/conditional-discard-in-loop.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/conditional-discard-in-loop.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/conditional-discard-in-loop.html >new file mode 100644 >index 00000000000..314e032929d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/conditional-discard-in-loop.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conditional-discard-in-loop.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/conditional-discard-in-loop.html">../../../resources/webgl_test_files/conformance/glsl/bugs/conditional-discard-in-loop.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/conditional-discard-in-loop.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/conditional-discard-optimization-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/conditional-discard-optimization-expected.txt >new file mode 100644 >index 00000000000..ae331dea854 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/conditional-discard-optimization-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/conditional-discard-optimization.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/conditional-discard-optimization.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/conditional-discard-optimization.html >new file mode 100644 >index 00000000000..fadc6380497 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/conditional-discard-optimization.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conditional-discard-optimization.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/conditional-discard-optimization.html">../../../resources/webgl_test_files/conformance/glsl/bugs/conditional-discard-optimization.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/conditional-discard-optimization.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/constant-precision-qualifier-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/constant-precision-qualifier-expected.txt >new file mode 100644 >index 00000000000..da71e284866 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/constant-precision-qualifier-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/constant-precision-qualifier.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/constant-precision-qualifier.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/constant-precision-qualifier.html >new file mode 100644 >index 00000000000..d90c6df20b6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/constant-precision-qualifier.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for constant-precision-qualifier.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/constant-precision-qualifier.html">../../../resources/webgl_test_files/conformance/glsl/bugs/constant-precision-qualifier.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/constant-precision-qualifier.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/essl3-shaders-with-webgl1-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/essl3-shaders-with-webgl1-expected.txt >new file mode 100644 >index 00000000000..dcf85547543 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/essl3-shaders-with-webgl1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/essl3-shaders-with-webgl1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/essl3-shaders-with-webgl1.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/essl3-shaders-with-webgl1.html >new file mode 100644 >index 00000000000..37f8a04dd6a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/essl3-shaders-with-webgl1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for essl3-shaders-with-webgl1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/essl3-shaders-with-webgl1.html">../../../resources/webgl_test_files/conformance/glsl/bugs/essl3-shaders-with-webgl1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/essl3-shaders-with-webgl1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/floor-div-cos-should-not-truncate-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/floor-div-cos-should-not-truncate-expected.txt >new file mode 100644 >index 00000000000..f57cde1237d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/floor-div-cos-should-not-truncate-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/floor-div-cos-should-not-truncate.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/floor-div-cos-should-not-truncate.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/floor-div-cos-should-not-truncate.html >new file mode 100644 >index 00000000000..e20fb5c765e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/floor-div-cos-should-not-truncate.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for floor-div-cos-should-not-truncate.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/floor-div-cos-should-not-truncate.html">../../../resources/webgl_test_files/conformance/glsl/bugs/floor-div-cos-should-not-truncate.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/floor-div-cos-should-not-truncate.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/floored-division-accuracy-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/floored-division-accuracy-expected.txt >new file mode 100644 >index 00000000000..b8a0e9f92cb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/floored-division-accuracy-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/floored-division-accuracy.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/floored-division-accuracy.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/floored-division-accuracy.html >new file mode 100644 >index 00000000000..a318ef374e7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/floored-division-accuracy.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for floored-division-accuracy.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/floored-division-accuracy.html">../../../resources/webgl_test_files/conformance/glsl/bugs/floored-division-accuracy.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/floored-division-accuracy.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/fragcoord-linking-bug-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/fragcoord-linking-bug-expected.txt >new file mode 100644 >index 00000000000..ebf95636949 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/fragcoord-linking-bug-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/fragcoord-linking-bug.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/fragcoord-linking-bug.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/fragcoord-linking-bug.html >new file mode 100644 >index 00000000000..19f76c3c60c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/fragcoord-linking-bug.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for fragcoord-linking-bug.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/fragcoord-linking-bug.html">../../../resources/webgl_test_files/conformance/glsl/bugs/fragcoord-linking-bug.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/fragcoord-linking-bug.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/gl-fragcoord-multisampling-bug-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/gl-fragcoord-multisampling-bug-expected.txt >new file mode 100644 >index 00000000000..47d256b820d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/gl-fragcoord-multisampling-bug-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/gl-fragcoord-multisampling-bug.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/gl-fragcoord-multisampling-bug.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/gl-fragcoord-multisampling-bug.html >new file mode 100644 >index 00000000000..01df6f4d9d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/gl-fragcoord-multisampling-bug.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-fragcoord-multisampling-bug.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/gl-fragcoord-multisampling-bug.html">../../../resources/webgl_test_files/conformance/glsl/bugs/gl-fragcoord-multisampling-bug.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/gl-fragcoord-multisampling-bug.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders-expected.txt >new file mode 100644 >index 00000000000..4c1ed9cecf6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders.html >new file mode 100644 >index 00000000000..9a2bdbf2bbf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for global-invariant-does-not-leak-across-shaders.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders.html">../../../resources/webgl_test_files/conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/invariant-does-not-leak-across-shaders-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/invariant-does-not-leak-across-shaders-expected.txt >new file mode 100644 >index 00000000000..b0537b0eab3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/invariant-does-not-leak-across-shaders-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/invariant-does-not-leak-across-shaders.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/invariant-does-not-leak-across-shaders.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/invariant-does-not-leak-across-shaders.html >new file mode 100644 >index 00000000000..08eb8e2148b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/invariant-does-not-leak-across-shaders.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for invariant-does-not-leak-across-shaders.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/invariant-does-not-leak-across-shaders.html">../../../resources/webgl_test_files/conformance/glsl/bugs/invariant-does-not-leak-across-shaders.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/invariant-does-not-leak-across-shaders.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/logic-inside-block-without-braces-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/logic-inside-block-without-braces-expected.txt >new file mode 100644 >index 00000000000..b01a28a8036 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/logic-inside-block-without-braces-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/logic-inside-block-without-braces.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/logic-inside-block-without-braces.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/logic-inside-block-without-braces.html >new file mode 100644 >index 00000000000..2f48ce96be0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/logic-inside-block-without-braces.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for logic-inside-block-without-braces.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/logic-inside-block-without-braces.html">../../../resources/webgl_test_files/conformance/glsl/bugs/logic-inside-block-without-braces.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/logic-inside-block-without-braces.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/long-expressions-should-not-crash-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/long-expressions-should-not-crash-expected.txt >new file mode 100644 >index 00000000000..c6f3fe13ed4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/long-expressions-should-not-crash-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/long-expressions-should-not-crash.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/long-expressions-should-not-crash.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/long-expressions-should-not-crash.html >new file mode 100644 >index 00000000000..e234c4427b5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/long-expressions-should-not-crash.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for long-expressions-should-not-crash.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/long-expressions-should-not-crash.html">../../../resources/webgl_test_files/conformance/glsl/bugs/long-expressions-should-not-crash.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/long-expressions-should-not-crash.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/loop-if-loop-gradient-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/loop-if-loop-gradient-expected.txt >new file mode 100644 >index 00000000000..7cda5aaf90a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/loop-if-loop-gradient-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/loop-if-loop-gradient.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/loop-if-loop-gradient.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/loop-if-loop-gradient.html >new file mode 100644 >index 00000000000..376b28145fb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/loop-if-loop-gradient.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for loop-if-loop-gradient.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/loop-if-loop-gradient.html">../../../resources/webgl_test_files/conformance/glsl/bugs/loop-if-loop-gradient.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/loop-if-loop-gradient.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/modulo-arithmetic-accuracy-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/modulo-arithmetic-accuracy-expected.txt >new file mode 100644 >index 00000000000..8521866ad1d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/modulo-arithmetic-accuracy-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/modulo-arithmetic-accuracy.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/modulo-arithmetic-accuracy.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/modulo-arithmetic-accuracy.html >new file mode 100644 >index 00000000000..ef142115dea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/modulo-arithmetic-accuracy.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for modulo-arithmetic-accuracy.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/modulo-arithmetic-accuracy.html">../../../resources/webgl_test_files/conformance/glsl/bugs/modulo-arithmetic-accuracy.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/modulo-arithmetic-accuracy.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/multiplication-assignment-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/multiplication-assignment-expected.txt >new file mode 100644 >index 00000000000..7f825b303b6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/multiplication-assignment-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/multiplication-assignment.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/multiplication-assignment.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/multiplication-assignment.html >new file mode 100644 >index 00000000000..5f7823bc98b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/multiplication-assignment.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multiplication-assignment.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/multiplication-assignment.html">../../../resources/webgl_test_files/conformance/glsl/bugs/multiplication-assignment.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/multiplication-assignment.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/nested-functions-should-not-crash-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/nested-functions-should-not-crash-expected.txt >new file mode 100644 >index 00000000000..b38f22c9097 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/nested-functions-should-not-crash-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/nested-functions-should-not-crash.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/nested-functions-should-not-crash.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/nested-functions-should-not-crash.html >new file mode 100644 >index 00000000000..edeaed2f547 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/nested-functions-should-not-crash.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for nested-functions-should-not-crash.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/nested-functions-should-not-crash.html">../../../resources/webgl_test_files/conformance/glsl/bugs/nested-functions-should-not-crash.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/nested-functions-should-not-crash.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/nested-loops-with-break-and-continue-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/nested-loops-with-break-and-continue-expected.txt >new file mode 100644 >index 00000000000..bad1dd429a1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/nested-loops-with-break-and-continue-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/nested-loops-with-break-and-continue.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/nested-loops-with-break-and-continue.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/nested-loops-with-break-and-continue.html >new file mode 100644 >index 00000000000..5dcc7420f59 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/nested-loops-with-break-and-continue.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for nested-loops-with-break-and-continue.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/nested-loops-with-break-and-continue.html">../../../resources/webgl_test_files/conformance/glsl/bugs/nested-loops-with-break-and-continue.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/nested-loops-with-break-and-continue.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/nested-sequence-operator-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/nested-sequence-operator-expected.txt >new file mode 100644 >index 00000000000..644493b450f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/nested-sequence-operator-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/nested-sequence-operator.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/nested-sequence-operator.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/nested-sequence-operator.html >new file mode 100644 >index 00000000000..35a8ff764c2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/nested-sequence-operator.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for nested-sequence-operator.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/nested-sequence-operator.html">../../../resources/webgl_test_files/conformance/glsl/bugs/nested-sequence-operator.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/nested-sequence-operator.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/pow-of-small-constant-in-user-defined-function-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/pow-of-small-constant-in-user-defined-function-expected.txt >new file mode 100644 >index 00000000000..34bb663a27d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/pow-of-small-constant-in-user-defined-function-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/pow-of-small-constant-in-user-defined-function.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/pow-of-small-constant-in-user-defined-function.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/pow-of-small-constant-in-user-defined-function.html >new file mode 100644 >index 00000000000..3b91c85e21c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/pow-of-small-constant-in-user-defined-function.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for pow-of-small-constant-in-user-defined-function.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/pow-of-small-constant-in-user-defined-function.html">../../../resources/webgl_test_files/conformance/glsl/bugs/pow-of-small-constant-in-user-defined-function.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/pow-of-small-constant-in-user-defined-function.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/pow-with-constant-exponent-should-not-crash-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/pow-with-constant-exponent-should-not-crash-expected.txt >new file mode 100644 >index 00000000000..49f53a8bd32 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/pow-with-constant-exponent-should-not-crash-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/pow-with-constant-exponent-should-not-crash.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/pow-with-constant-exponent-should-not-crash.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/pow-with-constant-exponent-should-not-crash.html >new file mode 100644 >index 00000000000..bda3ba7357f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/pow-with-constant-exponent-should-not-crash.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for pow-with-constant-exponent-should-not-crash.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/pow-with-constant-exponent-should-not-crash.html">../../../resources/webgl_test_files/conformance/glsl/bugs/pow-with-constant-exponent-should-not-crash.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/pow-with-constant-exponent-should-not-crash.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/qualcomm-crash-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/qualcomm-crash-expected.txt >new file mode 100644 >index 00000000000..d0aa143c873 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/qualcomm-crash-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/qualcomm-crash.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/qualcomm-crash.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/qualcomm-crash.html >new file mode 100644 >index 00000000000..13701ab299f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/qualcomm-crash.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for qualcomm-crash.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/qualcomm-crash.html">../../../resources/webgl_test_files/conformance/glsl/bugs/qualcomm-crash.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/qualcomm-crash.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/qualcomm-loop-with-continue-crash-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/qualcomm-loop-with-continue-crash-expected.txt >new file mode 100644 >index 00000000000..dfd327a93cd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/qualcomm-loop-with-continue-crash-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/qualcomm-loop-with-continue-crash.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/qualcomm-loop-with-continue-crash.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/qualcomm-loop-with-continue-crash.html >new file mode 100644 >index 00000000000..29e89f1e870 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/qualcomm-loop-with-continue-crash.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for qualcomm-loop-with-continue-crash.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/qualcomm-loop-with-continue-crash.html">../../../resources/webgl_test_files/conformance/glsl/bugs/qualcomm-loop-with-continue-crash.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/qualcomm-loop-with-continue-crash.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sampler-array-using-loop-index-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sampler-array-using-loop-index-expected.txt >new file mode 100644 >index 00000000000..9a6b8ac6fe0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sampler-array-using-loop-index-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/sampler-array-using-loop-index.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sampler-array-using-loop-index.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sampler-array-using-loop-index.html >new file mode 100644 >index 00000000000..6dd410b6b97 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sampler-array-using-loop-index.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sampler-array-using-loop-index.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/sampler-array-using-loop-index.html">../../../resources/webgl_test_files/conformance/glsl/bugs/sampler-array-using-loop-index.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/sampler-array-using-loop-index.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sampler-struct-function-arg-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sampler-struct-function-arg-expected.txt >new file mode 100644 >index 00000000000..23174b0dd9b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sampler-struct-function-arg-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/sampler-struct-function-arg.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sampler-struct-function-arg.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sampler-struct-function-arg.html >new file mode 100644 >index 00000000000..3a50695f121 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sampler-struct-function-arg.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sampler-struct-function-arg.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/sampler-struct-function-arg.html">../../../resources/webgl_test_files/conformance/glsl/bugs/sampler-struct-function-arg.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/sampler-struct-function-arg.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sequence-operator-evaluation-order-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sequence-operator-evaluation-order-expected.txt >new file mode 100644 >index 00000000000..74085975bfa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sequence-operator-evaluation-order-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/sequence-operator-evaluation-order.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sequence-operator-evaluation-order.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sequence-operator-evaluation-order.html >new file mode 100644 >index 00000000000..773454ca635 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sequence-operator-evaluation-order.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sequence-operator-evaluation-order.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/sequence-operator-evaluation-order.html">../../../resources/webgl_test_files/conformance/glsl/bugs/sequence-operator-evaluation-order.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/sequence-operator-evaluation-order.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sketchfab-lighting-shader-crash-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sketchfab-lighting-shader-crash-expected.txt >new file mode 100644 >index 00000000000..59a25df3b91 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sketchfab-lighting-shader-crash-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/sketchfab-lighting-shader-crash.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sketchfab-lighting-shader-crash.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sketchfab-lighting-shader-crash.html >new file mode 100644 >index 00000000000..8e5fa5be5df >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/sketchfab-lighting-shader-crash.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sketchfab-lighting-shader-crash.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/sketchfab-lighting-shader-crash.html">../../../resources/webgl_test_files/conformance/glsl/bugs/sketchfab-lighting-shader-crash.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/sketchfab-lighting-shader-crash.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/struct-constructor-highp-bug-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/struct-constructor-highp-bug-expected.txt >new file mode 100644 >index 00000000000..a6621690fd9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/struct-constructor-highp-bug-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/struct-constructor-highp-bug.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/struct-constructor-highp-bug.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/struct-constructor-highp-bug.html >new file mode 100644 >index 00000000000..fe8ab4e37de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/struct-constructor-highp-bug.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for struct-constructor-highp-bug.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/struct-constructor-highp-bug.html">../../../resources/webgl_test_files/conformance/glsl/bugs/struct-constructor-highp-bug.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/struct-constructor-highp-bug.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/temp-expressions-should-not-crash-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/temp-expressions-should-not-crash-expected.txt >new file mode 100644 >index 00000000000..9d9fee32c48 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/temp-expressions-should-not-crash-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/temp-expressions-should-not-crash.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/temp-expressions-should-not-crash.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/temp-expressions-should-not-crash.html >new file mode 100644 >index 00000000000..29f4ee23b24 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/temp-expressions-should-not-crash.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for temp-expressions-should-not-crash.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/temp-expressions-should-not-crash.html">../../../resources/webgl_test_files/conformance/glsl/bugs/temp-expressions-should-not-crash.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/temp-expressions-should-not-crash.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/undefined-index-should-not-crash-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/undefined-index-should-not-crash-expected.txt >new file mode 100644 >index 00000000000..fde1f28a230 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/undefined-index-should-not-crash-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/undefined-index-should-not-crash.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/undefined-index-should-not-crash.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/undefined-index-should-not-crash.html >new file mode 100644 >index 00000000000..214d80cc4d2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/undefined-index-should-not-crash.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for undefined-index-should-not-crash.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/undefined-index-should-not-crash.html">../../../resources/webgl_test_files/conformance/glsl/bugs/undefined-index-should-not-crash.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/undefined-index-should-not-crash.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/uniforms-should-not-lose-values-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/uniforms-should-not-lose-values-expected.txt >new file mode 100644 >index 00000000000..35925068a41 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/uniforms-should-not-lose-values-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/bugs/uniforms-should-not-lose-values.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/uniforms-should-not-lose-values.html b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/uniforms-should-not-lose-values.html >new file mode 100644 >index 00000000000..4ede20c1265 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/bugs/uniforms-should-not-lose-values.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniforms-should-not-lose-values.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/bugs/uniforms-should-not-lose-values.html">../../../resources/webgl_test_files/conformance/glsl/bugs/uniforms-should-not-lose-values.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/bugs/uniforms-should-not-lose-values.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-bvec2-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-bvec2-expected.txt >new file mode 100644 >index 00000000000..2f6757ac022 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-bvec2-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec2.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-bvec2.html b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-bvec2.html >new file mode 100644 >index 00000000000..0bb00db598c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-bvec2.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-construct-bvec2.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec2.html">../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec2.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec2.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-bvec3-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-bvec3-expected.txt >new file mode 100644 >index 00000000000..88f38c294fe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-bvec3-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec3.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-bvec3.html b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-bvec3.html >new file mode 100644 >index 00000000000..39513c422bd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-bvec3.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-construct-bvec3.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec3.html">../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec3.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec3.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-bvec4-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-bvec4-expected.txt >new file mode 100644 >index 00000000000..91086024803 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-bvec4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-bvec4.html b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-bvec4.html >new file mode 100644 >index 00000000000..52563c0d2cf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-bvec4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-construct-bvec4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec4.html">../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec2-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec2-expected.txt >new file mode 100644 >index 00000000000..ad83159cd70 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec2-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec2.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec2.html b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec2.html >new file mode 100644 >index 00000000000..ec9994142e0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec2.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-construct-ivec2.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec2.html">../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec2.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec2.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec3-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec3-expected.txt >new file mode 100644 >index 00000000000..408655c64ed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec3-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec3.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec3.html b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec3.html >new file mode 100644 >index 00000000000..ff28de1043b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec3.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-construct-ivec3.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec3.html">../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec3.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec3.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec4-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec4-expected.txt >new file mode 100644 >index 00000000000..bf097ec4eae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec4.html b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec4.html >new file mode 100644 >index 00000000000..8ff67bf6e39 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-ivec4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-construct-ivec4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec4.html">../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat2-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat2-expected.txt >new file mode 100644 >index 00000000000..f1217f07640 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat2-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat2.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat2.html b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat2.html >new file mode 100644 >index 00000000000..0d025bee1fe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat2.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-construct-mat2.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat2.html">../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat2.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat2.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat3-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat3-expected.txt >new file mode 100644 >index 00000000000..673aa01dcbd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat3-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat3.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat3.html b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat3.html >new file mode 100644 >index 00000000000..3698656c6c6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat3.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-construct-mat3.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat3.html">../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat3.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat3.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat4-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat4-expected.txt >new file mode 100644 >index 00000000000..a47f403d64c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat4.html b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat4.html >new file mode 100644 >index 00000000000..41b7129445b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-mat4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-construct-mat4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat4.html">../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec-mat-corner-cases-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec-mat-corner-cases-expected.txt >new file mode 100644 >index 00000000000..7e089ec3394 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec-mat-corner-cases-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec-mat-corner-cases.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec-mat-corner-cases.html b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec-mat-corner-cases.html >new file mode 100644 >index 00000000000..65c32ce7a9e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec-mat-corner-cases.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-construct-vec-mat-corner-cases.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec-mat-corner-cases.html">../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec-mat-corner-cases.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec-mat-corner-cases.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec-mat-index-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec-mat-index-expected.txt >new file mode 100644 >index 00000000000..48c0c4d7c73 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec-mat-index-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec-mat-index.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec-mat-index.html b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec-mat-index.html >new file mode 100644 >index 00000000000..4987ee8255f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec-mat-index.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-construct-vec-mat-index.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec-mat-index.html">../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec-mat-index.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec-mat-index.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec2-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec2-expected.txt >new file mode 100644 >index 00000000000..17fb025fd56 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec2-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec2.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec2.html b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec2.html >new file mode 100644 >index 00000000000..9672738d97f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec2.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-construct-vec2.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec2.html">../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec2.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec2.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec3-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec3-expected.txt >new file mode 100644 >index 00000000000..42e3e81506b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec3-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec3.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec3.html b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec3.html >new file mode 100644 >index 00000000000..1058748214c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec3.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-construct-vec3.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec3.html">../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec3.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec3.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec4-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec4-expected.txt >new file mode 100644 >index 00000000000..e544c3d6f6a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec4.html b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec4.html >new file mode 100644 >index 00000000000..79ab7022aa1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/constructors/glsl-construct-vec4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-construct-vec4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec4.html">../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-abs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-abs-expected.txt >new file mode 100644 >index 00000000000..bf64176487c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-abs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-abs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-abs.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-abs.html >new file mode 100644 >index 00000000000..48567423f70 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-abs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-abs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-abs.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-abs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-abs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-acos-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-acos-expected.txt >new file mode 100644 >index 00000000000..0735202f2e8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-acos-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-acos.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-acos.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-acos.html >new file mode 100644 >index 00000000000..c96a942d4ce >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-acos.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-acos.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-acos.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-acos.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-acos.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-asin-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-asin-expected.txt >new file mode 100644 >index 00000000000..e56e32a5d8d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-asin-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-asin.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-asin.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-asin.html >new file mode 100644 >index 00000000000..67816fefcbf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-asin.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-asin.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-asin.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-asin.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-asin.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-atan-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-atan-expected.txt >new file mode 100644 >index 00000000000..b416a788d65 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-atan-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-atan-xy-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-atan-xy-expected.txt >new file mode 100644 >index 00000000000..da878eb4070 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-atan-xy-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan-xy.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-atan-xy.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-atan-xy.html >new file mode 100644 >index 00000000000..db5f8f81a55 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-atan-xy.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-atan-xy.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan-xy.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan-xy.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan-xy.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-atan.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-atan.html >new file mode 100644 >index 00000000000..60e04652d26 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-atan.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-atan.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-ceil-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-ceil-expected.txt >new file mode 100644 >index 00000000000..c78bf49d3d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-ceil-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-ceil.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-ceil.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-ceil.html >new file mode 100644 >index 00000000000..a46ae581c45 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-ceil.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-ceil.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-ceil.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-ceil.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-ceil.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-clamp-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-clamp-float-expected.txt >new file mode 100644 >index 00000000000..eb420e8c75e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-clamp-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-clamp-float.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-clamp-float.html >new file mode 100644 >index 00000000000..ee59f194dd6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-clamp-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-clamp-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-float.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-clamp-gentype-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-clamp-gentype-expected.txt >new file mode 100644 >index 00000000000..02e06ce09fe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-clamp-gentype-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-gentype.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-clamp-gentype.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-clamp-gentype.html >new file mode 100644 >index 00000000000..1f51805a891 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-clamp-gentype.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-clamp-gentype.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-gentype.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-gentype.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-gentype.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-cos-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-cos-expected.txt >new file mode 100644 >index 00000000000..2752cd3986c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-cos-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-cos.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-cos.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-cos.html >new file mode 100644 >index 00000000000..efb05e9a12e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-cos.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-cos.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-cos.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-cos.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-cos.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-cross-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-cross-expected.txt >new file mode 100644 >index 00000000000..13f057fded4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-cross-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-cross.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-cross.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-cross.html >new file mode 100644 >index 00000000000..ab686561aec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-cross.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-cross.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-cross.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-cross.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-cross.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-distance-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-distance-expected.txt >new file mode 100644 >index 00000000000..49155a32669 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-distance-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-distance.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-distance.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-distance.html >new file mode 100644 >index 00000000000..50c585a9dc0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-distance.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-distance.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-distance.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-distance.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-distance.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-dot-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-dot-expected.txt >new file mode 100644 >index 00000000000..1598bf10fbc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-dot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-dot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-dot.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-dot.html >new file mode 100644 >index 00000000000..3f8250d0602 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-dot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-dot.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-dot.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-dot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-dot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-expected.txt >new file mode 100644 >index 00000000000..d50131e07ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-faceforward-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-faceforward-expected.txt >new file mode 100644 >index 00000000000..a243684509b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-faceforward-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-faceforward.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-faceforward.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-faceforward.html >new file mode 100644 >index 00000000000..3c206f0f0d3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-faceforward.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-faceforward.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-faceforward.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-faceforward.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-faceforward.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-floor-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-floor-expected.txt >new file mode 100644 >index 00000000000..48d174d2a1a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-floor-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-floor.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-floor.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-floor.html >new file mode 100644 >index 00000000000..488bd1ae55b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-floor.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-floor.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-floor.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-floor.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-floor.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-fract-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-fract-expected.txt >new file mode 100644 >index 00000000000..97b17dc41e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-fract-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-fract.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-fract.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-fract.html >new file mode 100644 >index 00000000000..404c95cba76 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-fract.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-fract.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-fract.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-fract.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-fract.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-length-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-length-expected.txt >new file mode 100644 >index 00000000000..7545cd73d3d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-length-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-length.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-length.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-length.html >new file mode 100644 >index 00000000000..47be2333a38 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-length.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-length.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-length.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-length.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-length.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-max-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-max-float-expected.txt >new file mode 100644 >index 00000000000..fc2e6ce6c3d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-max-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-max-float.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-max-float.html >new file mode 100644 >index 00000000000..d5a8db556ef >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-max-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-max-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-float.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-max-gentype-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-max-gentype-expected.txt >new file mode 100644 >index 00000000000..a68e3bdab99 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-max-gentype-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-gentype.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-max-gentype.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-max-gentype.html >new file mode 100644 >index 00000000000..66afbe6a829 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-max-gentype.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-max-gentype.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-gentype.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-gentype.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-gentype.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-min-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-min-float-expected.txt >new file mode 100644 >index 00000000000..1c2dae8f5c6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-min-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-min-float.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-min-float.html >new file mode 100644 >index 00000000000..0d2b34658db >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-min-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-min-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-float.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-min-gentype-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-min-gentype-expected.txt >new file mode 100644 >index 00000000000..95f0b699f92 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-min-gentype-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-gentype.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-min-gentype.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-min-gentype.html >new file mode 100644 >index 00000000000..d657f560259 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-min-gentype.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-min-gentype.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-gentype.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-gentype.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-gentype.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mix-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mix-float-expected.txt >new file mode 100644 >index 00000000000..d608816cd3f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mix-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mix-float.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mix-float.html >new file mode 100644 >index 00000000000..c6501b2c0b9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mix-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-mix-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-float.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mix-gentype-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mix-gentype-expected.txt >new file mode 100644 >index 00000000000..cff282bd15f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mix-gentype-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-gentype.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mix-gentype.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mix-gentype.html >new file mode 100644 >index 00000000000..d2477f5da4f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mix-gentype.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-mix-gentype.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-gentype.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-gentype.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-gentype.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mod-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mod-float-expected.txt >new file mode 100644 >index 00000000000..9cd53f2227a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mod-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mod-float.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mod-float.html >new file mode 100644 >index 00000000000..ff91eaa73a2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mod-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-mod-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-float.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mod-gentype-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mod-gentype-expected.txt >new file mode 100644 >index 00000000000..cea89e344ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mod-gentype-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-gentype.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mod-gentype.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mod-gentype.html >new file mode 100644 >index 00000000000..cb1f870f667 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-mod-gentype.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-mod-gentype.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-gentype.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-gentype.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-gentype.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-normalize-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-normalize-expected.txt >new file mode 100644 >index 00000000000..c027776925d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-normalize-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-normalize.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-normalize.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-normalize.html >new file mode 100644 >index 00000000000..595a52ad354 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-normalize.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-normalize.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-normalize.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-normalize.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-normalize.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-reflect-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-reflect-expected.txt >new file mode 100644 >index 00000000000..f5cb39f2533 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-reflect-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-reflect.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-reflect.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-reflect.html >new file mode 100644 >index 00000000000..e9751d12ff3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-reflect.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-reflect.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-reflect.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-reflect.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-reflect.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-sign-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-sign-expected.txt >new file mode 100644 >index 00000000000..55340467c36 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-sign-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-sign.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-sign.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-sign.html >new file mode 100644 >index 00000000000..19d574d9a68 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-sign.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-sign.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-sign.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-sign.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-sign.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-sin-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-sin-expected.txt >new file mode 100644 >index 00000000000..3a81ee35bde >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-sin-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-sin.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-sin.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-sin.html >new file mode 100644 >index 00000000000..2666fd8bc6e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-sin.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-sin.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-sin.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-sin.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-sin.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-smoothstep-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-smoothstep-float-expected.txt >new file mode 100644 >index 00000000000..fcc6965aa0a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-smoothstep-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-smoothstep-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-smoothstep-float.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-smoothstep-float.html >new file mode 100644 >index 00000000000..54dab67a51e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-smoothstep-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-smoothstep-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-smoothstep-float.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-smoothstep-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-smoothstep-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-smoothstep-gentype-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-smoothstep-gentype-expected.txt >new file mode 100644 >index 00000000000..14e3306447b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-smoothstep-gentype-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-smoothstep-gentype.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-smoothstep-gentype.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-smoothstep-gentype.html >new file mode 100644 >index 00000000000..dc7e8144da7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-smoothstep-gentype.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-smoothstep-gentype.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-smoothstep-gentype.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-smoothstep-gentype.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-smoothstep-gentype.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-step-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-step-float-expected.txt >new file mode 100644 >index 00000000000..69e19a8f357 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-step-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-step-float.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-step-float.html >new file mode 100644 >index 00000000000..ea1d05f6b91 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-step-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-step-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-float.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-step-gentype-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-step-gentype-expected.txt >new file mode 100644 >index 00000000000..63a2b81af44 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-step-gentype-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-gentype.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-step-gentype.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-step-gentype.html >new file mode 100644 >index 00000000000..0f7b689daac >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function-step-gentype.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-step-gentype.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-gentype.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-gentype.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-gentype.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function.html b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function.html >new file mode 100644 >index 00000000000..3d6c7bfe55d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/functions/glsl-function.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function.html">../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/functions/glsl-function.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_float.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_float.vert-expected.txt >new file mode 100644 >index 00000000000..da8561c8eb4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_float.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_float.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_float.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_float.vert.html >new file mode 100644 >index 00000000000..69e6479b45e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_float.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for add_int_float.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_float.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_float.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_float.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_mat2.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_mat2.vert-expected.txt >new file mode 100644 >index 00000000000..1f296ef09ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_mat2.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_mat2.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_mat2.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_mat2.vert.html >new file mode 100644 >index 00000000000..0c52a593b4a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_mat2.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for add_int_mat2.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_mat2.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_mat2.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_mat2.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_mat3.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_mat3.vert-expected.txt >new file mode 100644 >index 00000000000..e50ff056103 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_mat3.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_mat3.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_mat3.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_mat3.vert.html >new file mode 100644 >index 00000000000..f6024a16e55 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_mat3.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for add_int_mat3.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_mat3.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_mat3.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_mat3.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_mat4.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_mat4.vert-expected.txt >new file mode 100644 >index 00000000000..5dcef1622c5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_mat4.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_mat4.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_mat4.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_mat4.vert.html >new file mode 100644 >index 00000000000..79c456ca7eb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_mat4.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for add_int_mat4.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_mat4.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_mat4.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_mat4.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_vec2.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_vec2.vert-expected.txt >new file mode 100644 >index 00000000000..1e0aa1b7f81 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_vec2.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_vec2.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_vec2.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_vec2.vert.html >new file mode 100644 >index 00000000000..6a880021897 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_vec2.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for add_int_vec2.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_vec2.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_vec2.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_vec2.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_vec3.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_vec3.vert-expected.txt >new file mode 100644 >index 00000000000..9c705c68494 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_vec3.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_vec3.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_vec3.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_vec3.vert.html >new file mode 100644 >index 00000000000..253b6e45620 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_vec3.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for add_int_vec3.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_vec3.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_vec3.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_vec3.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_vec4.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_vec4.vert-expected.txt >new file mode 100644 >index 00000000000..0f20563bea4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_vec4.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_vec4.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_vec4.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_vec4.vert.html >new file mode 100644 >index 00000000000..aaca6e102e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_int_vec4.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for add_int_vec4.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_vec4.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_vec4.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/add_int_vec4.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_ivec2_vec2.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_ivec2_vec2.vert-expected.txt >new file mode 100644 >index 00000000000..0d94f4eeb8f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_ivec2_vec2.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/add_ivec2_vec2.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_ivec2_vec2.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_ivec2_vec2.vert.html >new file mode 100644 >index 00000000000..190e5984d1a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_ivec2_vec2.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for add_ivec2_vec2.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/add_ivec2_vec2.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/add_ivec2_vec2.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/add_ivec2_vec2.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_ivec3_vec3.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_ivec3_vec3.vert-expected.txt >new file mode 100644 >index 00000000000..44c12c877af >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_ivec3_vec3.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/add_ivec3_vec3.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_ivec3_vec3.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_ivec3_vec3.vert.html >new file mode 100644 >index 00000000000..5cf4bf456b8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_ivec3_vec3.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for add_ivec3_vec3.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/add_ivec3_vec3.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/add_ivec3_vec3.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/add_ivec3_vec3.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_ivec4_vec4.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_ivec4_vec4.vert-expected.txt >new file mode 100644 >index 00000000000..3197c092ea4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_ivec4_vec4.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/add_ivec4_vec4.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_ivec4_vec4.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_ivec4_vec4.vert.html >new file mode 100644 >index 00000000000..8a27e6adc2f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/add_ivec4_vec4.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for add_ivec4_vec4.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/add_ivec4_vec4.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/add_ivec4_vec4.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/add_ivec4_vec4.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_int_to_float.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_int_to_float.vert-expected.txt >new file mode 100644 >index 00000000000..1a08c1e0720 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_int_to_float.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/assign_int_to_float.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_int_to_float.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_int_to_float.vert.html >new file mode 100644 >index 00000000000..30a337687cc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_int_to_float.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for assign_int_to_float.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/assign_int_to_float.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/assign_int_to_float.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/assign_int_to_float.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_ivec2_to_vec2.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_ivec2_to_vec2.vert-expected.txt >new file mode 100644 >index 00000000000..c567e87949b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_ivec2_to_vec2.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html >new file mode 100644 >index 00000000000..6b595980cba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for assign_ivec2_to_vec2.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_ivec3_to_vec3.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_ivec3_to_vec3.vert-expected.txt >new file mode 100644 >index 00000000000..892b200c032 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_ivec3_to_vec3.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html >new file mode 100644 >index 00000000000..469832aff6f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for assign_ivec3_to_vec3.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_ivec4_to_vec4.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_ivec4_to_vec4.vert-expected.txt >new file mode 100644 >index 00000000000..f896c5a8642 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_ivec4_to_vec4.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html >new file mode 100644 >index 00000000000..2e28f6e19ed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for assign_ivec4_to_vec4.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/construct_struct.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/construct_struct.vert-expected.txt >new file mode 100644 >index 00000000000..f11b514f40b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/construct_struct.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/construct_struct.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/construct_struct.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/construct_struct.vert.html >new file mode 100644 >index 00000000000..f92b6df325d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/construct_struct.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for construct_struct.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/construct_struct.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/construct_struct.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/construct_struct.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_float.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_float.vert-expected.txt >new file mode 100644 >index 00000000000..8c6a09953af >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_float.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_float.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_float.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_float.vert.html >new file mode 100644 >index 00000000000..5b09223afe8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_float.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for divide_int_float.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_float.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_float.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_float.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_mat2.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_mat2.vert-expected.txt >new file mode 100644 >index 00000000000..c1651034763 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_mat2.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat2.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_mat2.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_mat2.vert.html >new file mode 100644 >index 00000000000..93f16b79be5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_mat2.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for divide_int_mat2.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat2.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat2.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat2.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_mat3.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_mat3.vert-expected.txt >new file mode 100644 >index 00000000000..48fb212d90c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_mat3.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat3.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_mat3.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_mat3.vert.html >new file mode 100644 >index 00000000000..a50c8f8c27d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_mat3.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for divide_int_mat3.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat3.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat3.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat3.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_mat4.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_mat4.vert-expected.txt >new file mode 100644 >index 00000000000..ba545f2af8e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_mat4.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat4.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_mat4.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_mat4.vert.html >new file mode 100644 >index 00000000000..0d9dd7f79b0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_mat4.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for divide_int_mat4.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat4.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat4.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat4.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_vec2.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_vec2.vert-expected.txt >new file mode 100644 >index 00000000000..98592f7f877 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_vec2.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec2.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_vec2.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_vec2.vert.html >new file mode 100644 >index 00000000000..30e9d0c42a2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_vec2.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for divide_int_vec2.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec2.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec2.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec2.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_vec3.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_vec3.vert-expected.txt >new file mode 100644 >index 00000000000..abe1fb26b9a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_vec3.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec3.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_vec3.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_vec3.vert.html >new file mode 100644 >index 00000000000..40e3bbdfd06 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_vec3.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for divide_int_vec3.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec3.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec3.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec3.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_vec4.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_vec4.vert-expected.txt >new file mode 100644 >index 00000000000..3ccbf3f8fcf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_vec4.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec4.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_vec4.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_vec4.vert.html >new file mode 100644 >index 00000000000..02a1f9e3317 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_int_vec4.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for divide_int_vec4.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec4.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec4.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec4.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_ivec2_vec2.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_ivec2_vec2.vert-expected.txt >new file mode 100644 >index 00000000000..5de4ad274c1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_ivec2_vec2.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/divide_ivec2_vec2.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_ivec2_vec2.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_ivec2_vec2.vert.html >new file mode 100644 >index 00000000000..f110498a111 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_ivec2_vec2.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for divide_ivec2_vec2.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_ivec2_vec2.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/divide_ivec2_vec2.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_ivec2_vec2.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_ivec3_vec3.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_ivec3_vec3.vert-expected.txt >new file mode 100644 >index 00000000000..3d75093f83c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_ivec3_vec3.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/divide_ivec3_vec3.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_ivec3_vec3.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_ivec3_vec3.vert.html >new file mode 100644 >index 00000000000..6b6676b737a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_ivec3_vec3.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for divide_ivec3_vec3.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_ivec3_vec3.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/divide_ivec3_vec3.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_ivec3_vec3.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_ivec4_vec4.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_ivec4_vec4.vert-expected.txt >new file mode 100644 >index 00000000000..e84795eb73c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_ivec4_vec4.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/divide_ivec4_vec4.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_ivec4_vec4.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_ivec4_vec4.vert.html >new file mode 100644 >index 00000000000..594e5f457f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/divide_ivec4_vec4.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for divide_ivec4_vec4.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_ivec4_vec4.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/divide_ivec4_vec4.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/divide_ivec4_vec4.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_int_float.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_int_float.vert-expected.txt >new file mode 100644 >index 00000000000..af932ee96c1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_int_float.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/equal_int_float.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_int_float.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_int_float.vert.html >new file mode 100644 >index 00000000000..dd355c41511 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_int_float.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for equal_int_float.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/equal_int_float.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/equal_int_float.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/equal_int_float.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_ivec2_vec2.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_ivec2_vec2.vert-expected.txt >new file mode 100644 >index 00000000000..a66ed94f8a1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_ivec2_vec2.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/equal_ivec2_vec2.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_ivec2_vec2.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_ivec2_vec2.vert.html >new file mode 100644 >index 00000000000..82cdf8afc5c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_ivec2_vec2.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for equal_ivec2_vec2.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/equal_ivec2_vec2.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/equal_ivec2_vec2.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/equal_ivec2_vec2.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_ivec3_vec3.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_ivec3_vec3.vert-expected.txt >new file mode 100644 >index 00000000000..b25832b8a1f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_ivec3_vec3.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/equal_ivec3_vec3.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_ivec3_vec3.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_ivec3_vec3.vert.html >new file mode 100644 >index 00000000000..60bc2f7c971 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_ivec3_vec3.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for equal_ivec3_vec3.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/equal_ivec3_vec3.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/equal_ivec3_vec3.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/equal_ivec3_vec3.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_ivec4_vec4.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_ivec4_vec4.vert-expected.txt >new file mode 100644 >index 00000000000..e663e7c8f7e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_ivec4_vec4.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/equal_ivec4_vec4.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_ivec4_vec4.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_ivec4_vec4.vert.html >new file mode 100644 >index 00000000000..e8bde5b2ea9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/equal_ivec4_vec4.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for equal_ivec4_vec4.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/equal_ivec4_vec4.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/equal_ivec4_vec4.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/equal_ivec4_vec4.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_int_float.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_int_float.vert-expected.txt >new file mode 100644 >index 00000000000..92743f6c565 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_int_float.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/function_int_float.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_int_float.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_int_float.vert.html >new file mode 100644 >index 00000000000..0148e650423 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_int_float.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for function_int_float.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/function_int_float.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/function_int_float.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/function_int_float.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_ivec2_vec2.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_ivec2_vec2.vert-expected.txt >new file mode 100644 >index 00000000000..a6178227656 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_ivec2_vec2.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/function_ivec2_vec2.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_ivec2_vec2.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_ivec2_vec2.vert.html >new file mode 100644 >index 00000000000..1538edd4df0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_ivec2_vec2.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for function_ivec2_vec2.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/function_ivec2_vec2.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/function_ivec2_vec2.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/function_ivec2_vec2.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_ivec3_vec3.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_ivec3_vec3.vert-expected.txt >new file mode 100644 >index 00000000000..0e0a5e86261 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_ivec3_vec3.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/function_ivec3_vec3.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_ivec3_vec3.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_ivec3_vec3.vert.html >new file mode 100644 >index 00000000000..f0f0d440d46 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_ivec3_vec3.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for function_ivec3_vec3.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/function_ivec3_vec3.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/function_ivec3_vec3.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/function_ivec3_vec3.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_ivec4_vec4.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_ivec4_vec4.vert-expected.txt >new file mode 100644 >index 00000000000..2cd33408196 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_ivec4_vec4.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/function_ivec4_vec4.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_ivec4_vec4.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_ivec4_vec4.vert.html >new file mode 100644 >index 00000000000..752b994fe08 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/function_ivec4_vec4.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for function_ivec4_vec4.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/function_ivec4_vec4.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/function_ivec4_vec4.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/function_ivec4_vec4.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/greater_than.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/greater_than.vert-expected.txt >new file mode 100644 >index 00000000000..bd3374562a1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/greater_than.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/greater_than.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/greater_than.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/greater_than.vert.html >new file mode 100644 >index 00000000000..bab20c6e1f0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/greater_than.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for greater_than.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/greater_than.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/greater_than.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/greater_than.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/greater_than_equal.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/greater_than_equal.vert-expected.txt >new file mode 100644 >index 00000000000..26e1ef9f0f3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/greater_than_equal.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/greater_than_equal.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/greater_than_equal.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/greater_than_equal.vert.html >new file mode 100644 >index 00000000000..d63977b9f09 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/greater_than_equal.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for greater_than_equal.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/greater_than_equal.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/greater_than_equal.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/greater_than_equal.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/less_than.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/less_than.vert-expected.txt >new file mode 100644 >index 00000000000..5426d7aaa89 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/less_than.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/less_than.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/less_than.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/less_than.vert.html >new file mode 100644 >index 00000000000..ba90978dca0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/less_than.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for less_than.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/less_than.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/less_than.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/less_than.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/less_than_equal.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/less_than_equal.vert-expected.txt >new file mode 100644 >index 00000000000..37b9411ae6f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/less_than_equal.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/less_than_equal.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/less_than_equal.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/less_than_equal.vert.html >new file mode 100644 >index 00000000000..e3a70f06512 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/less_than_equal.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for less_than_equal.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/less_than_equal.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/less_than_equal.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/less_than_equal.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_float.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_float.vert-expected.txt >new file mode 100644 >index 00000000000..41eae50c43b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_float.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_float.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_float.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_float.vert.html >new file mode 100644 >index 00000000000..dfa886d8e37 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_float.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multiply_int_float.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_float.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_float.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_float.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_mat2.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_mat2.vert-expected.txt >new file mode 100644 >index 00000000000..5ef689d2db0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_mat2.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat2.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_mat2.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_mat2.vert.html >new file mode 100644 >index 00000000000..3ac8cb89e71 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_mat2.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multiply_int_mat2.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat2.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat2.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat2.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_mat3.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_mat3.vert-expected.txt >new file mode 100644 >index 00000000000..033f75502b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_mat3.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat3.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_mat3.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_mat3.vert.html >new file mode 100644 >index 00000000000..6288c9fb13f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_mat3.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multiply_int_mat3.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat3.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat3.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat3.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_mat4.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_mat4.vert-expected.txt >new file mode 100644 >index 00000000000..49f66b5cf45 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_mat4.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat4.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_mat4.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_mat4.vert.html >new file mode 100644 >index 00000000000..1b47d97ce68 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_mat4.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multiply_int_mat4.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat4.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat4.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat4.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_vec2.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_vec2.vert-expected.txt >new file mode 100644 >index 00000000000..3555bf46f4d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_vec2.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec2.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_vec2.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_vec2.vert.html >new file mode 100644 >index 00000000000..464264fab8d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_vec2.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multiply_int_vec2.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec2.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec2.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec2.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_vec3.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_vec3.vert-expected.txt >new file mode 100644 >index 00000000000..d7d209a0257 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_vec3.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec3.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_vec3.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_vec3.vert.html >new file mode 100644 >index 00000000000..1a21381a837 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_vec3.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multiply_int_vec3.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec3.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec3.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec3.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_vec4.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_vec4.vert-expected.txt >new file mode 100644 >index 00000000000..ebd888114e0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_vec4.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec4.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_vec4.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_vec4.vert.html >new file mode 100644 >index 00000000000..26ab3d4a168 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_int_vec4.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multiply_int_vec4.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec4.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec4.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec4.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_ivec2_vec2.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_ivec2_vec2.vert-expected.txt >new file mode 100644 >index 00000000000..1ec945ea528 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_ivec2_vec2.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html >new file mode 100644 >index 00000000000..c9c018aaaab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multiply_ivec2_vec2.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_ivec3_vec3.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_ivec3_vec3.vert-expected.txt >new file mode 100644 >index 00000000000..d0b385481f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_ivec3_vec3.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html >new file mode 100644 >index 00000000000..feb7f642475 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multiply_ivec3_vec3.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_ivec4_vec4.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_ivec4_vec4.vert-expected.txt >new file mode 100644 >index 00000000000..b76a9686fe2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_ivec4_vec4.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html >new file mode 100644 >index 00000000000..da2385c2625 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multiply_ivec4_vec4.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_int_float.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_int_float.vert-expected.txt >new file mode 100644 >index 00000000000..fedc279686a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_int_float.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/not_equal_int_float.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_int_float.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_int_float.vert.html >new file mode 100644 >index 00000000000..a3a78520d40 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_int_float.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for not_equal_int_float.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/not_equal_int_float.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/not_equal_int_float.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/not_equal_int_float.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_ivec2_vec2.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_ivec2_vec2.vert-expected.txt >new file mode 100644 >index 00000000000..9a07f743c76 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_ivec2_vec2.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html >new file mode 100644 >index 00000000000..2bde20fb5d8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for not_equal_ivec2_vec2.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_ivec3_vec3.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_ivec3_vec3.vert-expected.txt >new file mode 100644 >index 00000000000..61638ec74be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_ivec3_vec3.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html >new file mode 100644 >index 00000000000..97e1e13120c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for not_equal_ivec3_vec3.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_ivec4_vec4.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_ivec4_vec4.vert-expected.txt >new file mode 100644 >index 00000000000..6767ad3fd33 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_ivec4_vec4.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html >new file mode 100644 >index 00000000000..68032c5973f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for not_equal_ivec4_vec4.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_float.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_float.vert-expected.txt >new file mode 100644 >index 00000000000..2d38e2e1a58 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_float.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_float.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_float.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_float.vert.html >new file mode 100644 >index 00000000000..c94976561ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_float.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for subtract_int_float.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_float.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_float.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_float.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_mat2.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_mat2.vert-expected.txt >new file mode 100644 >index 00000000000..00cbc20b81a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_mat2.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat2.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_mat2.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_mat2.vert.html >new file mode 100644 >index 00000000000..0db24051498 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_mat2.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for subtract_int_mat2.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat2.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat2.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat2.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_mat3.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_mat3.vert-expected.txt >new file mode 100644 >index 00000000000..41f0d10af5a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_mat3.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat3.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_mat3.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_mat3.vert.html >new file mode 100644 >index 00000000000..e4b752c8a89 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_mat3.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for subtract_int_mat3.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat3.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat3.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat3.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_mat4.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_mat4.vert-expected.txt >new file mode 100644 >index 00000000000..300353cbe31 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_mat4.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat4.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_mat4.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_mat4.vert.html >new file mode 100644 >index 00000000000..dc0b5858f87 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_mat4.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for subtract_int_mat4.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat4.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat4.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat4.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_vec2.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_vec2.vert-expected.txt >new file mode 100644 >index 00000000000..6ad17a0c356 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_vec2.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec2.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_vec2.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_vec2.vert.html >new file mode 100644 >index 00000000000..49c16c05255 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_vec2.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for subtract_int_vec2.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec2.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec2.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec2.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_vec3.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_vec3.vert-expected.txt >new file mode 100644 >index 00000000000..9fd7adbdefa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_vec3.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec3.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_vec3.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_vec3.vert.html >new file mode 100644 >index 00000000000..ea817b3e890 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_vec3.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for subtract_int_vec3.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec3.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec3.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec3.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_vec4.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_vec4.vert-expected.txt >new file mode 100644 >index 00000000000..7b0b1f01272 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_vec4.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec4.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_vec4.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_vec4.vert.html >new file mode 100644 >index 00000000000..2813237d215 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_int_vec4.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for subtract_int_vec4.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec4.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec4.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec4.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_ivec2_vec2.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_ivec2_vec2.vert-expected.txt >new file mode 100644 >index 00000000000..e364d825419 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_ivec2_vec2.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html >new file mode 100644 >index 00000000000..434493f849f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for subtract_ivec2_vec2.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_ivec3_vec3.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_ivec3_vec3.vert-expected.txt >new file mode 100644 >index 00000000000..c22eff7b9a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_ivec3_vec3.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html >new file mode 100644 >index 00000000000..0c6dbf2ce25 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for subtract_ivec3_vec3.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_ivec4_vec4.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_ivec4_vec4.vert-expected.txt >new file mode 100644 >index 00000000000..99bc57fa42a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_ivec4_vec4.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html >new file mode 100644 >index 00000000000..82d36ebe283 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for subtract_ivec4_vec4.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_int_float.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_int_float.vert-expected.txt >new file mode 100644 >index 00000000000..e079602ca5f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_int_float.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/ternary_int_float.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_int_float.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_int_float.vert.html >new file mode 100644 >index 00000000000..80fffe0a516 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_int_float.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for ternary_int_float.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/ternary_int_float.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/ternary_int_float.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/ternary_int_float.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_ivec2_vec2.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_ivec2_vec2.vert-expected.txt >new file mode 100644 >index 00000000000..d88d8cd709f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_ivec2_vec2.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html >new file mode 100644 >index 00000000000..82be9da6a9e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for ternary_ivec2_vec2.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_ivec3_vec3.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_ivec3_vec3.vert-expected.txt >new file mode 100644 >index 00000000000..b421b6670f9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_ivec3_vec3.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html >new file mode 100644 >index 00000000000..e1687497290 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for ternary_ivec3_vec3.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_ivec4_vec4.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_ivec4_vec4.vert-expected.txt >new file mode 100644 >index 00000000000..9cbc05daf85 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_ivec4_vec4.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html >new file mode 100644 >index 00000000000..97279faf5db >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for ternary_ivec4_vec4.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html">../../../resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/literals/float_literal.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/literals/float_literal.vert-expected.txt >new file mode 100644 >index 00000000000..32814b46838 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/literals/float_literal.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/literals/float_literal.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/literals/float_literal.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/literals/float_literal.vert.html >new file mode 100644 >index 00000000000..f05d83d756d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/literals/float_literal.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for float_literal.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/literals/float_literal.vert.html">../../../resources/webgl_test_files/conformance/glsl/literals/float_literal.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/literals/float_literal.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/literals/literal_precision-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/literals/literal_precision-expected.txt >new file mode 100644 >index 00000000000..c82094417b9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/literals/literal_precision-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/literals/literal_precision.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/literals/literal_precision.html b/LayoutTests/webgl/2.0.0/conformance/glsl/literals/literal_precision.html >new file mode 100644 >index 00000000000..0dd51bd8a6c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/literals/literal_precision.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for literal_precision.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/literals/literal_precision.html">../../../resources/webgl_test_files/conformance/glsl/literals/literal_precision.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/literals/literal_precision.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/literals/overflow_leak.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/literals/overflow_leak.vert-expected.txt >new file mode 100644 >index 00000000000..37fa60ac349 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/literals/overflow_leak.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/literals/overflow_leak.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/literals/overflow_leak.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/literals/overflow_leak.vert.html >new file mode 100644 >index 00000000000..0295b5c402c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/literals/overflow_leak.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for overflow_leak.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/literals/overflow_leak.vert.html">../../../resources/webgl_test_files/conformance/glsl/literals/overflow_leak.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/literals/overflow_leak.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/matrices/glsl-mat3-construction-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/matrices/glsl-mat3-construction-expected.txt >new file mode 100644 >index 00000000000..ce9e6eeac7c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/matrices/glsl-mat3-construction-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/matrices/glsl-mat3-construction.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/matrices/glsl-mat3-construction.html b/LayoutTests/webgl/2.0.0/conformance/glsl/matrices/glsl-mat3-construction.html >new file mode 100644 >index 00000000000..1040949156d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/matrices/glsl-mat3-construction.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-mat3-construction.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/matrices/glsl-mat3-construction.html">../../../resources/webgl_test_files/conformance/glsl/matrices/glsl-mat3-construction.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/matrices/glsl-mat3-construction.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/matrices/glsl-mat4-to-mat3-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/matrices/glsl-mat4-to-mat3-expected.txt >new file mode 100644 >index 00000000000..cc30ad619bf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/matrices/glsl-mat4-to-mat3-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/matrices/glsl-mat4-to-mat3.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/matrices/glsl-mat4-to-mat3.html b/LayoutTests/webgl/2.0.0/conformance/glsl/matrices/glsl-mat4-to-mat3.html >new file mode 100644 >index 00000000000..7be502e1d9e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/matrices/glsl-mat4-to-mat3.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-mat4-to-mat3.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/matrices/glsl-mat4-to-mat3.html">../../../resources/webgl_test_files/conformance/glsl/matrices/glsl-mat4-to-mat3.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/matrices/glsl-mat4-to-mat3.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/matrices/matrix-compound-multiply-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/matrices/matrix-compound-multiply-expected.txt >new file mode 100644 >index 00000000000..002b203442e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/matrices/matrix-compound-multiply-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/matrices/matrix-compound-multiply.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/matrices/matrix-compound-multiply.html b/LayoutTests/webgl/2.0.0/conformance/glsl/matrices/matrix-compound-multiply.html >new file mode 100644 >index 00000000000..cc50b93921f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/matrices/matrix-compound-multiply.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for matrix-compound-multiply.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/matrices/matrix-compound-multiply.html">../../../resources/webgl_test_files/conformance/glsl/matrices/matrix-compound-multiply.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/matrices/matrix-compound-multiply.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/attrib-location-length-limits-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/attrib-location-length-limits-expected.txt >new file mode 100644 >index 00000000000..27ea5023373 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/attrib-location-length-limits-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/attrib-location-length-limits.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/attrib-location-length-limits.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/attrib-location-length-limits.html >new file mode 100644 >index 00000000000..eb30352a379 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/attrib-location-length-limits.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for attrib-location-length-limits.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/attrib-location-length-limits.html">../../../resources/webgl_test_files/conformance/glsl/misc/attrib-location-length-limits.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/attrib-location-length-limits.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/boolean_precision-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/boolean_precision-expected.txt >new file mode 100644 >index 00000000000..035d164c4a9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/boolean_precision-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/boolean_precision.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/boolean_precision.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/boolean_precision.html >new file mode 100644 >index 00000000000..2173945ed05 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/boolean_precision.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for boolean_precision.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/boolean_precision.html">../../../resources/webgl_test_files/conformance/glsl/misc/boolean_precision.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/boolean_precision.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/const-variable-initialization-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/const-variable-initialization-expected.txt >new file mode 100644 >index 00000000000..e1426ab3fb1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/const-variable-initialization-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/const-variable-initialization.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/const-variable-initialization.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/const-variable-initialization.html >new file mode 100644 >index 00000000000..a6cd1d6a08e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/const-variable-initialization.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for const-variable-initialization.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/const-variable-initialization.html">../../../resources/webgl_test_files/conformance/glsl/misc/const-variable-initialization.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/const-variable-initialization.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/embedded-struct-definitions-forbidden-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/embedded-struct-definitions-forbidden-expected.txt >new file mode 100644 >index 00000000000..65041717079 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/embedded-struct-definitions-forbidden-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/embedded-struct-definitions-forbidden.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/embedded-struct-definitions-forbidden.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/embedded-struct-definitions-forbidden.html >new file mode 100644 >index 00000000000..b48f4e2322e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/embedded-struct-definitions-forbidden.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for embedded-struct-definitions-forbidden.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/embedded-struct-definitions-forbidden.html">../../../resources/webgl_test_files/conformance/glsl/misc/embedded-struct-definitions-forbidden.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/embedded-struct-definitions-forbidden.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/empty-declaration-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/empty-declaration-expected.txt >new file mode 100644 >index 00000000000..3ce622f6130 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/empty-declaration-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/empty-declaration.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/empty-declaration.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/empty-declaration.html >new file mode 100644 >index 00000000000..22d9d3fbae1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/empty-declaration.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for empty-declaration.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/empty-declaration.html">../../../resources/webgl_test_files/conformance/glsl/misc/empty-declaration.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/empty-declaration.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/empty_main.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/empty_main.vert-expected.txt >new file mode 100644 >index 00000000000..f7b25213482 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/empty_main.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/empty_main.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/empty_main.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/empty_main.vert.html >new file mode 100644 >index 00000000000..9d551f075bd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/empty_main.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for empty_main.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/empty_main.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/empty_main.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/empty_main.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/expression-list-in-declarator-initializer-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/expression-list-in-declarator-initializer-expected.txt >new file mode 100644 >index 00000000000..b4e40ca832e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/expression-list-in-declarator-initializer-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/expression-list-in-declarator-initializer.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/expression-list-in-declarator-initializer.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/expression-list-in-declarator-initializer.html >new file mode 100644 >index 00000000000..d207254e84e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/expression-list-in-declarator-initializer.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for expression-list-in-declarator-initializer.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/expression-list-in-declarator-initializer.html">../../../resources/webgl_test_files/conformance/glsl/misc/expression-list-in-declarator-initializer.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/expression-list-in-declarator-initializer.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/gl_position_unset.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/gl_position_unset.vert-expected.txt >new file mode 100644 >index 00000000000..2c16d063df8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/gl_position_unset.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/gl_position_unset.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/gl_position_unset.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/gl_position_unset.vert.html >new file mode 100644 >index 00000000000..ebc97fb7277 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/gl_position_unset.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl_position_unset.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/gl_position_unset.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/gl_position_unset.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/gl_position_unset.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/global-variable-init-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/global-variable-init-expected.txt >new file mode 100644 >index 00000000000..45bcbacbf57 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/global-variable-init-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/global-variable-init.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/global-variable-init.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/global-variable-init.html >new file mode 100644 >index 00000000000..c2e704b3584 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/global-variable-init.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for global-variable-init.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/global-variable-init.html">../../../resources/webgl_test_files/conformance/glsl/misc/global-variable-init.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/global-variable-init.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/glsl-function-nodes-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/glsl-function-nodes-expected.txt >new file mode 100644 >index 00000000000..90792dd9ac5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/glsl-function-nodes-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/glsl-function-nodes.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/glsl-function-nodes.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/glsl-function-nodes.html >new file mode 100644 >index 00000000000..7c394ee0660 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/glsl-function-nodes.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-nodes.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/glsl-function-nodes.html">../../../resources/webgl_test_files/conformance/glsl/misc/glsl-function-nodes.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/glsl-function-nodes.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/glsl-long-variable-names-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/glsl-long-variable-names-expected.txt >new file mode 100644 >index 00000000000..728b0c11928 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/glsl-long-variable-names-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/glsl-long-variable-names.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/glsl-long-variable-names.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/glsl-long-variable-names.html >new file mode 100644 >index 00000000000..5018c007afb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/glsl-long-variable-names.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-long-variable-names.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/glsl-long-variable-names.html">../../../resources/webgl_test_files/conformance/glsl/misc/glsl-long-variable-names.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/glsl-long-variable-names.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/glsl-vertex-branch-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/glsl-vertex-branch-expected.txt >new file mode 100644 >index 00000000000..cfae589d82d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/glsl-vertex-branch-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/glsl-vertex-branch.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/glsl-vertex-branch.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/glsl-vertex-branch.html >new file mode 100644 >index 00000000000..76b9efa4a3f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/glsl-vertex-branch.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-vertex-branch.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/glsl-vertex-branch.html">../../../resources/webgl_test_files/conformance/glsl/misc/glsl-vertex-branch.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/glsl-vertex-branch.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/large-loop-compile-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/large-loop-compile-expected.txt >new file mode 100644 >index 00000000000..62d8c5fb99b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/large-loop-compile-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/large-loop-compile.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/large-loop-compile.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/large-loop-compile.html >new file mode 100644 >index 00000000000..2245a205068 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/large-loop-compile.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for large-loop-compile.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/large-loop-compile.html">../../../resources/webgl_test_files/conformance/glsl/misc/large-loop-compile.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/large-loop-compile.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/non-ascii-comments.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/non-ascii-comments.vert-expected.txt >new file mode 100644 >index 00000000000..4d5d212ba42 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/non-ascii-comments.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/non-ascii-comments.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/non-ascii-comments.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/non-ascii-comments.vert.html >new file mode 100644 >index 00000000000..2e06580c265 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/non-ascii-comments.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for non-ascii-comments.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/non-ascii-comments.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/non-ascii-comments.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/non-ascii-comments.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/non-ascii.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/non-ascii.vert-expected.txt >new file mode 100644 >index 00000000000..0b20246331a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/non-ascii.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/non-ascii.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/non-ascii.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/non-ascii.vert.html >new file mode 100644 >index 00000000000..108d6bcb58f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/non-ascii.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for non-ascii.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/non-ascii.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/non-ascii.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/non-ascii.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/re-compile-re-link-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/re-compile-re-link-expected.txt >new file mode 100644 >index 00000000000..547f938668a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/re-compile-re-link-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/re-compile-re-link.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/re-compile-re-link.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/re-compile-re-link.html >new file mode 100644 >index 00000000000..13c80bd5339 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/re-compile-re-link.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for re-compile-re-link.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/re-compile-re-link.html">../../../resources/webgl_test_files/conformance/glsl/misc/re-compile-re-link.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/re-compile-re-link.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/sequence-operator-returns-constant-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/sequence-operator-returns-constant-expected.txt >new file mode 100644 >index 00000000000..d52b2ed15e2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/sequence-operator-returns-constant-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/sequence-operator-returns-constant.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/sequence-operator-returns-constant.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/sequence-operator-returns-constant.html >new file mode 100644 >index 00000000000..6c1e8ee1e9e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/sequence-operator-returns-constant.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sequence-operator-returns-constant.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/sequence-operator-returns-constant.html">../../../resources/webgl_test_files/conformance/glsl/misc/sequence-operator-returns-constant.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/sequence-operator-returns-constant.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-precision-format-obeyed-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-precision-format-obeyed-expected.txt >new file mode 100644 >index 00000000000..1a135fc5f69 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-precision-format-obeyed-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-precision-format-obeyed.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-precision-format-obeyed.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-precision-format-obeyed.html >new file mode 100644 >index 00000000000..7f3ecffd9db >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-precision-format-obeyed.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-precision-format-obeyed.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-precision-format-obeyed.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-precision-format-obeyed.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-precision-format-obeyed.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-struct-scope-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-struct-scope-expected.txt >new file mode 100644 >index 00000000000..65dad03c240 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-struct-scope-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-struct-scope.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-struct-scope.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-struct-scope.html >new file mode 100644 >index 00000000000..cf26730f3a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-struct-scope.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-struct-scope.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-struct-scope.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-struct-scope.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-struct-scope.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-uniform-packing-restrictions-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-uniform-packing-restrictions-expected.txt >new file mode 100644 >index 00000000000..be0e8e0edff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-uniform-packing-restrictions-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-uniform-packing-restrictions.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-uniform-packing-restrictions.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-uniform-packing-restrictions.html >new file mode 100644 >index 00000000000..0bdcb8eb58e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-uniform-packing-restrictions.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-uniform-packing-restrictions.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-uniform-packing-restrictions.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-uniform-packing-restrictions.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-uniform-packing-restrictions.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-varying-packing-restrictions-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-varying-packing-restrictions-expected.txt >new file mode 100644 >index 00000000000..d74339e6c59 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-varying-packing-restrictions-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-varying-packing-restrictions.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-varying-packing-restrictions.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-varying-packing-restrictions.html >new file mode 100644 >index 00000000000..ea36b8da272 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-varying-packing-restrictions.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-varying-packing-restrictions.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-varying-packing-restrictions.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-varying-packing-restrictions.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-varying-packing-restrictions.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-256-character-define-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-256-character-define-expected.txt >new file mode 100644 >index 00000000000..c443768f135 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-256-character-define-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-define.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-256-character-define.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-256-character-define.html >new file mode 100644 >index 00000000000..9657b6e6701 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-256-character-define.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-256-character-define.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-define.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-define.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-define.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-256-character-identifier.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-256-character-identifier.frag-expected.txt >new file mode 100644 >index 00000000000..b33a5511f64 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-256-character-identifier.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-identifier.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-256-character-identifier.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-256-character-identifier.frag.html >new file mode 100644 >index 00000000000..541c522b1c6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-256-character-identifier.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-256-character-identifier.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-identifier.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-identifier.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-identifier.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-257-character-define-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-257-character-define-expected.txt >new file mode 100644 >index 00000000000..4f04a0233a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-257-character-define-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-define.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-257-character-define.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-257-character-define.html >new file mode 100644 >index 00000000000..cbb60c2a27c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-257-character-define.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-257-character-define.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-define.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-define.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-define.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-257-character-identifier.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-257-character-identifier.frag-expected.txt >new file mode 100644 >index 00000000000..3caa0ffdf16 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-257-character-identifier.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-identifier.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-257-character-identifier.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-257-character-identifier.frag.html >new file mode 100644 >index 00000000000..c9be9b88fe8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-257-character-identifier.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-257-character-identifier.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-identifier.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-identifier.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-identifier.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-_webgl-identifier.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-_webgl-identifier.vert-expected.txt >new file mode 100644 >index 00000000000..7270f7d62a4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-_webgl-identifier.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html >new file mode 100644 >index 00000000000..2fcc915be0d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-_webgl-identifier.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-arbitrary-indexing.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-arbitrary-indexing.frag-expected.txt >new file mode 100644 >index 00000000000..216530c7de6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-arbitrary-indexing.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html >new file mode 100644 >index 00000000000..6c397a63a19 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-arbitrary-indexing.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-arbitrary-indexing.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-arbitrary-indexing.vert-expected.txt >new file mode 100644 >index 00000000000..44f487cae1c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-arbitrary-indexing.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html >new file mode 100644 >index 00000000000..ef7adda7233 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-arbitrary-indexing.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays-expected.txt >new file mode 100644 >index 00000000000..7c88c29aacb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html >new file mode 100644 >index 00000000000..a7eb7ee92be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-array-of-structs-containing-arrays.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-array-of-structs-uniform-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-array-of-structs-uniform-expected.txt >new file mode 100644 >index 00000000000..aef6c8f46f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-array-of-structs-uniform-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-uniform.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-array-of-structs-uniform.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-array-of-structs-uniform.html >new file mode 100644 >index 00000000000..e4cbc2dd4fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-array-of-structs-uniform.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-array-of-structs-uniform.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-uniform.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-uniform.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-uniform.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-attrib-array.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-attrib-array.vert-expected.txt >new file mode 100644 >index 00000000000..8eabae1ae70 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-attrib-array.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-array.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-attrib-array.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-attrib-array.vert.html >new file mode 100644 >index 00000000000..0dea8d58f2c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-attrib-array.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-attrib-array.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-array.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-array.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-array.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-attrib-struct.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-attrib-struct.vert-expected.txt >new file mode 100644 >index 00000000000..347621223d2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-attrib-struct.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-struct.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-attrib-struct.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-attrib-struct.vert.html >new file mode 100644 >index 00000000000..d9643f6bb8e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-attrib-struct.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-attrib-struct.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-struct.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-struct.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-struct.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-clipvertex.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-clipvertex.vert-expected.txt >new file mode 100644 >index 00000000000..d7f3a4f956a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-clipvertex.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-clipvertex.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-clipvertex.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-clipvertex.vert.html >new file mode 100644 >index 00000000000..4ca2609c457 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-clipvertex.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-clipvertex.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-clipvertex.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-clipvertex.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-clipvertex.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-comma-assignment-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-comma-assignment-expected.txt >new file mode 100644 >index 00000000000..e3e47e65d0b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-comma-assignment-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-assignment.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-comma-assignment.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-comma-assignment.html >new file mode 100644 >index 00000000000..71c9ff62984 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-comma-assignment.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-comma-assignment.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-assignment.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-assignment.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-assignment.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-comma-conditional-assignment-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-comma-conditional-assignment-expected.txt >new file mode 100644 >index 00000000000..8bbcbd25125 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-comma-conditional-assignment-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-conditional-assignment.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-comma-conditional-assignment.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-comma-conditional-assignment.html >new file mode 100644 >index 00000000000..40556a1f007 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-comma-conditional-assignment.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-comma-conditional-assignment.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-conditional-assignment.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-conditional-assignment.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-conditional-assignment.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-comma-separated-variable-declarations-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-comma-separated-variable-declarations-expected.txt >new file mode 100644 >index 00000000000..ea2794810f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-comma-separated-variable-declarations-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-separated-variable-declarations.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-comma-separated-variable-declarations.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-comma-separated-variable-declarations.html >new file mode 100644 >index 00000000000..360d86e882e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-comma-separated-variable-declarations.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-comma-separated-variable-declarations.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-separated-variable-declarations.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-separated-variable-declarations.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-separated-variable-declarations.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-conditional-scoping-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-conditional-scoping-expected.txt >new file mode 100644 >index 00000000000..0ee7b4c153c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-conditional-scoping-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-conditional-scoping-negative-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-conditional-scoping-negative-expected.txt >new file mode 100644 >index 00000000000..6ab5e3a5cb1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-conditional-scoping-negative-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping-negative.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-conditional-scoping-negative.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-conditional-scoping-negative.html >new file mode 100644 >index 00000000000..4e72cb99ba9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-conditional-scoping-negative.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-conditional-scoping-negative.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping-negative.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping-negative.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping-negative.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-conditional-scoping.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-conditional-scoping.html >new file mode 100644 >index 00000000000..3e972d8fb10 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-conditional-scoping.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-conditional-scoping.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-default-precision.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-default-precision.frag-expected.txt >new file mode 100644 >index 00000000000..d1c19e81d0a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-default-precision.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-default-precision.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-default-precision.frag.html >new file mode 100644 >index 00000000000..9dad97af052 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-default-precision.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-default-precision.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-default-precision.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-default-precision.vert-expected.txt >new file mode 100644 >index 00000000000..f63b4019a0b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-default-precision.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-default-precision.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-default-precision.vert.html >new file mode 100644 >index 00000000000..ff99c5d2db2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-default-precision.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-default-precision.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-define-line-continuation.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-define-line-continuation.frag-expected.txt >new file mode 100644 >index 00000000000..790ea310f9d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-define-line-continuation.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-define-line-continuation.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-define-line-continuation.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-define-line-continuation.frag.html >new file mode 100644 >index 00000000000..d471c7ffb72 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-define-line-continuation.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-define-line-continuation.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-define-line-continuation.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-define-line-continuation.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-define-line-continuation.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-dfdx-no-ext.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-dfdx-no-ext.frag-expected.txt >new file mode 100644 >index 00000000000..6454b821a6f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-dfdx-no-ext.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html >new file mode 100644 >index 00000000000..6d7e6db1bf8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-dfdx-no-ext.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-dfdx.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-dfdx.frag-expected.txt >new file mode 100644 >index 00000000000..465cb16b192 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-dfdx.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-dfdx.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-dfdx.frag.html >new file mode 100644 >index 00000000000..8335c8ae8f0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-dfdx.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-dfdx.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-do-loop-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-do-loop-expected.txt >new file mode 100644 >index 00000000000..94c020c0242 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-do-loop-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-do-loop.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-do-loop.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-do-loop.html >new file mode 100644 >index 00000000000..68faea0ca73 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-do-loop.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-do-loop.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-do-loop.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-do-loop.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-do-loop.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-error-directive-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-error-directive-expected.txt >new file mode 100644 >index 00000000000..19a60c8dc8e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-error-directive-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-error-directive.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-error-directive.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-error-directive.html >new file mode 100644 >index 00000000000..6c8b307e7d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-error-directive.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-error-directive.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-error-directive.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-error-directive.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-error-directive.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-explicit-int-cast.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-explicit-int-cast.vert-expected.txt >new file mode 100644 >index 00000000000..bdc74409255 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-explicit-int-cast.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html >new file mode 100644 >index 00000000000..51421241873 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-explicit-int-cast.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-float-return-value.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-float-return-value.frag-expected.txt >new file mode 100644 >index 00000000000..ae02b98ccc2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-float-return-value.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-float-return-value.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-float-return-value.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-float-return-value.frag.html >new file mode 100644 >index 00000000000..8ecb96cfcb3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-float-return-value.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-float-return-value.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-float-return-value.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-float-return-value.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-float-return-value.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-for-loop-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-for-loop-expected.txt >new file mode 100644 >index 00000000000..b2929fb7b66 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-for-loop-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-for-loop.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-for-loop.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-for-loop.html >new file mode 100644 >index 00000000000..3bf457f9300 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-for-loop.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-for-loop.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-for-loop.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-for-loop.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-for-loop.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-for-scoping-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-for-scoping-expected.txt >new file mode 100644 >index 00000000000..e19226c073a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-for-scoping-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-for-scoping.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-for-scoping.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-for-scoping.html >new file mode 100644 >index 00000000000..b786af48371 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-for-scoping.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-for-scoping.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-for-scoping.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-for-scoping.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-for-scoping.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-frag-depth.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-frag-depth.frag-expected.txt >new file mode 100644 >index 00000000000..5185d367413 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-frag-depth.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-frag-depth.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-frag-depth.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-frag-depth.frag.html >new file mode 100644 >index 00000000000..48b4c412894 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-frag-depth.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-frag-depth.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-frag-depth.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-frag-depth.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-frag-depth.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-function-recursion.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-function-recursion.frag-expected.txt >new file mode 100644 >index 00000000000..5e34faa20ef >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-function-recursion.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-function-recursion.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-function-recursion.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-function-recursion.frag.html >new file mode 100644 >index 00000000000..dc168df3720 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-function-recursion.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-function-recursion.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-function-recursion.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-function-recursion.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-function-recursion.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-function-scoped-struct-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-function-scoped-struct-expected.txt >new file mode 100644 >index 00000000000..29ea892bdd4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-function-scoped-struct-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-function-scoped-struct.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-function-scoped-struct.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-function-scoped-struct.html >new file mode 100644 >index 00000000000..61c7cfeb103 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-function-scoped-struct.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-function-scoped-struct.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-function-scoped-struct.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-function-scoped-struct.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-function-scoped-struct.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-functional-scoping-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-functional-scoping-expected.txt >new file mode 100644 >index 00000000000..558aff33676 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-functional-scoping-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-functional-scoping.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-functional-scoping.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-functional-scoping.html >new file mode 100644 >index 00000000000..575f48dc117 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-functional-scoping.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-functional-scoping.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-functional-scoping.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-functional-scoping.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-functional-scoping.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-glcolor.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-glcolor.vert-expected.txt >new file mode 100644 >index 00000000000..a1cb0f0a1ad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-glcolor.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-glcolor.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-glcolor.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-glcolor.vert.html >new file mode 100644 >index 00000000000..3e96221037f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-glcolor.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-glcolor.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-glcolor.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-glcolor.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-glcolor.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-gles-1.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-gles-1.frag-expected.txt >new file mode 100644 >index 00000000000..1815384048e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-gles-1.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-1.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-gles-1.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-gles-1.frag.html >new file mode 100644 >index 00000000000..42d5da0244b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-gles-1.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-gles-1.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-1.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-1.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-1.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-gles-symbol.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-gles-symbol.frag-expected.txt >new file mode 100644 >index 00000000000..131690ab029 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-gles-symbol.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-symbol.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-gles-symbol.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-gles-symbol.frag.html >new file mode 100644 >index 00000000000..82a45d2e2b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-gles-symbol.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-gles-symbol.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-symbol.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-symbol.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-symbol.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-global-variable-precision-mismatch-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-global-variable-precision-mismatch-expected.txt >new file mode 100644 >index 00000000000..63d13d59c85 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-global-variable-precision-mismatch-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-global-variable-precision-mismatch.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-global-variable-precision-mismatch.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-global-variable-precision-mismatch.html >new file mode 100644 >index 00000000000..07e187bc76a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-global-variable-precision-mismatch.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-global-variable-precision-mismatch.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-global-variable-precision-mismatch.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-global-variable-precision-mismatch.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-global-variable-precision-mismatch.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-glprojectionmatrix.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-glprojectionmatrix.vert-expected.txt >new file mode 100644 >index 00000000000..4928dbae108 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-glprojectionmatrix.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html >new file mode 100644 >index 00000000000..6b7e4383d95 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-glprojectionmatrix.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-hex-int-constant-macro-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-hex-int-constant-macro-expected.txt >new file mode 100644 >index 00000000000..689b167549a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-hex-int-constant-macro-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-hex-int-constant-macro.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-hex-int-constant-macro.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-hex-int-constant-macro.html >new file mode 100644 >index 00000000000..be707e9b399 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-hex-int-constant-macro.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-hex-int-constant-macro.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-hex-int-constant-macro.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-hex-int-constant-macro.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-hex-int-constant-macro.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert-expected.txt >new file mode 100644 >index 00000000000..18b8ffba8f5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html >new file mode 100644 >index 00000000000..f342981b59f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-implicit-vec3-to-vec4-cast.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-include.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-include.vert-expected.txt >new file mode 100644 >index 00000000000..8f9e976e77b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-include.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-include.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-include.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-include.vert.html >new file mode 100644 >index 00000000000..2fc815ec041 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-include.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-include.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-include.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-include.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-include.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-int-return-value.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-int-return-value.frag-expected.txt >new file mode 100644 >index 00000000000..060410155c5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-int-return-value.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-int-return-value.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-int-return-value.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-int-return-value.frag.html >new file mode 100644 >index 00000000000..94214f0aedb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-int-return-value.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-int-return-value.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-int-return-value.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-int-return-value.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-int-return-value.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-invalid-identifier.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-invalid-identifier.frag-expected.txt >new file mode 100644 >index 00000000000..309148586c4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-invalid-identifier.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-invalid-identifier.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-invalid-identifier.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-invalid-identifier.frag.html >new file mode 100644 >index 00000000000..eb07233c58c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-invalid-identifier.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-invalid-identifier.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-invalid-identifier.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-invalid-identifier.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-invalid-identifier.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-ivec2-return-value.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-ivec2-return-value.frag-expected.txt >new file mode 100644 >index 00000000000..5652947be78 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-ivec2-return-value.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html >new file mode 100644 >index 00000000000..0b3a64c99a0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-ivec2-return-value.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-ivec3-return-value.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-ivec3-return-value.frag-expected.txt >new file mode 100644 >index 00000000000..f6ac92897fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-ivec3-return-value.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html >new file mode 100644 >index 00000000000..07220650f73 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-ivec3-return-value.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-ivec4-return-value.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-ivec4-return-value.frag-expected.txt >new file mode 100644 >index 00000000000..61859254d98 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-ivec4-return-value.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html >new file mode 100644 >index 00000000000..6ede5b74f8a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-ivec4-return-value.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-limited-indexing.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-limited-indexing.frag-expected.txt >new file mode 100644 >index 00000000000..919e9c0c538 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-limited-indexing.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-limited-indexing.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-limited-indexing.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-limited-indexing.frag.html >new file mode 100644 >index 00000000000..c58e0369561 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-limited-indexing.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-limited-indexing.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-limited-indexing.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-limited-indexing.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-limited-indexing.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-long-line-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-long-line-expected.txt >new file mode 100644 >index 00000000000..8b06fdf8984 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-long-line-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-long-line.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-long-line.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-long-line.html >new file mode 100644 >index 00000000000..a5ef2fffee5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-long-line.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-long-line.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-long-line.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-long-line.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-long-line.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-non-ascii-error.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-non-ascii-error.frag-expected.txt >new file mode 100644 >index 00000000000..31ccac321e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-non-ascii-error.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-non-ascii-error.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-non-ascii-error.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-non-ascii-error.frag.html >new file mode 100644 >index 00000000000..50897b7e59e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-non-ascii-error.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-non-ascii-error.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-non-ascii-error.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-non-ascii-error.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-non-ascii-error.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-non-reserved-words-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-non-reserved-words-expected.txt >new file mode 100644 >index 00000000000..7e20c4b2423 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-non-reserved-words-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-non-reserved-words.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-non-reserved-words.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-non-reserved-words.html >new file mode 100644 >index 00000000000..30e6b28c28f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-non-reserved-words.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-non-reserved-words.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-non-reserved-words.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-non-reserved-words.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-non-reserved-words.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-precision.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-precision.frag-expected.txt >new file mode 100644 >index 00000000000..570f4f22ac9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-precision.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-precision.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-precision.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-precision.frag.html >new file mode 100644 >index 00000000000..012fdd0f2cd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-precision.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-precision.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-precision.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-precision.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-precision.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-preprocessor-whitespace-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-preprocessor-whitespace-expected.txt >new file mode 100644 >index 00000000000..ce910698bb4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-preprocessor-whitespace-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-preprocessor-whitespace.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-preprocessor-whitespace.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-preprocessor-whitespace.html >new file mode 100644 >index 00000000000..a5c4806ab64 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-preprocessor-whitespace.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-preprocessor-whitespace.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-preprocessor-whitespace.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-preprocessor-whitespace.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-preprocessor-whitespace.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-quoted-error.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-quoted-error.frag-expected.txt >new file mode 100644 >index 00000000000..fd7a2886c8b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-quoted-error.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-quoted-error.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-quoted-error.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-quoted-error.frag.html >new file mode 100644 >index 00000000000..1afb6f11238 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-quoted-error.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-quoted-error.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-quoted-error.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-quoted-error.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-quoted-error.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-reserved-words-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-reserved-words-expected.txt >new file mode 100644 >index 00000000000..1663fc7e803 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-reserved-words-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-reserved-words.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-reserved-words.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-reserved-words.html >new file mode 100644 >index 00000000000..ce6028a13f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-reserved-words.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-reserved-words.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-reserved-words.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-reserved-words.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-reserved-words.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-short-circuiting-operators-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-short-circuiting-operators-expected.txt >new file mode 100644 >index 00000000000..4fa7cb6a140 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-short-circuiting-operators-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-short-circuiting-operators.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-short-circuiting-operators.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-short-circuiting-operators.html >new file mode 100644 >index 00000000000..fe4ac2cd5ac >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-short-circuiting-operators.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-short-circuiting-operators.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-short-circuiting-operators.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-short-circuiting-operators.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-short-circuiting-operators.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-similar-uniform-array-names-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-similar-uniform-array-names-expected.txt >new file mode 100644 >index 00000000000..4c733a84a2c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-similar-uniform-array-names-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-similar-uniform-array-names.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-similar-uniform-array-names.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-similar-uniform-array-names.html >new file mode 100644 >index 00000000000..caba19940aa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-similar-uniform-array-names.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-similar-uniform-array-names.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-similar-uniform-array-names.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-similar-uniform-array-names.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-similar-uniform-array-names.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-too-many-uniforms-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-too-many-uniforms-expected.txt >new file mode 100644 >index 00000000000..bf19cc68d25 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-too-many-uniforms-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-too-many-uniforms.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-too-many-uniforms.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-too-many-uniforms.html >new file mode 100644 >index 00000000000..65c18f42ecb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-too-many-uniforms.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-too-many-uniforms.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-too-many-uniforms.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-too-many-uniforms.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-too-many-uniforms.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-two-initializer-types-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-two-initializer-types-expected.txt >new file mode 100644 >index 00000000000..5f2785ddbb7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-two-initializer-types-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-two-initializer-types.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-two-initializer-types.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-two-initializer-types.html >new file mode 100644 >index 00000000000..54bbd1cb958 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-two-initializer-types.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-two-initializer-types.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-two-initializer-types.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-two-initializer-types.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-two-initializer-types.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag-expected.txt >new file mode 100644 >index 00000000000..d94cf22a30c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html >new file mode 100644 >index 00000000000..7707f9fc04d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-undefined-preprocessor-symbol.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert-expected.txt >new file mode 100644 >index 00000000000..b7447c18d40 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html >new file mode 100644 >index 00000000000..fb2011f8746 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-uniform-in-loop-condition.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec2-return-value.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec2-return-value.frag-expected.txt >new file mode 100644 >index 00000000000..1a34dd929f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec2-return-value.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-vec2-return-value.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec2-return-value.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec2-return-value.frag.html >new file mode 100644 >index 00000000000..95a710d649e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec2-return-value.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-vec2-return-value.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-vec2-return-value.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-vec2-return-value.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-vec2-return-value.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec3-return-value.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec3-return-value.frag-expected.txt >new file mode 100644 >index 00000000000..ac5d866c7d4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec3-return-value.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-vec3-return-value.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec3-return-value.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec3-return-value.frag.html >new file mode 100644 >index 00000000000..f9d659eb95b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec3-return-value.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-vec3-return-value.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-vec3-return-value.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-vec3-return-value.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-vec3-return-value.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec4-return-value.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec4-return-value.frag-expected.txt >new file mode 100644 >index 00000000000..f0f9459932b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec4-return-value.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-return-value.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec4-return-value.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec4-return-value.frag.html >new file mode 100644 >index 00000000000..7edddc8554f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec4-return-value.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-vec4-return-value.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-return-value.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-return-value.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-return-value.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional-expected.txt >new file mode 100644 >index 00000000000..b863e44f3f1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html >new file mode 100644 >index 00000000000..2d7ab768fc2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-vec4-vec3-vec4-conditional.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-100.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-100.frag-expected.txt >new file mode 100644 >index 00000000000..361f3206081 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-100.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-100.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-100.frag.html >new file mode 100644 >index 00000000000..24680bc8091 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-100.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-version-100.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-100.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-100.vert-expected.txt >new file mode 100644 >index 00000000000..eea07c2c016 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-100.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-100.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-100.vert.html >new file mode 100644 >index 00000000000..c3e3a973956 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-100.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-version-100.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-120.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-120.vert-expected.txt >new file mode 100644 >index 00000000000..69615bf3a9c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-120.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-version-120.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-120.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-120.vert.html >new file mode 100644 >index 00000000000..6c4875d2131 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-120.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-version-120.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-version-120.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-version-120.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-version-120.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-130.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-130.vert-expected.txt >new file mode 100644 >index 00000000000..fcff5cb3514 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-130.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-version-130.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-130.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-130.vert.html >new file mode 100644 >index 00000000000..e242fe8d48e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-version-130.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-version-130.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-version-130.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-version-130.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-version-130.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-webgl-identifier.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-webgl-identifier.vert-expected.txt >new file mode 100644 >index 00000000000..e94e3a2efd5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-webgl-identifier.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-webgl-identifier.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-webgl-identifier.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-webgl-identifier.vert.html >new file mode 100644 >index 00000000000..fa679bf03f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-webgl-identifier.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-webgl-identifier.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-webgl-identifier.vert.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-webgl-identifier.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-webgl-identifier.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-while-loop-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-while-loop-expected.txt >new file mode 100644 >index 00000000000..dd89dd18982 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-while-loop-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-while-loop.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-while-loop.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-while-loop.html >new file mode 100644 >index 00000000000..bd65a633668 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-with-while-loop.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-while-loop.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-while-loop.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-while-loop.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-with-while-loop.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-without-precision.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-without-precision.frag-expected.txt >new file mode 100644 >index 00000000000..a934830c23e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-without-precision.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shader-without-precision.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-without-precision.frag.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-without-precision.frag.html >new file mode 100644 >index 00000000000..61f039a3ea9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shader-without-precision.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-without-precision.frag.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shader-without-precision.frag.html">../../../resources/webgl_test_files/conformance/glsl/misc/shader-without-precision.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shader-without-precision.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-constant-expression-loop-conditions-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-constant-expression-loop-conditions-expected.txt >new file mode 100644 >index 00000000000..adad71bd7ad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-constant-expression-loop-conditions-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-constant-expression-loop-conditions.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-constant-expression-loop-conditions.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-constant-expression-loop-conditions.html >new file mode 100644 >index 00000000000..77814565dfd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-constant-expression-loop-conditions.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaders-with-constant-expression-loop-conditions.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-constant-expression-loop-conditions.html">../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-constant-expression-loop-conditions.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-constant-expression-loop-conditions.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance-expected.txt >new file mode 100644 >index 00000000000..eae6b8e47e5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-invariance.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance.html >new file mode 100644 >index 00000000000..3b345d2cd56 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaders-with-invariance.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-invariance.html">../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-invariance.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-invariance.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-mis-matching-uniforms-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-mis-matching-uniforms-expected.txt >new file mode 100644 >index 00000000000..2e95502f8dc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-mis-matching-uniforms-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-uniforms.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-mis-matching-uniforms.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-mis-matching-uniforms.html >new file mode 100644 >index 00000000000..4a942200f02 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-mis-matching-uniforms.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaders-with-mis-matching-uniforms.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-uniforms.html">../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-uniforms.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-uniforms.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-mis-matching-varyings-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-mis-matching-varyings-expected.txt >new file mode 100644 >index 00000000000..3f9703aaf74 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-mis-matching-varyings-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-varyings.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-mis-matching-varyings.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-mis-matching-varyings.html >new file mode 100644 >index 00000000000..83da9c13e65 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-mis-matching-varyings.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaders-with-mis-matching-varyings.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-varyings.html">../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-varyings.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-varyings.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-missing-varyings-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-missing-varyings-expected.txt >new file mode 100644 >index 00000000000..c3c98548c81 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-missing-varyings-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-missing-varyings.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-missing-varyings.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-missing-varyings.html >new file mode 100644 >index 00000000000..43d9c8171f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-missing-varyings.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaders-with-missing-varyings.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-missing-varyings.html">../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-missing-varyings.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-missing-varyings.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-name-conflicts-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-name-conflicts-expected.txt >new file mode 100644 >index 00000000000..79611971634 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-name-conflicts-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-name-conflicts.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-name-conflicts.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-name-conflicts.html >new file mode 100644 >index 00000000000..db43dd6f0dc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-name-conflicts.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaders-with-name-conflicts.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-name-conflicts.html">../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-name-conflicts.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-name-conflicts.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-uniform-structs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-uniform-structs-expected.txt >new file mode 100644 >index 00000000000..58cd46b7946 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-uniform-structs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-uniform-structs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-uniform-structs.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-uniform-structs.html >new file mode 100644 >index 00000000000..791b427e75a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-uniform-structs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaders-with-uniform-structs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-uniform-structs.html">../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-uniform-structs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-uniform-structs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-varyings-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-varyings-expected.txt >new file mode 100644 >index 00000000000..0777352e86f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-varyings-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-varyings.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-varyings.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-varyings.html >new file mode 100644 >index 00000000000..4eace28bc97 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shaders-with-varyings.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaders-with-varyings.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-varyings.html">../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-varyings.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shaders-with-varyings.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shared-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shared-expected.txt >new file mode 100644 >index 00000000000..c1b6006e322 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shared-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/shared.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shared.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shared.html >new file mode 100644 >index 00000000000..a58bd6b2c12 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/shared.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shared.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/shared.html">../../../resources/webgl_test_files/conformance/glsl/misc/shared.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/shared.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-assign-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-assign-expected.txt >new file mode 100644 >index 00000000000..1a23bb49732 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-assign-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/struct-assign.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-assign.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-assign.html >new file mode 100644 >index 00000000000..daba8dd6381 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-assign.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for struct-assign.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/struct-assign.html">../../../resources/webgl_test_files/conformance/glsl/misc/struct-assign.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/struct-assign.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-equals-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-equals-expected.txt >new file mode 100644 >index 00000000000..04921e84158 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-equals-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/struct-equals.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-equals.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-equals.html >new file mode 100644 >index 00000000000..272a88bd94b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-equals.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for struct-equals.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/struct-equals.html">../../../resources/webgl_test_files/conformance/glsl/misc/struct-equals.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/struct-equals.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-mixed-array-declarators-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-mixed-array-declarators-expected.txt >new file mode 100644 >index 00000000000..6ace81acacb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-mixed-array-declarators-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/struct-mixed-array-declarators.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-mixed-array-declarators.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-mixed-array-declarators.html >new file mode 100644 >index 00000000000..fe0292ee800 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-mixed-array-declarators.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for struct-mixed-array-declarators.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/struct-mixed-array-declarators.html">../../../resources/webgl_test_files/conformance/glsl/misc/struct-mixed-array-declarators.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/struct-mixed-array-declarators.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-nesting-exceeds-maximum-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-nesting-exceeds-maximum-expected.txt >new file mode 100644 >index 00000000000..5085eca1c26 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-nesting-exceeds-maximum-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/struct-nesting-exceeds-maximum.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-nesting-exceeds-maximum.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-nesting-exceeds-maximum.html >new file mode 100644 >index 00000000000..e4285d56859 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-nesting-exceeds-maximum.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for struct-nesting-exceeds-maximum.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/struct-nesting-exceeds-maximum.html">../../../resources/webgl_test_files/conformance/glsl/misc/struct-nesting-exceeds-maximum.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/struct-nesting-exceeds-maximum.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-nesting-of-variable-names-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-nesting-of-variable-names-expected.txt >new file mode 100644 >index 00000000000..69dda27e90e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-nesting-of-variable-names-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/struct-nesting-of-variable-names.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-nesting-of-variable-names.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-nesting-of-variable-names.html >new file mode 100644 >index 00000000000..68c16c79f33 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-nesting-of-variable-names.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for struct-nesting-of-variable-names.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/struct-nesting-of-variable-names.html">../../../resources/webgl_test_files/conformance/glsl/misc/struct-nesting-of-variable-names.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/struct-nesting-of-variable-names.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-nesting-under-maximum-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-nesting-under-maximum-expected.txt >new file mode 100644 >index 00000000000..60b2b097e23 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-nesting-under-maximum-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/struct-nesting-under-maximum.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-nesting-under-maximum.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-nesting-under-maximum.html >new file mode 100644 >index 00000000000..c056bd86e17 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-nesting-under-maximum.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for struct-nesting-under-maximum.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/struct-nesting-under-maximum.html">../../../resources/webgl_test_files/conformance/glsl/misc/struct-nesting-under-maximum.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/struct-nesting-under-maximum.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-specifiers-in-uniforms-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-specifiers-in-uniforms-expected.txt >new file mode 100644 >index 00000000000..ef69ed83a39 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-specifiers-in-uniforms-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/struct-specifiers-in-uniforms.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-specifiers-in-uniforms.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-specifiers-in-uniforms.html >new file mode 100644 >index 00000000000..41c597715b4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-specifiers-in-uniforms.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for struct-specifiers-in-uniforms.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/struct-specifiers-in-uniforms.html">../../../resources/webgl_test_files/conformance/glsl/misc/struct-specifiers-in-uniforms.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/struct-specifiers-in-uniforms.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-unary-operators-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-unary-operators-expected.txt >new file mode 100644 >index 00000000000..16d38ea763b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-unary-operators-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/struct-unary-operators.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-unary-operators.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-unary-operators.html >new file mode 100644 >index 00000000000..56eea7e7e7d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/struct-unary-operators.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for struct-unary-operators.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/struct-unary-operators.html">../../../resources/webgl_test_files/conformance/glsl/misc/struct-unary-operators.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/struct-unary-operators.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/ternary-operator-on-arrays-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/ternary-operator-on-arrays-expected.txt >new file mode 100644 >index 00000000000..d95098ed033 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/ternary-operator-on-arrays-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/ternary-operator-on-arrays.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/ternary-operator-on-arrays.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/ternary-operator-on-arrays.html >new file mode 100644 >index 00000000000..b71905ffb7f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/ternary-operator-on-arrays.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for ternary-operator-on-arrays.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/ternary-operator-on-arrays.html">../../../resources/webgl_test_files/conformance/glsl/misc/ternary-operator-on-arrays.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/ternary-operator-on-arrays.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/ternary-operators-in-global-initializers-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/ternary-operators-in-global-initializers-expected.txt >new file mode 100644 >index 00000000000..dd8c67961af >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/ternary-operators-in-global-initializers-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/ternary-operators-in-global-initializers.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/ternary-operators-in-global-initializers.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/ternary-operators-in-global-initializers.html >new file mode 100644 >index 00000000000..e33f6c0facf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/ternary-operators-in-global-initializers.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for ternary-operators-in-global-initializers.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/ternary-operators-in-global-initializers.html">../../../resources/webgl_test_files/conformance/glsl/misc/ternary-operators-in-global-initializers.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/ternary-operators-in-global-initializers.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/ternary-operators-in-initializers-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/ternary-operators-in-initializers-expected.txt >new file mode 100644 >index 00000000000..e665a5b1f2b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/ternary-operators-in-initializers-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/ternary-operators-in-initializers.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/ternary-operators-in-initializers.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/ternary-operators-in-initializers.html >new file mode 100644 >index 00000000000..b945a39fabb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/ternary-operators-in-initializers.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for ternary-operators-in-initializers.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/ternary-operators-in-initializers.html">../../../resources/webgl_test_files/conformance/glsl/misc/ternary-operators-in-initializers.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/ternary-operators-in-initializers.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/uniform-location-length-limits-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/uniform-location-length-limits-expected.txt >new file mode 100644 >index 00000000000..8ddba27f7a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/uniform-location-length-limits-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/misc/uniform-location-length-limits.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/misc/uniform-location-length-limits.html b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/uniform-location-length-limits.html >new file mode 100644 >index 00000000000..e22402c63dd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/misc/uniform-location-length-limits.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniform-location-length-limits.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/misc/uniform-location-length-limits.html">../../../resources/webgl_test_files/conformance/glsl/misc/uniform-location-length-limits.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/misc/uniform-location-length-limits.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_field.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_field.vert-expected.txt >new file mode 100644 >index 00000000000..ca4a46aaa65 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_field.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/reserved/_webgl_field.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_field.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_field.vert.html >new file mode 100644 >index 00000000000..2ae38699ee1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_field.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for _webgl_field.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/reserved/_webgl_field.vert.html">../../../resources/webgl_test_files/conformance/glsl/reserved/_webgl_field.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/reserved/_webgl_field.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_function.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_function.vert-expected.txt >new file mode 100644 >index 00000000000..3cb4535b5df >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_function.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/reserved/_webgl_function.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_function.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_function.vert.html >new file mode 100644 >index 00000000000..e5c99b30796 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_function.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for _webgl_function.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/reserved/_webgl_function.vert.html">../../../resources/webgl_test_files/conformance/glsl/reserved/_webgl_function.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/reserved/_webgl_function.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_struct.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_struct.vert-expected.txt >new file mode 100644 >index 00000000000..a8ac8e5d22f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_struct.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/reserved/_webgl_struct.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_struct.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_struct.vert.html >new file mode 100644 >index 00000000000..089f013474c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_struct.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for _webgl_struct.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/reserved/_webgl_struct.vert.html">../../../resources/webgl_test_files/conformance/glsl/reserved/_webgl_struct.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/reserved/_webgl_struct.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_variable.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_variable.vert-expected.txt >new file mode 100644 >index 00000000000..01b3b015010 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_variable.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/reserved/_webgl_variable.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_variable.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_variable.vert.html >new file mode 100644 >index 00000000000..c9eeb35977b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/_webgl_variable.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for _webgl_variable.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/reserved/_webgl_variable.vert.html">../../../resources/webgl_test_files/conformance/glsl/reserved/_webgl_variable.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/reserved/_webgl_variable.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_field.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_field.vert-expected.txt >new file mode 100644 >index 00000000000..3b466c32747 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_field.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/reserved/webgl_field.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_field.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_field.vert.html >new file mode 100644 >index 00000000000..4854bc0b6ce >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_field.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for webgl_field.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/reserved/webgl_field.vert.html">../../../resources/webgl_test_files/conformance/glsl/reserved/webgl_field.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/reserved/webgl_field.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_function.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_function.vert-expected.txt >new file mode 100644 >index 00000000000..a5dd9caa423 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_function.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/reserved/webgl_function.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_function.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_function.vert.html >new file mode 100644 >index 00000000000..c1c4c4e76d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_function.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for webgl_function.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/reserved/webgl_function.vert.html">../../../resources/webgl_test_files/conformance/glsl/reserved/webgl_function.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/reserved/webgl_function.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_struct.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_struct.vert-expected.txt >new file mode 100644 >index 00000000000..b0de300939b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_struct.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/reserved/webgl_struct.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_struct.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_struct.vert.html >new file mode 100644 >index 00000000000..63760aa073d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_struct.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for webgl_struct.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/reserved/webgl_struct.vert.html">../../../resources/webgl_test_files/conformance/glsl/reserved/webgl_struct.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/reserved/webgl_struct.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_variable.vert-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_variable.vert-expected.txt >new file mode 100644 >index 00000000000..82e4f035f44 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_variable.vert-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/reserved/webgl_variable.vert.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_variable.vert.html b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_variable.vert.html >new file mode 100644 >index 00000000000..7a21c55ce25 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/reserved/webgl_variable.vert.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for webgl_variable.vert.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/reserved/webgl_variable.vert.html">../../../resources/webgl_test_files/conformance/glsl/reserved/webgl_variable.vert.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/reserved/webgl_variable.vert.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2d-bias-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2d-bias-expected.txt >new file mode 100644 >index 00000000000..1ae2991d807 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2d-bias-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2d-bias.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2d-bias.html b/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2d-bias.html >new file mode 100644 >index 00000000000..444e808ec73 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2d-bias.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-texture2d-bias.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2d-bias.html">../../../resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2d-bias.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2d-bias.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2dlod-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2dlod-expected.txt >new file mode 100644 >index 00000000000..9da760e996b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2dlod-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dlod.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2dlod.html b/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2dlod.html >new file mode 100644 >index 00000000000..2bcbcbf0536 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2dlod.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-texture2dlod.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dlod.html">../../../resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dlod.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dlod.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2dproj-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2dproj-expected.txt >new file mode 100644 >index 00000000000..5dcda70e635 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2dproj-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dproj.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2dproj.html b/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2dproj.html >new file mode 100644 >index 00000000000..b6aef18a92f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2dproj.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-texture2dproj.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dproj.html">../../../resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dproj.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dproj.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2dprojlod-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2dprojlod-expected.txt >new file mode 100644 >index 00000000000..5a4ba9afe7f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2dprojlod-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dprojlod.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2dprojlod.html b/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2dprojlod.html >new file mode 100644 >index 00000000000..565d4dfab69 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/samplers/glsl-function-texture2dprojlod.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-function-texture2dprojlod.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dprojlod.html">../../../resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dprojlod.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dprojlod.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-fragcoord-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-fragcoord-expected.txt >new file mode 100644 >index 00000000000..d031586a649 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-fragcoord-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/variables/gl-fragcoord.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-fragcoord-xy-values-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-fragcoord-xy-values-expected.txt >new file mode 100644 >index 00000000000..4917aab0519 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-fragcoord-xy-values-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/variables/gl-fragcoord-xy-values.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-fragcoord-xy-values.html b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-fragcoord-xy-values.html >new file mode 100644 >index 00000000000..79e30e79915 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-fragcoord-xy-values.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-fragcoord-xy-values.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/variables/gl-fragcoord-xy-values.html">../../../resources/webgl_test_files/conformance/glsl/variables/gl-fragcoord-xy-values.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/variables/gl-fragcoord-xy-values.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-fragcoord.html b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-fragcoord.html >new file mode 100644 >index 00000000000..117976c8731 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-fragcoord.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-fragcoord.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/variables/gl-fragcoord.html">../../../resources/webgl_test_files/conformance/glsl/variables/gl-fragcoord.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/variables/gl-fragcoord.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-fragdata-and-fragcolor-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-fragdata-and-fragcolor-expected.txt >new file mode 100644 >index 00000000000..de42550674f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-fragdata-and-fragcolor-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/variables/gl-fragdata-and-fragcolor.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-fragdata-and-fragcolor.html b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-fragdata-and-fragcolor.html >new file mode 100644 >index 00000000000..8567fcd1385 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-fragdata-and-fragcolor.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-fragdata-and-fragcolor.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/variables/gl-fragdata-and-fragcolor.html">../../../resources/webgl_test_files/conformance/glsl/variables/gl-fragdata-and-fragcolor.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/variables/gl-fragdata-and-fragcolor.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-frontfacing-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-frontfacing-expected.txt >new file mode 100644 >index 00000000000..4d4fbc2f3dc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-frontfacing-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/variables/gl-frontfacing.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-frontfacing.html b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-frontfacing.html >new file mode 100644 >index 00000000000..c4057ec5c51 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-frontfacing.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-frontfacing.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/variables/gl-frontfacing.html">../../../resources/webgl_test_files/conformance/glsl/variables/gl-frontfacing.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/variables/gl-frontfacing.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-pointcoord-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-pointcoord-expected.txt >new file mode 100644 >index 00000000000..0d4303a578e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-pointcoord-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/variables/gl-pointcoord.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-pointcoord.html b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-pointcoord.html >new file mode 100644 >index 00000000000..3df0762e94d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/gl-pointcoord.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-pointcoord.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/variables/gl-pointcoord.html">../../../resources/webgl_test_files/conformance/glsl/variables/gl-pointcoord.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/variables/gl-pointcoord.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/variables/glsl-built-ins-expected.txt b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/glsl-built-ins-expected.txt >new file mode 100644 >index 00000000000..10a09ffa410 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/glsl-built-ins-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/glsl/variables/glsl-built-ins.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/glsl/variables/glsl-built-ins.html b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/glsl-built-ins.html >new file mode 100644 >index 00000000000..af0d2766c9e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/glsl/variables/glsl-built-ins.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for glsl-built-ins.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/glsl/variables/glsl-built-ins.html">../../../resources/webgl_test_files/conformance/glsl/variables/glsl-built-ins.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/glsl/variables/glsl-built-ins.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/limits/gl-line-width-expected.txt b/LayoutTests/webgl/2.0.0/conformance/limits/gl-line-width-expected.txt >new file mode 100644 >index 00000000000..0d8dac8d88b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/limits/gl-line-width-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/limits/gl-line-width.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/limits/gl-line-width.html b/LayoutTests/webgl/2.0.0/conformance/limits/gl-line-width.html >new file mode 100644 >index 00000000000..20089924ec2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/limits/gl-line-width.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-line-width.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/limits/gl-line-width.html">../../resources/webgl_test_files/conformance/limits/gl-line-width.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/limits/gl-line-width.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/limits/gl-max-texture-dimensions-expected.txt b/LayoutTests/webgl/2.0.0/conformance/limits/gl-max-texture-dimensions-expected.txt >new file mode 100644 >index 00000000000..c5227f02093 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/limits/gl-max-texture-dimensions-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/limits/gl-max-texture-dimensions.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/limits/gl-max-texture-dimensions.html b/LayoutTests/webgl/2.0.0/conformance/limits/gl-max-texture-dimensions.html >new file mode 100644 >index 00000000000..8662be4a67d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/limits/gl-max-texture-dimensions.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-max-texture-dimensions.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/limits/gl-max-texture-dimensions.html">../../resources/webgl_test_files/conformance/limits/gl-max-texture-dimensions.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/limits/gl-max-texture-dimensions.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/limits/gl-min-attribs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/limits/gl-min-attribs-expected.txt >new file mode 100644 >index 00000000000..5904162b351 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/limits/gl-min-attribs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/limits/gl-min-attribs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/limits/gl-min-attribs.html b/LayoutTests/webgl/2.0.0/conformance/limits/gl-min-attribs.html >new file mode 100644 >index 00000000000..1e6a5902fb9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/limits/gl-min-attribs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-min-attribs.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/limits/gl-min-attribs.html">../../resources/webgl_test_files/conformance/limits/gl-min-attribs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/limits/gl-min-attribs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/limits/gl-min-textures-expected.txt b/LayoutTests/webgl/2.0.0/conformance/limits/gl-min-textures-expected.txt >new file mode 100644 >index 00000000000..9db711b4523 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/limits/gl-min-textures-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/limits/gl-min-textures.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/limits/gl-min-textures.html b/LayoutTests/webgl/2.0.0/conformance/limits/gl-min-textures.html >new file mode 100644 >index 00000000000..ef3ccdd0a96 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/limits/gl-min-textures.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-min-textures.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/limits/gl-min-textures.html">../../resources/webgl_test_files/conformance/limits/gl-min-textures.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/limits/gl-min-textures.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/limits/gl-min-uniforms-expected.txt b/LayoutTests/webgl/2.0.0/conformance/limits/gl-min-uniforms-expected.txt >new file mode 100644 >index 00000000000..ccccecd102a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/limits/gl-min-uniforms-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/limits/gl-min-uniforms.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/limits/gl-min-uniforms.html b/LayoutTests/webgl/2.0.0/conformance/limits/gl-min-uniforms.html >new file mode 100644 >index 00000000000..5542cb0aa72 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/limits/gl-min-uniforms.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-min-uniforms.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/limits/gl-min-uniforms.html">../../resources/webgl_test_files/conformance/limits/gl-min-uniforms.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/limits/gl-min-uniforms.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/bad-arguments-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/misc/bad-arguments-test-expected.txt >new file mode 100644 >index 00000000000..133c4e7802b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/bad-arguments-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/misc/bad-arguments-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/bad-arguments-test.html b/LayoutTests/webgl/2.0.0/conformance/misc/bad-arguments-test.html >new file mode 100644 >index 00000000000..a807b1603a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/bad-arguments-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for bad-arguments-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/misc/bad-arguments-test.html">../../resources/webgl_test_files/conformance/misc/bad-arguments-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/misc/bad-arguments-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/boolean-argument-conversion-expected.txt b/LayoutTests/webgl/2.0.0/conformance/misc/boolean-argument-conversion-expected.txt >new file mode 100644 >index 00000000000..9c99902249f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/boolean-argument-conversion-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/misc/boolean-argument-conversion.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/boolean-argument-conversion.html b/LayoutTests/webgl/2.0.0/conformance/misc/boolean-argument-conversion.html >new file mode 100644 >index 00000000000..505ef9094e2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/boolean-argument-conversion.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for boolean-argument-conversion.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/misc/boolean-argument-conversion.html">../../resources/webgl_test_files/conformance/misc/boolean-argument-conversion.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/misc/boolean-argument-conversion.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/delayed-drawing-expected.txt b/LayoutTests/webgl/2.0.0/conformance/misc/delayed-drawing-expected.txt >new file mode 100644 >index 00000000000..e245048752a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/delayed-drawing-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/misc/delayed-drawing.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/delayed-drawing.html b/LayoutTests/webgl/2.0.0/conformance/misc/delayed-drawing.html >new file mode 100644 >index 00000000000..6265bf0f659 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/delayed-drawing.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for delayed-drawing.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/misc/delayed-drawing.html">../../resources/webgl_test_files/conformance/misc/delayed-drawing.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/misc/delayed-drawing.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/error-reporting-expected.txt b/LayoutTests/webgl/2.0.0/conformance/misc/error-reporting-expected.txt >new file mode 100644 >index 00000000000..51a5929675e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/error-reporting-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/misc/error-reporting.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/error-reporting.html b/LayoutTests/webgl/2.0.0/conformance/misc/error-reporting.html >new file mode 100644 >index 00000000000..82fe598a548 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/error-reporting.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for error-reporting.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/misc/error-reporting.html">../../resources/webgl_test_files/conformance/misc/error-reporting.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/misc/error-reporting.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/expando-loss-expected.txt b/LayoutTests/webgl/2.0.0/conformance/misc/expando-loss-expected.txt >new file mode 100644 >index 00000000000..c5ac2690a08 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/expando-loss-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/misc/expando-loss.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/expando-loss.html b/LayoutTests/webgl/2.0.0/conformance/misc/expando-loss.html >new file mode 100644 >index 00000000000..cd842e4bafa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/expando-loss.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for expando-loss.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/misc/expando-loss.html">../../resources/webgl_test_files/conformance/misc/expando-loss.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/misc/expando-loss.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/functions-returning-strings-expected.txt b/LayoutTests/webgl/2.0.0/conformance/misc/functions-returning-strings-expected.txt >new file mode 100644 >index 00000000000..06a73ffb475 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/functions-returning-strings-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/misc/functions-returning-strings.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/functions-returning-strings.html b/LayoutTests/webgl/2.0.0/conformance/misc/functions-returning-strings.html >new file mode 100644 >index 00000000000..122e357eca9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/functions-returning-strings.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions-returning-strings.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/misc/functions-returning-strings.html">../../resources/webgl_test_files/conformance/misc/functions-returning-strings.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/misc/functions-returning-strings.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/instanceof-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/misc/instanceof-test-expected.txt >new file mode 100644 >index 00000000000..464d6bafd7f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/instanceof-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/misc/instanceof-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/instanceof-test.html b/LayoutTests/webgl/2.0.0/conformance/misc/instanceof-test.html >new file mode 100644 >index 00000000000..84763cc13d7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/instanceof-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for instanceof-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/misc/instanceof-test.html">../../resources/webgl_test_files/conformance/misc/instanceof-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/misc/instanceof-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/invalid-passed-params-expected.txt b/LayoutTests/webgl/2.0.0/conformance/misc/invalid-passed-params-expected.txt >new file mode 100644 >index 00000000000..bdcc1289e61 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/invalid-passed-params-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/misc/invalid-passed-params.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/invalid-passed-params.html b/LayoutTests/webgl/2.0.0/conformance/misc/invalid-passed-params.html >new file mode 100644 >index 00000000000..62257b04030 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/invalid-passed-params.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for invalid-passed-params.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/misc/invalid-passed-params.html">../../resources/webgl_test_files/conformance/misc/invalid-passed-params.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/misc/invalid-passed-params.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/is-object-expected.txt b/LayoutTests/webgl/2.0.0/conformance/misc/is-object-expected.txt >new file mode 100644 >index 00000000000..0b309e6ef17 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/is-object-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/misc/is-object.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/is-object.html b/LayoutTests/webgl/2.0.0/conformance/misc/is-object.html >new file mode 100644 >index 00000000000..63bda432496 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/is-object.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for is-object.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/misc/is-object.html">../../resources/webgl_test_files/conformance/misc/is-object.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/misc/is-object.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/null-object-behaviour-expected.txt b/LayoutTests/webgl/2.0.0/conformance/misc/null-object-behaviour-expected.txt >new file mode 100644 >index 00000000000..fc5469e6f3d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/null-object-behaviour-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/misc/null-object-behaviour.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/null-object-behaviour.html b/LayoutTests/webgl/2.0.0/conformance/misc/null-object-behaviour.html >new file mode 100644 >index 00000000000..ec336e45e3b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/null-object-behaviour.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for null-object-behaviour.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/misc/null-object-behaviour.html">../../resources/webgl_test_files/conformance/misc/null-object-behaviour.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/misc/null-object-behaviour.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/object-deletion-behaviour-expected.txt b/LayoutTests/webgl/2.0.0/conformance/misc/object-deletion-behaviour-expected.txt >new file mode 100644 >index 00000000000..a99ebe35138 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/object-deletion-behaviour-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/misc/object-deletion-behaviour.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/object-deletion-behaviour.html b/LayoutTests/webgl/2.0.0/conformance/misc/object-deletion-behaviour.html >new file mode 100644 >index 00000000000..6c60a42b015 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/object-deletion-behaviour.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for object-deletion-behaviour.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/misc/object-deletion-behaviour.html">../../resources/webgl_test_files/conformance/misc/object-deletion-behaviour.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/misc/object-deletion-behaviour.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/shader-precision-format-expected.txt b/LayoutTests/webgl/2.0.0/conformance/misc/shader-precision-format-expected.txt >new file mode 100644 >index 00000000000..d32dc41435c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/shader-precision-format-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/misc/shader-precision-format.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/shader-precision-format.html b/LayoutTests/webgl/2.0.0/conformance/misc/shader-precision-format.html >new file mode 100644 >index 00000000000..6a2b93fc6f7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/shader-precision-format.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-precision-format.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/misc/shader-precision-format.html">../../resources/webgl_test_files/conformance/misc/shader-precision-format.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/misc/shader-precision-format.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/type-conversion-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/misc/type-conversion-test-expected.txt >new file mode 100644 >index 00000000000..9e72e8190ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/type-conversion-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/misc/type-conversion-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/type-conversion-test.html b/LayoutTests/webgl/2.0.0/conformance/misc/type-conversion-test.html >new file mode 100644 >index 00000000000..838ab656498 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/type-conversion-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for type-conversion-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/misc/type-conversion-test.html">../../resources/webgl_test_files/conformance/misc/type-conversion-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/misc/type-conversion-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/uninitialized-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/misc/uninitialized-test-expected.txt >new file mode 100644 >index 00000000000..e7c4f6b5445 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/uninitialized-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/misc/uninitialized-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/uninitialized-test.html b/LayoutTests/webgl/2.0.0/conformance/misc/uninitialized-test.html >new file mode 100644 >index 00000000000..346e48c17b5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/uninitialized-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uninitialized-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/misc/uninitialized-test.html">../../resources/webgl_test_files/conformance/misc/uninitialized-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/misc/uninitialized-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/webgl-specific-expected.txt b/LayoutTests/webgl/2.0.0/conformance/misc/webgl-specific-expected.txt >new file mode 100644 >index 00000000000..c6cc815d45e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/webgl-specific-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/misc/webgl-specific.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/misc/webgl-specific.html b/LayoutTests/webgl/2.0.0/conformance/misc/webgl-specific.html >new file mode 100644 >index 00000000000..55ff99b0863 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/misc/webgl-specific.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for webgl-specific.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/misc/webgl-specific.html">../../resources/webgl_test_files/conformance/misc/webgl-specific.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/misc/webgl-specific.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/constants-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/conformance/constants-expected.txt >new file mode 100644 >index 00000000000..83744b6e92d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/constants-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/conformance/constants.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/constants.html b/LayoutTests/webgl/2.0.0/conformance/more/conformance/constants.html >new file mode 100644 >index 00000000000..752387dbb09 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/constants.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for constants.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/conformance/constants.html">../../../resources/webgl_test_files/conformance/more/conformance/constants.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/conformance/constants.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/getContext-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/conformance/getContext-expected.txt >new file mode 100644 >index 00000000000..887354d9d83 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/getContext-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/conformance/getContext.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/getContext.html b/LayoutTests/webgl/2.0.0/conformance/more/conformance/getContext.html >new file mode 100644 >index 00000000000..adeac74ecb4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/getContext.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for getContext.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/conformance/getContext.html">../../../resources/webgl_test_files/conformance/more/conformance/getContext.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/conformance/getContext.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/methods-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/conformance/methods-expected.txt >new file mode 100644 >index 00000000000..1d40abf54e6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/methods-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/conformance/methods.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/methods.html b/LayoutTests/webgl/2.0.0/conformance/more/conformance/methods.html >new file mode 100644 >index 00000000000..52b695f2822 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/methods.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for methods.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/conformance/methods.html">../../../resources/webgl_test_files/conformance/more/conformance/methods.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/conformance/methods.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-A-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-A-expected.txt >new file mode 100644 >index 00000000000..263acbf62ea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-A-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-A.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-A.html b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-A.html >new file mode 100644 >index 00000000000..9f82058fef6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-A.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for quickCheckAPI-A.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-A.html">../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-A.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-A.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B1-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B1-expected.txt >new file mode 100644 >index 00000000000..831d2c2ea84 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B1.html b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B1.html >new file mode 100644 >index 00000000000..736a85fea7c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for quickCheckAPI-B1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B1.html">../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B2-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B2-expected.txt >new file mode 100644 >index 00000000000..92f45a3be8b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B2-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B2.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B2.html b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B2.html >new file mode 100644 >index 00000000000..7b938906cc2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B2.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for quickCheckAPI-B2.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B2.html">../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B2.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B2.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B3-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B3-expected.txt >new file mode 100644 >index 00000000000..8ffd174725d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B3-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B3.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B3.html b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B3.html >new file mode 100644 >index 00000000000..cd875b49b1d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B3.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for quickCheckAPI-B3.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B3.html">../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B3.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B3.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B4-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B4-expected.txt >new file mode 100644 >index 00000000000..736d4e871b9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B4.html b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B4.html >new file mode 100644 >index 00000000000..3011246b2cb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-B4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for quickCheckAPI-B4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B4.html">../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-C-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-C-expected.txt >new file mode 100644 >index 00000000000..0ccabd4ca74 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-C-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-C.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-C.html b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-C.html >new file mode 100644 >index 00000000000..ddc8392e599 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-C.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for quickCheckAPI-C.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-C.html">../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-C.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-C.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-D_G-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-D_G-expected.txt >new file mode 100644 >index 00000000000..360c5ced099 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-D_G-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-D_G.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-D_G.html b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-D_G.html >new file mode 100644 >index 00000000000..06048fa56ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-D_G.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for quickCheckAPI-D_G.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-D_G.html">../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-D_G.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-D_G.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-G_I-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-G_I-expected.txt >new file mode 100644 >index 00000000000..48d2e9abb87 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-G_I-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-G_I.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-G_I.html b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-G_I.html >new file mode 100644 >index 00000000000..064cac21eaf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-G_I.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for quickCheckAPI-G_I.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-G_I.html">../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-G_I.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-G_I.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-L_S-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-L_S-expected.txt >new file mode 100644 >index 00000000000..3eb618e90c0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-L_S-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-L_S.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-L_S.html b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-L_S.html >new file mode 100644 >index 00000000000..be223d063a6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-L_S.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for quickCheckAPI-L_S.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-L_S.html">../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-L_S.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-L_S.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-S_V-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-S_V-expected.txt >new file mode 100644 >index 00000000000..a2e812749f5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-S_V-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-S_V.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-S_V.html b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-S_V.html >new file mode 100644 >index 00000000000..e2dd9157978 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/quickCheckAPI-S_V.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for quickCheckAPI-S_V.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-S_V.html">../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-S_V.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-S_V.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/webGLArrays-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/conformance/webGLArrays-expected.txt >new file mode 100644 >index 00000000000..9c522bf892c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/webGLArrays-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/conformance/webGLArrays.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/conformance/webGLArrays.html b/LayoutTests/webgl/2.0.0/conformance/more/conformance/webGLArrays.html >new file mode 100644 >index 00000000000..4be6a9974f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/conformance/webGLArrays.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for webGLArrays.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/conformance/webGLArrays.html">../../../resources/webgl_test_files/conformance/more/conformance/webGLArrays.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/conformance/webGLArrays.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/bindBuffer-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/bindBuffer-expected.txt >new file mode 100644 >index 00000000000..785845d86bd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/bindBuffer-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/bindBuffer.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/bindBuffer.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/bindBuffer.html >new file mode 100644 >index 00000000000..8b0a1bf8e2e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/bindBuffer.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for bindBuffer.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/bindBuffer.html">../../../resources/webgl_test_files/conformance/more/functions/bindBuffer.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/bindBuffer.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/bindBufferBadArgs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/bindBufferBadArgs-expected.txt >new file mode 100644 >index 00000000000..ad8d24bc78e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/bindBufferBadArgs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/bindBufferBadArgs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/bindBufferBadArgs.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/bindBufferBadArgs.html >new file mode 100644 >index 00000000000..ec6b2784359 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/bindBufferBadArgs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for bindBufferBadArgs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/bindBufferBadArgs.html">../../../resources/webgl_test_files/conformance/more/functions/bindBufferBadArgs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/bindBufferBadArgs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/bindFramebufferLeaveNonZero-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/bindFramebufferLeaveNonZero-expected.txt >new file mode 100644 >index 00000000000..44a6365fc12 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/bindFramebufferLeaveNonZero-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/bindFramebufferLeaveNonZero.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/bindFramebufferLeaveNonZero.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/bindFramebufferLeaveNonZero.html >new file mode 100644 >index 00000000000..cef0d35d6d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/bindFramebufferLeaveNonZero.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for bindFramebufferLeaveNonZero.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/bindFramebufferLeaveNonZero.html">../../../resources/webgl_test_files/conformance/more/functions/bindFramebufferLeaveNonZero.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/bindFramebufferLeaveNonZero.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferData-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferData-expected.txt >new file mode 100644 >index 00000000000..c34f18f0423 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferData-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/bufferData.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferData.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferData.html >new file mode 100644 >index 00000000000..9ecb158b424 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferData.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for bufferData.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/bufferData.html">../../../resources/webgl_test_files/conformance/more/functions/bufferData.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/bufferData.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferDataBadArgs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferDataBadArgs-expected.txt >new file mode 100644 >index 00000000000..3a5b0d7798e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferDataBadArgs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/bufferDataBadArgs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferDataBadArgs.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferDataBadArgs.html >new file mode 100644 >index 00000000000..4c8c702b7c7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferDataBadArgs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for bufferDataBadArgs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/bufferDataBadArgs.html">../../../resources/webgl_test_files/conformance/more/functions/bufferDataBadArgs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/bufferDataBadArgs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferSubData-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferSubData-expected.txt >new file mode 100644 >index 00000000000..3a48531c6f5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferSubData-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/bufferSubData.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferSubData.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferSubData.html >new file mode 100644 >index 00000000000..2d731236d06 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferSubData.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for bufferSubData.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/bufferSubData.html">../../../resources/webgl_test_files/conformance/more/functions/bufferSubData.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/bufferSubData.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferSubDataBadArgs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferSubDataBadArgs-expected.txt >new file mode 100644 >index 00000000000..6b8ac4abc2e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferSubDataBadArgs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/bufferSubDataBadArgs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferSubDataBadArgs.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferSubDataBadArgs.html >new file mode 100644 >index 00000000000..ed1ea7ca05d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/bufferSubDataBadArgs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for bufferSubDataBadArgs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/bufferSubDataBadArgs.html">../../../resources/webgl_test_files/conformance/more/functions/bufferSubDataBadArgs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/bufferSubDataBadArgs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexImage2D-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexImage2D-expected.txt >new file mode 100644 >index 00000000000..33104f2c047 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexImage2D-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/copyTexImage2D.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexImage2D.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexImage2D.html >new file mode 100644 >index 00000000000..a2da32d93d5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexImage2D.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for copyTexImage2D.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/copyTexImage2D.html">../../../resources/webgl_test_files/conformance/more/functions/copyTexImage2D.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/copyTexImage2D.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexImage2DBadArgs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexImage2DBadArgs-expected.txt >new file mode 100644 >index 00000000000..f52563d9a9c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexImage2DBadArgs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/copyTexImage2DBadArgs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexImage2DBadArgs.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexImage2DBadArgs.html >new file mode 100644 >index 00000000000..824ffbc7f60 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexImage2DBadArgs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for copyTexImage2DBadArgs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/copyTexImage2DBadArgs.html">../../../resources/webgl_test_files/conformance/more/functions/copyTexImage2DBadArgs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/copyTexImage2DBadArgs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexSubImage2D-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexSubImage2D-expected.txt >new file mode 100644 >index 00000000000..d7b252cb00f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexSubImage2D-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/copyTexSubImage2D.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexSubImage2D.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexSubImage2D.html >new file mode 100644 >index 00000000000..3d503c8280d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexSubImage2D.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for copyTexSubImage2D.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/copyTexSubImage2D.html">../../../resources/webgl_test_files/conformance/more/functions/copyTexSubImage2D.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/copyTexSubImage2D.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexSubImage2DBadArgs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexSubImage2DBadArgs-expected.txt >new file mode 100644 >index 00000000000..b22afaaf4e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexSubImage2DBadArgs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/copyTexSubImage2DBadArgs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexSubImage2DBadArgs.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexSubImage2DBadArgs.html >new file mode 100644 >index 00000000000..9c3b54b4da8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/copyTexSubImage2DBadArgs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for copyTexSubImage2DBadArgs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/copyTexSubImage2DBadArgs.html">../../../resources/webgl_test_files/conformance/more/functions/copyTexSubImage2DBadArgs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/copyTexSubImage2DBadArgs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/deleteBufferBadArgs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/deleteBufferBadArgs-expected.txt >new file mode 100644 >index 00000000000..67fa1982b70 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/deleteBufferBadArgs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/deleteBufferBadArgs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/deleteBufferBadArgs.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/deleteBufferBadArgs.html >new file mode 100644 >index 00000000000..f12ad58bce1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/deleteBufferBadArgs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for deleteBufferBadArgs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/deleteBufferBadArgs.html">../../../resources/webgl_test_files/conformance/more/functions/deleteBufferBadArgs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/deleteBufferBadArgs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/drawArrays-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/drawArrays-expected.txt >new file mode 100644 >index 00000000000..edc985954e6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/drawArrays-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/drawArrays.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/drawArrays.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/drawArrays.html >new file mode 100644 >index 00000000000..d68614b3da5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/drawArrays.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for drawArrays.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/drawArrays.html">../../../resources/webgl_test_files/conformance/more/functions/drawArrays.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/drawArrays.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/drawArraysOutOfBounds-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/drawArraysOutOfBounds-expected.txt >new file mode 100644 >index 00000000000..b24dead452f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/drawArraysOutOfBounds-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/drawArraysOutOfBounds.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/drawArraysOutOfBounds.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/drawArraysOutOfBounds.html >new file mode 100644 >index 00000000000..b4725bf8a83 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/drawArraysOutOfBounds.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for drawArraysOutOfBounds.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/drawArraysOutOfBounds.html">../../../resources/webgl_test_files/conformance/more/functions/drawArraysOutOfBounds.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/drawArraysOutOfBounds.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/drawElements-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/drawElements-expected.txt >new file mode 100644 >index 00000000000..a813c35dd31 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/drawElements-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/drawElements.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/drawElements.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/drawElements.html >new file mode 100644 >index 00000000000..a6e2d491222 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/drawElements.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for drawElements.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/drawElements.html">../../../resources/webgl_test_files/conformance/more/functions/drawElements.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/drawElements.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/isTests-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/isTests-expected.txt >new file mode 100644 >index 00000000000..99dc193f7e2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/isTests-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/isTests.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/isTests.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/isTests.html >new file mode 100644 >index 00000000000..6c2710ab362 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/isTests.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for isTests.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/isTests.html">../../../resources/webgl_test_files/conformance/more/functions/isTests.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/isTests.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/isTestsBadArgs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/isTestsBadArgs-expected.txt >new file mode 100644 >index 00000000000..5939e9968f0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/isTestsBadArgs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/isTestsBadArgs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/isTestsBadArgs.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/isTestsBadArgs.html >new file mode 100644 >index 00000000000..af38bdc927f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/isTestsBadArgs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for isTestsBadArgs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/isTestsBadArgs.html">../../../resources/webgl_test_files/conformance/more/functions/isTestsBadArgs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/isTestsBadArgs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/readPixels-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/readPixels-expected.txt >new file mode 100644 >index 00000000000..c9db6dd5674 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/readPixels-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/readPixels.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/readPixels.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/readPixels.html >new file mode 100644 >index 00000000000..b3a68603a50 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/readPixels.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for readPixels.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/readPixels.html">../../../resources/webgl_test_files/conformance/more/functions/readPixels.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/readPixels.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/readPixelsBadArgs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/readPixelsBadArgs-expected.txt >new file mode 100644 >index 00000000000..8439798d595 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/readPixelsBadArgs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/readPixelsBadArgs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/readPixelsBadArgs.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/readPixelsBadArgs.html >new file mode 100644 >index 00000000000..2fd635aea10 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/readPixelsBadArgs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for readPixelsBadArgs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/readPixelsBadArgs.html">../../../resources/webgl_test_files/conformance/more/functions/readPixelsBadArgs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/readPixelsBadArgs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2D-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2D-expected.txt >new file mode 100644 >index 00000000000..ab9ddc11c40 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2D-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/texImage2D.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2D.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2D.html >new file mode 100644 >index 00000000000..4b3c9807e76 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2D.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texImage2D.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/texImage2D.html">../../../resources/webgl_test_files/conformance/more/functions/texImage2D.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/texImage2D.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2DBadArgs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2DBadArgs-expected.txt >new file mode 100644 >index 00000000000..16328f61e5f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2DBadArgs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/texImage2DBadArgs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2DBadArgs.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2DBadArgs.html >new file mode 100644 >index 00000000000..f685f39f780 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2DBadArgs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texImage2DBadArgs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/texImage2DBadArgs.html">../../../resources/webgl_test_files/conformance/more/functions/texImage2DBadArgs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/texImage2DBadArgs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2DHTML-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2DHTML-expected.txt >new file mode 100644 >index 00000000000..968127ba8cc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2DHTML-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/texImage2DHTML.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2DHTML.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2DHTML.html >new file mode 100644 >index 00000000000..3aec4365e33 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2DHTML.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texImage2DHTML.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/texImage2DHTML.html">../../../resources/webgl_test_files/conformance/more/functions/texImage2DHTML.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/texImage2DHTML.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2DHTMLBadArgs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2DHTMLBadArgs-expected.txt >new file mode 100644 >index 00000000000..86a61b0efba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2DHTMLBadArgs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/texImage2DHTMLBadArgs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2DHTMLBadArgs.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2DHTMLBadArgs.html >new file mode 100644 >index 00000000000..38ad4c23a2f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/texImage2DHTMLBadArgs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texImage2DHTMLBadArgs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/texImage2DHTMLBadArgs.html">../../../resources/webgl_test_files/conformance/more/functions/texImage2DHTMLBadArgs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/texImage2DHTMLBadArgs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2D-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2D-expected.txt >new file mode 100644 >index 00000000000..f57f65d1626 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2D-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/texSubImage2D.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2D.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2D.html >new file mode 100644 >index 00000000000..f79eab2f320 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2D.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texSubImage2D.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/texSubImage2D.html">../../../resources/webgl_test_files/conformance/more/functions/texSubImage2D.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/texSubImage2D.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2DBadArgs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2DBadArgs-expected.txt >new file mode 100644 >index 00000000000..4562659ec2b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2DBadArgs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/texSubImage2DBadArgs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2DBadArgs.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2DBadArgs.html >new file mode 100644 >index 00000000000..28da2c3d6b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2DBadArgs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texSubImage2DBadArgs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/texSubImage2DBadArgs.html">../../../resources/webgl_test_files/conformance/more/functions/texSubImage2DBadArgs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/texSubImage2DBadArgs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2DHTML-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2DHTML-expected.txt >new file mode 100644 >index 00000000000..ee033e38190 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2DHTML-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/texSubImage2DHTML.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2DHTML.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2DHTML.html >new file mode 100644 >index 00000000000..dc214beb599 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2DHTML.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texSubImage2DHTML.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/texSubImage2DHTML.html">../../../resources/webgl_test_files/conformance/more/functions/texSubImage2DHTML.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/texSubImage2DHTML.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2DHTMLBadArgs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2DHTMLBadArgs-expected.txt >new file mode 100644 >index 00000000000..269330a865f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2DHTMLBadArgs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/texSubImage2DHTMLBadArgs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2DHTMLBadArgs.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2DHTMLBadArgs.html >new file mode 100644 >index 00000000000..c12aa60d32b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/texSubImage2DHTMLBadArgs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texSubImage2DHTMLBadArgs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/texSubImage2DHTMLBadArgs.html">../../../resources/webgl_test_files/conformance/more/functions/texSubImage2DHTMLBadArgs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/texSubImage2DHTMLBadArgs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformMatrix-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformMatrix-expected.txt >new file mode 100644 >index 00000000000..91883c45c97 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformMatrix-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/uniformMatrix.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformMatrix.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformMatrix.html >new file mode 100644 >index 00000000000..e8722772596 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformMatrix.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniformMatrix.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/uniformMatrix.html">../../../resources/webgl_test_files/conformance/more/functions/uniformMatrix.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/uniformMatrix.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformMatrixBadArgs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformMatrixBadArgs-expected.txt >new file mode 100644 >index 00000000000..204880f8caf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformMatrixBadArgs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/uniformMatrixBadArgs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformMatrixBadArgs.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformMatrixBadArgs.html >new file mode 100644 >index 00000000000..78bd492c77d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformMatrixBadArgs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniformMatrixBadArgs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/uniformMatrixBadArgs.html">../../../resources/webgl_test_files/conformance/more/functions/uniformMatrixBadArgs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/uniformMatrixBadArgs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformf-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformf-expected.txt >new file mode 100644 >index 00000000000..40638ffe044 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformf-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/uniformf.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformf.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformf.html >new file mode 100644 >index 00000000000..4c36ffa66b4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformf.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniformf.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/uniformf.html">../../../resources/webgl_test_files/conformance/more/functions/uniformf.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/uniformf.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformfArrayLen1-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformfArrayLen1-expected.txt >new file mode 100644 >index 00000000000..6d725335966 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformfArrayLen1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/uniformfArrayLen1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformfArrayLen1.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformfArrayLen1.html >new file mode 100644 >index 00000000000..c5090da25bf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformfArrayLen1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniformfArrayLen1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/uniformfArrayLen1.html">../../../resources/webgl_test_files/conformance/more/functions/uniformfArrayLen1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/uniformfArrayLen1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformfBadArgs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformfBadArgs-expected.txt >new file mode 100644 >index 00000000000..3a9708124a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformfBadArgs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/uniformfBadArgs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformfBadArgs.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformfBadArgs.html >new file mode 100644 >index 00000000000..aad6f21d41c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformfBadArgs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniformfBadArgs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/uniformfBadArgs.html">../../../resources/webgl_test_files/conformance/more/functions/uniformfBadArgs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/uniformfBadArgs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformi-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformi-expected.txt >new file mode 100644 >index 00000000000..aecaaef9028 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformi-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/uniformi.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformi.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformi.html >new file mode 100644 >index 00000000000..c2621f92cfb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformi.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniformi.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/uniformi.html">../../../resources/webgl_test_files/conformance/more/functions/uniformi.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/uniformi.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformiBadArgs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformiBadArgs-expected.txt >new file mode 100644 >index 00000000000..59e55d6297f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformiBadArgs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/uniformiBadArgs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformiBadArgs.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformiBadArgs.html >new file mode 100644 >index 00000000000..7793b62bd92 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/uniformiBadArgs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniformiBadArgs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/uniformiBadArgs.html">../../../resources/webgl_test_files/conformance/more/functions/uniformiBadArgs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/uniformiBadArgs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttrib-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttrib-expected.txt >new file mode 100644 >index 00000000000..7912c2fc0fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttrib-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/vertexAttrib.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttrib.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttrib.html >new file mode 100644 >index 00000000000..fbeb890687b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttrib.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for vertexAttrib.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/vertexAttrib.html">../../../resources/webgl_test_files/conformance/more/functions/vertexAttrib.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/vertexAttrib.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttribBadArgs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttribBadArgs-expected.txt >new file mode 100644 >index 00000000000..9ddf53c31a0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttribBadArgs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/vertexAttribBadArgs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttribBadArgs.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttribBadArgs.html >new file mode 100644 >index 00000000000..efa94751a61 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttribBadArgs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for vertexAttribBadArgs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/vertexAttribBadArgs.html">../../../resources/webgl_test_files/conformance/more/functions/vertexAttribBadArgs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/vertexAttribBadArgs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttribPointer-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttribPointer-expected.txt >new file mode 100644 >index 00000000000..4c4fe77590a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttribPointer-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/vertexAttribPointer.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttribPointer.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttribPointer.html >new file mode 100644 >index 00000000000..70add83aca1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttribPointer.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for vertexAttribPointer.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/vertexAttribPointer.html">../../../resources/webgl_test_files/conformance/more/functions/vertexAttribPointer.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/vertexAttribPointer.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttribPointerBadArgs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttribPointerBadArgs-expected.txt >new file mode 100644 >index 00000000000..d0f7862d9be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttribPointerBadArgs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/functions/vertexAttribPointerBadArgs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttribPointerBadArgs.html b/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttribPointerBadArgs.html >new file mode 100644 >index 00000000000..77d6bdaffa2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/functions/vertexAttribPointerBadArgs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for vertexAttribPointerBadArgs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/functions/vertexAttribPointerBadArgs.html">../../../resources/webgl_test_files/conformance/more/functions/vertexAttribPointerBadArgs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/functions/vertexAttribPointerBadArgs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/glsl/arrayOutOfBounds-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/glsl/arrayOutOfBounds-expected.txt >new file mode 100644 >index 00000000000..f5d18edaa24 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/glsl/arrayOutOfBounds-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/glsl/arrayOutOfBounds.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/glsl/arrayOutOfBounds.html b/LayoutTests/webgl/2.0.0/conformance/more/glsl/arrayOutOfBounds.html >new file mode 100644 >index 00000000000..716878b3823 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/glsl/arrayOutOfBounds.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for arrayOutOfBounds.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/glsl/arrayOutOfBounds.html">../../../resources/webgl_test_files/conformance/more/glsl/arrayOutOfBounds.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/glsl/arrayOutOfBounds.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/glsl/uniformOutOfBounds-expected.txt b/LayoutTests/webgl/2.0.0/conformance/more/glsl/uniformOutOfBounds-expected.txt >new file mode 100644 >index 00000000000..fe8110a046c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/glsl/uniformOutOfBounds-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/more/glsl/uniformOutOfBounds.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/more/glsl/uniformOutOfBounds.html b/LayoutTests/webgl/2.0.0/conformance/more/glsl/uniformOutOfBounds.html >new file mode 100644 >index 00000000000..12409da350e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/more/glsl/uniformOutOfBounds.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniformOutOfBounds.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/more/glsl/uniformOutOfBounds.html">../../../resources/webgl_test_files/conformance/more/glsl/uniformOutOfBounds.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/more/glsl/uniformOutOfBounds.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/abs/abs_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/abs/abs_001_to_006-expected.txt >new file mode 100644 >index 00000000000..b0fd441ef4d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/abs/abs_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/abs/abs_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/abs/abs_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/abs/abs_001_to_006.html >new file mode 100644 >index 00000000000..37469746f4a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/abs/abs_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for abs_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/abs/abs_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/abs/abs_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/abs/abs_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/acos/acos_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/acos/acos_001_to_006-expected.txt >new file mode 100644 >index 00000000000..08fd720fa44 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/acos/acos_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/acos/acos_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/acos/acos_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/acos/acos_001_to_006.html >new file mode 100644 >index 00000000000..abd684c0884 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/acos/acos_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for acos_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/acos/acos_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/acos/acos_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/acos/acos_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/all/all_001_to_004-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/all/all_001_to_004-expected.txt >new file mode 100644 >index 00000000000..1e8e055a54a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/all/all_001_to_004-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/all/all_001_to_004.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/all/all_001_to_004.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/all/all_001_to_004.html >new file mode 100644 >index 00000000000..da83b825609 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/all/all_001_to_004.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for all_001_to_004.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/all/all_001_to_004.html">../../../../resources/webgl_test_files/conformance/ogles/GL/all/all_001_to_004.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/all/all_001_to_004.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/any/any_001_to_004-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/any/any_001_to_004-expected.txt >new file mode 100644 >index 00000000000..a578642c878 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/any/any_001_to_004-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/any/any_001_to_004.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/any/any_001_to_004.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/any/any_001_to_004.html >new file mode 100644 >index 00000000000..4515e5fe415 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/any/any_001_to_004.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for any_001_to_004.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/any/any_001_to_004.html">../../../../resources/webgl_test_files/conformance/ogles/GL/any/any_001_to_004.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/any/any_001_to_004.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/array/array_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/array/array_001_to_006-expected.txt >new file mode 100644 >index 00000000000..031174a2e94 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/array/array_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/array/array_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/array/array_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/array/array_001_to_006.html >new file mode 100644 >index 00000000000..9cb67bffd4a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/array/array_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/array/array_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/array/array_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/array/array_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/asin/asin_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/asin/asin_001_to_006-expected.txt >new file mode 100644 >index 00000000000..33f20cce4ce >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/asin/asin_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/asin/asin_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/asin/asin_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/asin/asin_001_to_006.html >new file mode 100644 >index 00000000000..6f789b218a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/asin/asin_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for asin_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/asin/asin_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/asin/asin_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/asin/asin_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/atan/atan_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/atan/atan_001_to_008-expected.txt >new file mode 100644 >index 00000000000..853b356c44e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/atan/atan_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/atan/atan_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/atan/atan_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/atan/atan_001_to_008.html >new file mode 100644 >index 00000000000..5c94f14d6c9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/atan/atan_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for atan_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/atan/atan_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/atan/atan_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/atan/atan_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/atan/atan_009_to_012-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/atan/atan_009_to_012-expected.txt >new file mode 100644 >index 00000000000..92ff1f611bd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/atan/atan_009_to_012-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/atan/atan_009_to_012.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/atan/atan_009_to_012.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/atan/atan_009_to_012.html >new file mode 100644 >index 00000000000..1e006aec26f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/atan/atan_009_to_012.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for atan_009_to_012.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/atan/atan_009_to_012.html">../../../../resources/webgl_test_files/conformance/ogles/GL/atan/atan_009_to_012.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/atan/atan_009_to_012.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/biConstants/biConstants_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/biConstants/biConstants_001_to_008-expected.txt >new file mode 100644 >index 00000000000..472a49cd4c5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/biConstants/biConstants_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/biConstants/biConstants_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/biConstants/biConstants_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/biConstants/biConstants_001_to_008.html >new file mode 100644 >index 00000000000..7e8f7e8fc24 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/biConstants/biConstants_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for biConstants_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/biConstants/biConstants_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/biConstants/biConstants_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/biConstants/biConstants_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/biConstants/biConstants_009_to_016-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/biConstants/biConstants_009_to_016-expected.txt >new file mode 100644 >index 00000000000..1022db0ca4c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/biConstants/biConstants_009_to_016-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/biConstants/biConstants_009_to_016.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/biConstants/biConstants_009_to_016.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/biConstants/biConstants_009_to_016.html >new file mode 100644 >index 00000000000..39d37d0e6b9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/biConstants/biConstants_009_to_016.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for biConstants_009_to_016.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/biConstants/biConstants_009_to_016.html">../../../../resources/webgl_test_files/conformance/ogles/GL/biConstants/biConstants_009_to_016.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/biConstants/biConstants_009_to_016.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/biuDepthRange/biuDepthRange_001_to_002-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/biuDepthRange/biuDepthRange_001_to_002-expected.txt >new file mode 100644 >index 00000000000..4d5a38b867e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/biuDepthRange/biuDepthRange_001_to_002-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/biuDepthRange/biuDepthRange_001_to_002.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/biuDepthRange/biuDepthRange_001_to_002.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/biuDepthRange/biuDepthRange_001_to_002.html >new file mode 100644 >index 00000000000..77d6ec68657 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/biuDepthRange/biuDepthRange_001_to_002.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for biuDepthRange_001_to_002.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/biuDepthRange/biuDepthRange_001_to_002.html">../../../../resources/webgl_test_files/conformance/ogles/GL/biuDepthRange/biuDepthRange_001_to_002.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/biuDepthRange/biuDepthRange_001_to_002.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/built_in_varying_array_out_of_bounds/built_in_varying_array_out_of_bounds_001_to_001-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/built_in_varying_array_out_of_bounds/built_in_varying_array_out_of_bounds_001_to_001-expected.txt >new file mode 100644 >index 00000000000..24158139e35 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/built_in_varying_array_out_of_bounds/built_in_varying_array_out_of_bounds_001_to_001-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/built_in_varying_array_out_of_bounds/built_in_varying_array_out_of_bounds_001_to_001.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/built_in_varying_array_out_of_bounds/built_in_varying_array_out_of_bounds_001_to_001.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/built_in_varying_array_out_of_bounds/built_in_varying_array_out_of_bounds_001_to_001.html >new file mode 100644 >index 00000000000..81fa7a6cd31 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/built_in_varying_array_out_of_bounds/built_in_varying_array_out_of_bounds_001_to_001.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for built_in_varying_array_out_of_bounds_001_to_001.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/built_in_varying_array_out_of_bounds/built_in_varying_array_out_of_bounds_001_to_001.html">../../../../resources/webgl_test_files/conformance/ogles/GL/built_in_varying_array_out_of_bounds/built_in_varying_array_out_of_bounds_001_to_001.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/built_in_varying_array_out_of_bounds/built_in_varying_array_out_of_bounds_001_to_001.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/ceil/ceil_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/ceil/ceil_001_to_006-expected.txt >new file mode 100644 >index 00000000000..6052c1d32a0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/ceil/ceil_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/ceil/ceil_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/ceil/ceil_001_to_006.html >new file mode 100644 >index 00000000000..1b20af92d7f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/ceil/ceil_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for ceil_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/clamp/clamp_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/clamp/clamp_001_to_006-expected.txt >new file mode 100644 >index 00000000000..e61621b9d0e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/clamp/clamp_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/clamp/clamp_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/clamp/clamp_001_to_006.html >new file mode 100644 >index 00000000000..45c45b44dd6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/clamp/clamp_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for clamp_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/control_flow/control_flow_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/control_flow/control_flow_001_to_008-expected.txt >new file mode 100644 >index 00000000000..08c75535d21 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/control_flow/control_flow_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/control_flow/control_flow_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/control_flow/control_flow_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/control_flow/control_flow_001_to_008.html >new file mode 100644 >index 00000000000..ee5ed49834a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/control_flow/control_flow_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for control_flow_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/control_flow/control_flow_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/control_flow/control_flow_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/control_flow/control_flow_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/control_flow/control_flow_009_to_010-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/control_flow/control_flow_009_to_010-expected.txt >new file mode 100644 >index 00000000000..4792aa317e0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/control_flow/control_flow_009_to_010-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/control_flow/control_flow_009_to_010.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/control_flow/control_flow_009_to_010.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/control_flow/control_flow_009_to_010.html >new file mode 100644 >index 00000000000..6d07f97322d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/control_flow/control_flow_009_to_010.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for control_flow_009_to_010.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/control_flow/control_flow_009_to_010.html">../../../../resources/webgl_test_files/conformance/ogles/GL/control_flow/control_flow_009_to_010.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/control_flow/control_flow_009_to_010.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/cos/cos_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/cos/cos_001_to_006-expected.txt >new file mode 100644 >index 00000000000..300864dec00 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/cos/cos_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/cos/cos_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/cos/cos_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/cos/cos_001_to_006.html >new file mode 100644 >index 00000000000..26acc0c9389 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/cos/cos_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cos_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/cos/cos_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/cos/cos_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/cos/cos_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/cross/cross_001_to_002-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/cross/cross_001_to_002-expected.txt >new file mode 100644 >index 00000000000..e3a1ee63ab1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/cross/cross_001_to_002-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/cross/cross_001_to_002.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/cross/cross_001_to_002.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/cross/cross_001_to_002.html >new file mode 100644 >index 00000000000..6bf3f3ef84b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/cross/cross_001_to_002.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cross_001_to_002.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/cross/cross_001_to_002.html">../../../../resources/webgl_test_files/conformance/ogles/GL/cross/cross_001_to_002.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/cross/cross_001_to_002.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/default/default_001_to_001-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/default/default_001_to_001-expected.txt >new file mode 100644 >index 00000000000..696e7e741a1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/default/default_001_to_001-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/default/default_001_to_001.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/default/default_001_to_001.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/default/default_001_to_001.html >new file mode 100644 >index 00000000000..380076678be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/default/default_001_to_001.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for default_001_to_001.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/default/default_001_to_001.html">../../../../resources/webgl_test_files/conformance/ogles/GL/default/default_001_to_001.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/default/default_001_to_001.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/degrees/degrees_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/degrees/degrees_001_to_006-expected.txt >new file mode 100644 >index 00000000000..b2c2629bb57 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/degrees/degrees_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/degrees/degrees_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/degrees/degrees_001_to_006.html >new file mode 100644 >index 00000000000..f93bb001dbb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/degrees/degrees_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for degrees_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/discard/discard_001_to_002-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/discard/discard_001_to_002-expected.txt >new file mode 100644 >index 00000000000..e9bf60e0444 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/discard/discard_001_to_002-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/discard/discard_001_to_002.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/discard/discard_001_to_002.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/discard/discard_001_to_002.html >new file mode 100644 >index 00000000000..75dfe9d2aa1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/discard/discard_001_to_002.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for discard_001_to_002.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/discard/discard_001_to_002.html">../../../../resources/webgl_test_files/conformance/ogles/GL/discard/discard_001_to_002.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/discard/discard_001_to_002.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/distance/distance_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/distance/distance_001_to_006-expected.txt >new file mode 100644 >index 00000000000..80231f42def >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/distance/distance_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/distance/distance_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/distance/distance_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/distance/distance_001_to_006.html >new file mode 100644 >index 00000000000..e8c8dbc6686 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/distance/distance_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for distance_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/distance/distance_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/distance/distance_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/distance/distance_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/dot/dot_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/dot/dot_001_to_006-expected.txt >new file mode 100644 >index 00000000000..c16a8cd5d7c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/dot/dot_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/dot/dot_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/dot/dot_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/dot/dot_001_to_006.html >new file mode 100644 >index 00000000000..aae892b9463 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/dot/dot_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for dot_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/dot/dot_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/dot/dot_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/dot/dot_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/equal/equal_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/equal/equal_001_to_008-expected.txt >new file mode 100644 >index 00000000000..1062fcda5cf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/equal/equal_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/equal/equal_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/equal/equal_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/equal/equal_001_to_008.html >new file mode 100644 >index 00000000000..67274a802ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/equal/equal_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for equal_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/equal/equal_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/equal/equal_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/equal/equal_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/equal/equal_009_to_012-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/equal/equal_009_to_012-expected.txt >new file mode 100644 >index 00000000000..37cf22c44d7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/equal/equal_009_to_012-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/equal/equal_009_to_012.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/equal/equal_009_to_012.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/equal/equal_009_to_012.html >new file mode 100644 >index 00000000000..a93a3c31939 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/equal/equal_009_to_012.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for equal_009_to_012.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/equal/equal_009_to_012.html">../../../../resources/webgl_test_files/conformance/ogles/GL/equal/equal_009_to_012.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/equal/equal_009_to_012.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp/exp_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp/exp_001_to_008-expected.txt >new file mode 100644 >index 00000000000..50003bc1e79 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp/exp_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/exp/exp_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp/exp_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp/exp_001_to_008.html >new file mode 100644 >index 00000000000..cd7cc835af6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp/exp_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for exp_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/exp/exp_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/exp/exp_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/exp/exp_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp/exp_009_to_012-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp/exp_009_to_012-expected.txt >new file mode 100644 >index 00000000000..e6e0485a766 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp/exp_009_to_012-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/exp/exp_009_to_012.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp/exp_009_to_012.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp/exp_009_to_012.html >new file mode 100644 >index 00000000000..59b1a095294 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp/exp_009_to_012.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for exp_009_to_012.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/exp/exp_009_to_012.html">../../../../resources/webgl_test_files/conformance/ogles/GL/exp/exp_009_to_012.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/exp/exp_009_to_012.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp2/exp2_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp2/exp2_001_to_008-expected.txt >new file mode 100644 >index 00000000000..ff16b4e276c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp2/exp2_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp2/exp2_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp2/exp2_001_to_008.html >new file mode 100644 >index 00000000000..f82810bb237 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp2/exp2_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for exp2_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp2/exp2_009_to_012-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp2/exp2_009_to_012-expected.txt >new file mode 100644 >index 00000000000..ddf3c4038b1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp2/exp2_009_to_012-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_009_to_012.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp2/exp2_009_to_012.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp2/exp2_009_to_012.html >new file mode 100644 >index 00000000000..53dafa4c483 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/exp2/exp2_009_to_012.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for exp2_009_to_012.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_009_to_012.html">../../../../resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_009_to_012.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_009_to_012.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/faceforward/faceforward_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/faceforward/faceforward_001_to_006-expected.txt >new file mode 100644 >index 00000000000..5b0b6526931 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/faceforward/faceforward_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/faceforward/faceforward_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/faceforward/faceforward_001_to_006.html >new file mode 100644 >index 00000000000..959fc16e608 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/faceforward/faceforward_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for faceforward_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/floor/floor_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/floor/floor_001_to_006-expected.txt >new file mode 100644 >index 00000000000..90768436bf9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/floor/floor_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/floor/floor_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/floor/floor_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/floor/floor_001_to_006.html >new file mode 100644 >index 00000000000..1aa8d23f8ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/floor/floor_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for floor_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/floor/floor_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/floor/floor_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/floor/floor_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/fract/fract_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/fract/fract_001_to_006-expected.txt >new file mode 100644 >index 00000000000..94ffa3c5b04 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/fract/fract_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/fract/fract_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/fract/fract_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/fract/fract_001_to_006.html >new file mode 100644 >index 00000000000..7c9d9bcfc86 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/fract/fract_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for fract_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/fract/fract_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/fract/fract_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/fract/fract_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_001_to_008-expected.txt >new file mode 100644 >index 00000000000..dee7d5176ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_001_to_008.html >new file mode 100644 >index 00000000000..543ff9499f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_009_to_016-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_009_to_016-expected.txt >new file mode 100644 >index 00000000000..099dd6064f9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_009_to_016-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_009_to_016.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_009_to_016.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_009_to_016.html >new file mode 100644 >index 00000000000..bb7571bded7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_009_to_016.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions_009_to_016.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_009_to_016.html">../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_009_to_016.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_009_to_016.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_017_to_024-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_017_to_024-expected.txt >new file mode 100644 >index 00000000000..60c088d3fdf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_017_to_024-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_017_to_024.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_017_to_024.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_017_to_024.html >new file mode 100644 >index 00000000000..d2e8b781485 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_017_to_024.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions_017_to_024.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_017_to_024.html">../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_017_to_024.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_017_to_024.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_025_to_032-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_025_to_032-expected.txt >new file mode 100644 >index 00000000000..bbd5a1deda7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_025_to_032-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_025_to_032.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_025_to_032.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_025_to_032.html >new file mode 100644 >index 00000000000..6ab65362732 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_025_to_032.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions_025_to_032.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_025_to_032.html">../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_025_to_032.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_025_to_032.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_033_to_040-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_033_to_040-expected.txt >new file mode 100644 >index 00000000000..89158af7899 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_033_to_040-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_033_to_040.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_033_to_040.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_033_to_040.html >new file mode 100644 >index 00000000000..93e35632946 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_033_to_040.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions_033_to_040.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_033_to_040.html">../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_033_to_040.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_033_to_040.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_041_to_048-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_041_to_048-expected.txt >new file mode 100644 >index 00000000000..3bc52861e99 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_041_to_048-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_041_to_048.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_041_to_048.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_041_to_048.html >new file mode 100644 >index 00000000000..27967149580 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_041_to_048.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions_041_to_048.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_041_to_048.html">../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_041_to_048.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_041_to_048.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_049_to_056-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_049_to_056-expected.txt >new file mode 100644 >index 00000000000..e3429003d96 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_049_to_056-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_049_to_056.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_049_to_056.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_049_to_056.html >new file mode 100644 >index 00000000000..7b12250cc0f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_049_to_056.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions_049_to_056.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_049_to_056.html">../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_049_to_056.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_049_to_056.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_057_to_064-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_057_to_064-expected.txt >new file mode 100644 >index 00000000000..524305206d8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_057_to_064-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_057_to_064.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_057_to_064.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_057_to_064.html >new file mode 100644 >index 00000000000..e7e25746490 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_057_to_064.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions_057_to_064.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_057_to_064.html">../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_057_to_064.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_057_to_064.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_065_to_072-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_065_to_072-expected.txt >new file mode 100644 >index 00000000000..d5387d5b889 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_065_to_072-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_065_to_072.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_065_to_072.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_065_to_072.html >new file mode 100644 >index 00000000000..68511ba4f9c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_065_to_072.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions_065_to_072.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_065_to_072.html">../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_065_to_072.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_065_to_072.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_073_to_080-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_073_to_080-expected.txt >new file mode 100644 >index 00000000000..0c02bf4821e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_073_to_080-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_073_to_080.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_073_to_080.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_073_to_080.html >new file mode 100644 >index 00000000000..0b30c16ec7e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_073_to_080.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions_073_to_080.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_073_to_080.html">../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_073_to_080.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_073_to_080.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_081_to_088-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_081_to_088-expected.txt >new file mode 100644 >index 00000000000..05f6018dcf7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_081_to_088-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_081_to_088.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_081_to_088.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_081_to_088.html >new file mode 100644 >index 00000000000..7a69d48ca42 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_081_to_088.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions_081_to_088.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_081_to_088.html">../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_081_to_088.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_081_to_088.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_089_to_096-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_089_to_096-expected.txt >new file mode 100644 >index 00000000000..0f0cb2ae957 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_089_to_096-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_089_to_096.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_089_to_096.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_089_to_096.html >new file mode 100644 >index 00000000000..64d03eda0bb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_089_to_096.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions_089_to_096.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_089_to_096.html">../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_089_to_096.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_089_to_096.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_097_to_104-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_097_to_104-expected.txt >new file mode 100644 >index 00000000000..29ae1a9fe20 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_097_to_104-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_097_to_104.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_097_to_104.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_097_to_104.html >new file mode 100644 >index 00000000000..d8f11428fb6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_097_to_104.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions_097_to_104.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_097_to_104.html">../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_097_to_104.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_097_to_104.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_105_to_112-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_105_to_112-expected.txt >new file mode 100644 >index 00000000000..11515109fba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_105_to_112-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_105_to_112.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_105_to_112.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_105_to_112.html >new file mode 100644 >index 00000000000..9d13293afae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_105_to_112.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions_105_to_112.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_105_to_112.html">../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_105_to_112.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_105_to_112.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_113_to_120-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_113_to_120-expected.txt >new file mode 100644 >index 00000000000..4acb86908b0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_113_to_120-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_113_to_120.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_113_to_120.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_113_to_120.html >new file mode 100644 >index 00000000000..e964aa3e54e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_113_to_120.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions_113_to_120.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_113_to_120.html">../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_113_to_120.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_113_to_120.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_121_to_126-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_121_to_126-expected.txt >new file mode 100644 >index 00000000000..9ac4dfb9f57 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_121_to_126-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_121_to_126.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_121_to_126.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_121_to_126.html >new file mode 100644 >index 00000000000..fa944bf66dc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/functions/functions_121_to_126.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions_121_to_126.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_121_to_126.html">../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_121_to_126.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/functions/functions_121_to_126.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_001_to_003-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_001_to_003-expected.txt >new file mode 100644 >index 00000000000..c72dd69a29c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_001_to_003-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_001_to_003.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_001_to_003.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_001_to_003.html >new file mode 100644 >index 00000000000..531920186a4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_001_to_003.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl_FragCoord_001_to_003.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_001_to_003.html">../../../../resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_001_to_003.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_001_to_003.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/gl_FrontFacing/gl_FrontFacing_001_to_001-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/gl_FrontFacing/gl_FrontFacing_001_to_001-expected.txt >new file mode 100644 >index 00000000000..64a469d9e83 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/gl_FrontFacing/gl_FrontFacing_001_to_001-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/gl_FrontFacing/gl_FrontFacing_001_to_001.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/gl_FrontFacing/gl_FrontFacing_001_to_001.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/gl_FrontFacing/gl_FrontFacing_001_to_001.html >new file mode 100644 >index 00000000000..e2d6debe3b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/gl_FrontFacing/gl_FrontFacing_001_to_001.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl_FrontFacing_001_to_001.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/gl_FrontFacing/gl_FrontFacing_001_to_001.html">../../../../resources/webgl_test_files/conformance/ogles/GL/gl_FrontFacing/gl_FrontFacing_001_to_001.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/gl_FrontFacing/gl_FrontFacing_001_to_001.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/greaterThan/greaterThan_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/greaterThan/greaterThan_001_to_008-expected.txt >new file mode 100644 >index 00000000000..460457a282f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/greaterThan/greaterThan_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/greaterThan/greaterThan_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/greaterThan/greaterThan_001_to_008.html >new file mode 100644 >index 00000000000..3431dc44eef >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/greaterThan/greaterThan_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for greaterThan_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/greaterThanEqual/greaterThanEqual_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/greaterThanEqual/greaterThanEqual_001_to_008-expected.txt >new file mode 100644 >index 00000000000..fcc28125d9b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/greaterThanEqual/greaterThanEqual_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/greaterThanEqual/greaterThanEqual_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/greaterThanEqual/greaterThanEqual_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/greaterThanEqual/greaterThanEqual_001_to_008.html >new file mode 100644 >index 00000000000..f8356f55837 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/greaterThanEqual/greaterThanEqual_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for greaterThanEqual_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/greaterThanEqual/greaterThanEqual_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/greaterThanEqual/greaterThanEqual_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/greaterThanEqual/greaterThanEqual_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/inversesqrt/inversesqrt_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/inversesqrt/inversesqrt_001_to_006-expected.txt >new file mode 100644 >index 00000000000..843ccf1756d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/inversesqrt/inversesqrt_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/inversesqrt/inversesqrt_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/inversesqrt/inversesqrt_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/inversesqrt/inversesqrt_001_to_006.html >new file mode 100644 >index 00000000000..eb0c067a3d3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/inversesqrt/inversesqrt_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for inversesqrt_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/inversesqrt/inversesqrt_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/inversesqrt/inversesqrt_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/inversesqrt/inversesqrt_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/length/length_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/length/length_001_to_006-expected.txt >new file mode 100644 >index 00000000000..6bd50b11700 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/length/length_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/length/length_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/length/length_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/length/length_001_to_006.html >new file mode 100644 >index 00000000000..d28aaed871e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/length/length_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for length_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/length/length_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/length/length_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/length/length_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/lessThan/lessThan_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/lessThan/lessThan_001_to_008-expected.txt >new file mode 100644 >index 00000000000..851fd95ef8b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/lessThan/lessThan_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/lessThan/lessThan_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/lessThan/lessThan_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/lessThan/lessThan_001_to_008.html >new file mode 100644 >index 00000000000..7165db96009 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/lessThan/lessThan_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for lessThan_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/lessThan/lessThan_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/lessThan/lessThan_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/lessThan/lessThan_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/lessThanEqual/lessThanEqual_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/lessThanEqual/lessThanEqual_001_to_008-expected.txt >new file mode 100644 >index 00000000000..1f8d061bf90 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/lessThanEqual/lessThanEqual_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/lessThanEqual/lessThanEqual_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/lessThanEqual/lessThanEqual_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/lessThanEqual/lessThanEqual_001_to_008.html >new file mode 100644 >index 00000000000..1b52c363296 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/lessThanEqual/lessThanEqual_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for lessThanEqual_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/lessThanEqual/lessThanEqual_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/lessThanEqual/lessThanEqual_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/lessThanEqual/lessThanEqual_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log/log_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log/log_001_to_008-expected.txt >new file mode 100644 >index 00000000000..05add113951 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log/log_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/log/log_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log/log_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log/log_001_to_008.html >new file mode 100644 >index 00000000000..9c798c3f308 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log/log_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for log_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/log/log_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/log/log_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/log/log_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log/log_009_to_012-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log/log_009_to_012-expected.txt >new file mode 100644 >index 00000000000..ea83d156596 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log/log_009_to_012-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/log/log_009_to_012.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log/log_009_to_012.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log/log_009_to_012.html >new file mode 100644 >index 00000000000..9089f77e939 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log/log_009_to_012.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for log_009_to_012.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/log/log_009_to_012.html">../../../../resources/webgl_test_files/conformance/ogles/GL/log/log_009_to_012.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/log/log_009_to_012.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log2/log2_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log2/log2_001_to_008-expected.txt >new file mode 100644 >index 00000000000..280ea5c3c54 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log2/log2_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/log2/log2_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log2/log2_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log2/log2_001_to_008.html >new file mode 100644 >index 00000000000..8b0e3b40be2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log2/log2_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for log2_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/log2/log2_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/log2/log2_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/log2/log2_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log2/log2_009_to_012-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log2/log2_009_to_012-expected.txt >new file mode 100644 >index 00000000000..de53d21bd96 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log2/log2_009_to_012-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/log2/log2_009_to_012.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log2/log2_009_to_012.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log2/log2_009_to_012.html >new file mode 100644 >index 00000000000..b0443ca59c9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/log2/log2_009_to_012.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for log2_009_to_012.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/log2/log2_009_to_012.html">../../../../resources/webgl_test_files/conformance/ogles/GL/log2/log2_009_to_012.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/log2/log2_009_to_012.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_001_to_008-expected.txt >new file mode 100644 >index 00000000000..2af50877f10 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_001_to_008.html >new file mode 100644 >index 00000000000..61289b24747 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mat_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_009_to_016-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_009_to_016-expected.txt >new file mode 100644 >index 00000000000..f0cd2d59f1f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_009_to_016-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_009_to_016.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_009_to_016.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_009_to_016.html >new file mode 100644 >index 00000000000..130484c1c25 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_009_to_016.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mat_009_to_016.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_009_to_016.html">../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_009_to_016.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_009_to_016.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_017_to_024-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_017_to_024-expected.txt >new file mode 100644 >index 00000000000..572a6faf870 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_017_to_024-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_017_to_024.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_017_to_024.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_017_to_024.html >new file mode 100644 >index 00000000000..f0640d0f73d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_017_to_024.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mat_017_to_024.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_017_to_024.html">../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_017_to_024.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_017_to_024.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_025_to_032-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_025_to_032-expected.txt >new file mode 100644 >index 00000000000..daf35f74ef9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_025_to_032-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_025_to_032.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_025_to_032.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_025_to_032.html >new file mode 100644 >index 00000000000..644323523d0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_025_to_032.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mat_025_to_032.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_025_to_032.html">../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_025_to_032.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_025_to_032.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_033_to_040-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_033_to_040-expected.txt >new file mode 100644 >index 00000000000..fad5452b34f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_033_to_040-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_033_to_040.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_033_to_040.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_033_to_040.html >new file mode 100644 >index 00000000000..8bcceaa5e2b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_033_to_040.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mat_033_to_040.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_033_to_040.html">../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_033_to_040.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_033_to_040.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_041_to_046-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_041_to_046-expected.txt >new file mode 100644 >index 00000000000..d6549798202 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_041_to_046-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_041_to_046.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_041_to_046.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_041_to_046.html >new file mode 100644 >index 00000000000..cd274562b08 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat/mat_041_to_046.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mat_041_to_046.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_041_to_046.html">../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_041_to_046.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/mat/mat_041_to_046.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat3/mat3_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat3/mat3_001_to_006-expected.txt >new file mode 100644 >index 00000000000..701198be3cc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat3/mat3_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/mat3/mat3_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat3/mat3_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat3/mat3_001_to_006.html >new file mode 100644 >index 00000000000..c94f9893c6c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mat3/mat3_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mat3_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/mat3/mat3_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/mat3/mat3_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/mat3/mat3_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/matrixCompMult/matrixCompMult_001_to_004-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/matrixCompMult/matrixCompMult_001_to_004-expected.txt >new file mode 100644 >index 00000000000..7dd4bedf072 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/matrixCompMult/matrixCompMult_001_to_004-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/matrixCompMult/matrixCompMult_001_to_004.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/matrixCompMult/matrixCompMult_001_to_004.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/matrixCompMult/matrixCompMult_001_to_004.html >new file mode 100644 >index 00000000000..e4408761059 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/matrixCompMult/matrixCompMult_001_to_004.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for matrixCompMult_001_to_004.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/matrixCompMult/matrixCompMult_001_to_004.html">../../../../resources/webgl_test_files/conformance/ogles/GL/matrixCompMult/matrixCompMult_001_to_004.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/matrixCompMult/matrixCompMult_001_to_004.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/max/max_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/max/max_001_to_006-expected.txt >new file mode 100644 >index 00000000000..2295eb2f67f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/max/max_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/max/max_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/max/max_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/max/max_001_to_006.html >new file mode 100644 >index 00000000000..947dd78cdb7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/max/max_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for max_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/max/max_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/max/max_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/max/max_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/min/min_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/min/min_001_to_006-expected.txt >new file mode 100644 >index 00000000000..0618fcf02f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/min/min_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/min/min_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/min/min_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/min/min_001_to_006.html >new file mode 100644 >index 00000000000..9d9a9738afd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/min/min_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for min_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/min/min_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/min/min_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/min/min_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mix/mix_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mix/mix_001_to_006-expected.txt >new file mode 100644 >index 00000000000..e3af7b42a55 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mix/mix_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/mix/mix_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mix/mix_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mix/mix_001_to_006.html >new file mode 100644 >index 00000000000..783a21bb5ed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mix/mix_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mix_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/mix/mix_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/mix/mix_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/mix/mix_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mod/mod_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mod/mod_001_to_008-expected.txt >new file mode 100644 >index 00000000000..22d6ffaefe5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mod/mod_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/mod/mod_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mod/mod_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mod/mod_001_to_008.html >new file mode 100644 >index 00000000000..a08a865c8aa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/mod/mod_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mod_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/mod/mod_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/mod/mod_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/mod/mod_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/normalize/normalize_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/normalize/normalize_001_to_006-expected.txt >new file mode 100644 >index 00000000000..3d990fabc4c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/normalize/normalize_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/normalize/normalize_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/normalize/normalize_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/normalize/normalize_001_to_006.html >new file mode 100644 >index 00000000000..1372da792c3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/normalize/normalize_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for normalize_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/normalize/normalize_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/normalize/normalize_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/normalize/normalize_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/not/not_001_to_004-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/not/not_001_to_004-expected.txt >new file mode 100644 >index 00000000000..48e6c0ca19a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/not/not_001_to_004-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/not/not_001_to_004.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/not/not_001_to_004.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/not/not_001_to_004.html >new file mode 100644 >index 00000000000..76b97b563ac >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/not/not_001_to_004.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for not_001_to_004.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/not/not_001_to_004.html">../../../../resources/webgl_test_files/conformance/ogles/GL/not/not_001_to_004.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/not/not_001_to_004.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/notEqual/notEqual_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/notEqual/notEqual_001_to_008-expected.txt >new file mode 100644 >index 00000000000..b384da8168e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/notEqual/notEqual_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/notEqual/notEqual_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/notEqual/notEqual_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/notEqual/notEqual_001_to_008.html >new file mode 100644 >index 00000000000..77d33def145 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/notEqual/notEqual_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for notEqual_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/notEqual/notEqual_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/notEqual/notEqual_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/notEqual/notEqual_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/notEqual/notEqual_009_to_012-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/notEqual/notEqual_009_to_012-expected.txt >new file mode 100644 >index 00000000000..c87a30d110e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/notEqual/notEqual_009_to_012-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/notEqual/notEqual_009_to_012.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/notEqual/notEqual_009_to_012.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/notEqual/notEqual_009_to_012.html >new file mode 100644 >index 00000000000..6776e73f76a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/notEqual/notEqual_009_to_012.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for notEqual_009_to_012.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/notEqual/notEqual_009_to_012.html">../../../../resources/webgl_test_files/conformance/ogles/GL/notEqual/notEqual_009_to_012.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/notEqual/notEqual_009_to_012.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_001_to_008-expected.txt >new file mode 100644 >index 00000000000..baf3ac15d13 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/operators/operators_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_001_to_008.html >new file mode 100644 >index 00000000000..ffca82a07a4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for operators_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/operators/operators_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/operators/operators_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/operators/operators_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_009_to_016-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_009_to_016-expected.txt >new file mode 100644 >index 00000000000..151a0e15cb6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_009_to_016-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/operators/operators_009_to_016.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_009_to_016.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_009_to_016.html >new file mode 100644 >index 00000000000..08b06ab69be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_009_to_016.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for operators_009_to_016.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/operators/operators_009_to_016.html">../../../../resources/webgl_test_files/conformance/ogles/GL/operators/operators_009_to_016.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/operators/operators_009_to_016.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_017_to_024-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_017_to_024-expected.txt >new file mode 100644 >index 00000000000..bb87ca98985 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_017_to_024-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/operators/operators_017_to_024.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_017_to_024.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_017_to_024.html >new file mode 100644 >index 00000000000..14b5f7930c1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_017_to_024.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for operators_017_to_024.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/operators/operators_017_to_024.html">../../../../resources/webgl_test_files/conformance/ogles/GL/operators/operators_017_to_024.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/operators/operators_017_to_024.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_025_to_026-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_025_to_026-expected.txt >new file mode 100644 >index 00000000000..73b0acd1585 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_025_to_026-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/operators/operators_025_to_026.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_025_to_026.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_025_to_026.html >new file mode 100644 >index 00000000000..9fff7b2319f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/operators/operators_025_to_026.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for operators_025_to_026.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/operators/operators_025_to_026.html">../../../../resources/webgl_test_files/conformance/ogles/GL/operators/operators_025_to_026.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/operators/operators_025_to_026.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/pow/pow_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/pow/pow_001_to_008-expected.txt >new file mode 100644 >index 00000000000..2b8f2f0197c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/pow/pow_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/pow/pow_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/pow/pow_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/pow/pow_001_to_008.html >new file mode 100644 >index 00000000000..d7c3337d05b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/pow/pow_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for pow_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/pow/pow_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/pow/pow_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/pow/pow_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/pow/pow_009_to_016-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/pow/pow_009_to_016-expected.txt >new file mode 100644 >index 00000000000..70cfb562706 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/pow/pow_009_to_016-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/pow/pow_009_to_016.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/pow/pow_009_to_016.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/pow/pow_009_to_016.html >new file mode 100644 >index 00000000000..3dfb9334e04 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/pow/pow_009_to_016.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for pow_009_to_016.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/pow/pow_009_to_016.html">../../../../resources/webgl_test_files/conformance/ogles/GL/pow/pow_009_to_016.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/pow/pow_009_to_016.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/pow/pow_017_to_024-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/pow/pow_017_to_024-expected.txt >new file mode 100644 >index 00000000000..241829b54c6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/pow/pow_017_to_024-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/pow/pow_017_to_024.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/pow/pow_017_to_024.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/pow/pow_017_to_024.html >new file mode 100644 >index 00000000000..d6c93c32f46 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/pow/pow_017_to_024.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for pow_017_to_024.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/pow/pow_017_to_024.html">../../../../resources/webgl_test_files/conformance/ogles/GL/pow/pow_017_to_024.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/pow/pow_017_to_024.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/radians/radians_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/radians/radians_001_to_006-expected.txt >new file mode 100644 >index 00000000000..52d285accd3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/radians/radians_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/radians/radians_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/radians/radians_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/radians/radians_001_to_006.html >new file mode 100644 >index 00000000000..e915ecbe6e0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/radians/radians_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for radians_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/radians/radians_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/radians/radians_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/radians/radians_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/reflect/reflect_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/reflect/reflect_001_to_006-expected.txt >new file mode 100644 >index 00000000000..b49348c9279 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/reflect/reflect_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/reflect/reflect_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/reflect/reflect_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/reflect/reflect_001_to_006.html >new file mode 100644 >index 00000000000..f72a4c203df >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/reflect/reflect_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for reflect_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/reflect/reflect_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/reflect/reflect_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/reflect/reflect_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/refract/refract_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/refract/refract_001_to_006-expected.txt >new file mode 100644 >index 00000000000..7e0ca9780e6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/refract/refract_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/refract/refract_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/refract/refract_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/refract/refract_001_to_006.html >new file mode 100644 >index 00000000000..e91b6c31066 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/refract/refract_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for refract_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/refract/refract_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/refract/refract_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/refract/refract_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/sign/sign_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/sign/sign_001_to_006-expected.txt >new file mode 100644 >index 00000000000..cde1385a6ab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/sign/sign_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/sign/sign_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/sign/sign_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/sign/sign_001_to_006.html >new file mode 100644 >index 00000000000..a386379ef49 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/sign/sign_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sign_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/sign/sign_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/sign/sign_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/sign/sign_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/sin/sin_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/sin/sin_001_to_006-expected.txt >new file mode 100644 >index 00000000000..9c9b399e747 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/sin/sin_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/sin/sin_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/sin/sin_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/sin/sin_001_to_006.html >new file mode 100644 >index 00000000000..4f1e16305d8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/sin/sin_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sin_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/sin/sin_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/sin/sin_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/sin/sin_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/smoothstep/smoothstep_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/smoothstep/smoothstep_001_to_006-expected.txt >new file mode 100644 >index 00000000000..52e1f65e2a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/smoothstep/smoothstep_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/smoothstep/smoothstep_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/smoothstep/smoothstep_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/smoothstep/smoothstep_001_to_006.html >new file mode 100644 >index 00000000000..67f9b925946 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/smoothstep/smoothstep_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for smoothstep_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/smoothstep/smoothstep_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/smoothstep/smoothstep_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/smoothstep/smoothstep_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/sqrt/sqrt_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/sqrt/sqrt_001_to_006-expected.txt >new file mode 100644 >index 00000000000..308ef128139 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/sqrt/sqrt_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/sqrt/sqrt_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/sqrt/sqrt_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/sqrt/sqrt_001_to_006.html >new file mode 100644 >index 00000000000..9643bb135e6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/sqrt/sqrt_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sqrt_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/sqrt/sqrt_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/sqrt/sqrt_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/sqrt/sqrt_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/step/step_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/step/step_001_to_006-expected.txt >new file mode 100644 >index 00000000000..ece57250e04 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/step/step_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/step/step_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/step/step_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/step/step_001_to_006.html >new file mode 100644 >index 00000000000..c1326b3391e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/step/step_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for step_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/step/step_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/step/step_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/step/step_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_001_to_008-expected.txt >new file mode 100644 >index 00000000000..94da351630a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_001_to_008.html >new file mode 100644 >index 00000000000..c64e4d244fb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for struct_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_009_to_016-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_009_to_016-expected.txt >new file mode 100644 >index 00000000000..3ae8dc8898f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_009_to_016-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_009_to_016.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_009_to_016.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_009_to_016.html >new file mode 100644 >index 00000000000..a7d2820763f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_009_to_016.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for struct_009_to_016.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_009_to_016.html">../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_009_to_016.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_009_to_016.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_017_to_024-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_017_to_024-expected.txt >new file mode 100644 >index 00000000000..0be637db9a9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_017_to_024-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_017_to_024.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_017_to_024.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_017_to_024.html >new file mode 100644 >index 00000000000..b043966ae78 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_017_to_024.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for struct_017_to_024.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_017_to_024.html">../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_017_to_024.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_017_to_024.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_025_to_032-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_025_to_032-expected.txt >new file mode 100644 >index 00000000000..ac8c310833b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_025_to_032-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_025_to_032.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_025_to_032.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_025_to_032.html >new file mode 100644 >index 00000000000..4e545801679 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_025_to_032.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for struct_025_to_032.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_025_to_032.html">../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_025_to_032.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_025_to_032.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_033_to_040-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_033_to_040-expected.txt >new file mode 100644 >index 00000000000..5bc2a042e38 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_033_to_040-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_033_to_040.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_033_to_040.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_033_to_040.html >new file mode 100644 >index 00000000000..936c443929e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_033_to_040.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for struct_033_to_040.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_033_to_040.html">../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_033_to_040.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_033_to_040.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_041_to_048-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_041_to_048-expected.txt >new file mode 100644 >index 00000000000..51537f7470e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_041_to_048-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_041_to_048.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_041_to_048.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_041_to_048.html >new file mode 100644 >index 00000000000..fda246c4140 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_041_to_048.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for struct_041_to_048.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_041_to_048.html">../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_041_to_048.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_041_to_048.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_049_to_056-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_049_to_056-expected.txt >new file mode 100644 >index 00000000000..9584e39bfd9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_049_to_056-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_049_to_056.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_049_to_056.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_049_to_056.html >new file mode 100644 >index 00000000000..331f9e9e0fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/struct/struct_049_to_056.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for struct_049_to_056.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_049_to_056.html">../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_049_to_056.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/struct/struct_049_to_056.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_001_to_008-expected.txt >new file mode 100644 >index 00000000000..739ee3353b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_001_to_008.html >new file mode 100644 >index 00000000000..62e46a1af6a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for swizzlers_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_009_to_016-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_009_to_016-expected.txt >new file mode 100644 >index 00000000000..087a77f0b9b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_009_to_016-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_009_to_016.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_009_to_016.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_009_to_016.html >new file mode 100644 >index 00000000000..6b5388e8320 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_009_to_016.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for swizzlers_009_to_016.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_009_to_016.html">../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_009_to_016.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_009_to_016.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_017_to_024-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_017_to_024-expected.txt >new file mode 100644 >index 00000000000..62b8c92e1f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_017_to_024-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_017_to_024.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_017_to_024.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_017_to_024.html >new file mode 100644 >index 00000000000..947acaaa078 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_017_to_024.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for swizzlers_017_to_024.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_017_to_024.html">../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_017_to_024.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_017_to_024.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_025_to_032-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_025_to_032-expected.txt >new file mode 100644 >index 00000000000..81187be057f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_025_to_032-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_025_to_032.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_025_to_032.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_025_to_032.html >new file mode 100644 >index 00000000000..30d923ac24e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_025_to_032.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for swizzlers_025_to_032.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_025_to_032.html">../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_025_to_032.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_025_to_032.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_033_to_040-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_033_to_040-expected.txt >new file mode 100644 >index 00000000000..78ff8a7a02d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_033_to_040-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_033_to_040.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_033_to_040.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_033_to_040.html >new file mode 100644 >index 00000000000..4f45cf4e9f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_033_to_040.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for swizzlers_033_to_040.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_033_to_040.html">../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_033_to_040.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_033_to_040.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_041_to_048-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_041_to_048-expected.txt >new file mode 100644 >index 00000000000..c4abd4ca2e6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_041_to_048-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_041_to_048.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_041_to_048.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_041_to_048.html >new file mode 100644 >index 00000000000..874c59d52a4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_041_to_048.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for swizzlers_041_to_048.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_041_to_048.html">../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_041_to_048.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_041_to_048.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_049_to_056-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_049_to_056-expected.txt >new file mode 100644 >index 00000000000..c63c48dca07 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_049_to_056-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_049_to_056.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_049_to_056.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_049_to_056.html >new file mode 100644 >index 00000000000..8cc84118e2f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_049_to_056.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for swizzlers_049_to_056.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_049_to_056.html">../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_049_to_056.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_049_to_056.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_057_to_064-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_057_to_064-expected.txt >new file mode 100644 >index 00000000000..50b88bf2394 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_057_to_064-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_057_to_064.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_057_to_064.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_057_to_064.html >new file mode 100644 >index 00000000000..6ab2cb8a538 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_057_to_064.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for swizzlers_057_to_064.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_057_to_064.html">../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_057_to_064.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_057_to_064.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_065_to_072-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_065_to_072-expected.txt >new file mode 100644 >index 00000000000..4cccbcaed23 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_065_to_072-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_065_to_072.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_065_to_072.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_065_to_072.html >new file mode 100644 >index 00000000000..be01943161e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_065_to_072.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for swizzlers_065_to_072.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_065_to_072.html">../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_065_to_072.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_065_to_072.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_073_to_080-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_073_to_080-expected.txt >new file mode 100644 >index 00000000000..9751ce934f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_073_to_080-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_073_to_080.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_073_to_080.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_073_to_080.html >new file mode 100644 >index 00000000000..745ce1a8c9d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_073_to_080.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for swizzlers_073_to_080.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_073_to_080.html">../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_073_to_080.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_073_to_080.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_081_to_088-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_081_to_088-expected.txt >new file mode 100644 >index 00000000000..80da6cfb582 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_081_to_088-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_081_to_088.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_081_to_088.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_081_to_088.html >new file mode 100644 >index 00000000000..9524631d10d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_081_to_088.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for swizzlers_081_to_088.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_081_to_088.html">../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_081_to_088.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_081_to_088.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_089_to_096-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_089_to_096-expected.txt >new file mode 100644 >index 00000000000..ccdac0053fe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_089_to_096-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_089_to_096.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_089_to_096.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_089_to_096.html >new file mode 100644 >index 00000000000..7069718b699 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_089_to_096.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for swizzlers_089_to_096.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_089_to_096.html">../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_089_to_096.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_089_to_096.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_097_to_104-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_097_to_104-expected.txt >new file mode 100644 >index 00000000000..3d80cda86cb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_097_to_104-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_097_to_104.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_097_to_104.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_097_to_104.html >new file mode 100644 >index 00000000000..3ced2d62bfc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_097_to_104.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for swizzlers_097_to_104.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_097_to_104.html">../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_097_to_104.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_097_to_104.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_105_to_112-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_105_to_112-expected.txt >new file mode 100644 >index 00000000000..efce784077d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_105_to_112-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_105_to_112.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_105_to_112.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_105_to_112.html >new file mode 100644 >index 00000000000..a2e4aa0fa69 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_105_to_112.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for swizzlers_105_to_112.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_105_to_112.html">../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_105_to_112.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_105_to_112.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_113_to_120-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_113_to_120-expected.txt >new file mode 100644 >index 00000000000..937c449359a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_113_to_120-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_113_to_120.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_113_to_120.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_113_to_120.html >new file mode 100644 >index 00000000000..49694038221 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/swizzlers/swizzlers_113_to_120.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for swizzlers_113_to_120.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_113_to_120.html">../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_113_to_120.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/swizzlers/swizzlers_113_to_120.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/tan/tan_001_to_006-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/tan/tan_001_to_006-expected.txt >new file mode 100644 >index 00000000000..d3041a254f7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/tan/tan_001_to_006-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/tan/tan_001_to_006.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/tan/tan_001_to_006.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/tan/tan_001_to_006.html >new file mode 100644 >index 00000000000..09656e5d818 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/tan/tan_001_to_006.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tan_001_to_006.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/tan/tan_001_to_006.html">../../../../resources/webgl_test_files/conformance/ogles/GL/tan/tan_001_to_006.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/tan/tan_001_to_006.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec/vec_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec/vec_001_to_008-expected.txt >new file mode 100644 >index 00000000000..6e0bf732072 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec/vec_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/vec/vec_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec/vec_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec/vec_001_to_008.html >new file mode 100644 >index 00000000000..6a4915deff9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec/vec_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for vec_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/vec/vec_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/vec/vec_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/vec/vec_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec/vec_009_to_016-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec/vec_009_to_016-expected.txt >new file mode 100644 >index 00000000000..8edccae87ab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec/vec_009_to_016-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/vec/vec_009_to_016.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec/vec_009_to_016.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec/vec_009_to_016.html >new file mode 100644 >index 00000000000..6f92cb921d7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec/vec_009_to_016.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for vec_009_to_016.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/vec/vec_009_to_016.html">../../../../resources/webgl_test_files/conformance/ogles/GL/vec/vec_009_to_016.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/vec/vec_009_to_016.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec/vec_017_to_018-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec/vec_017_to_018-expected.txt >new file mode 100644 >index 00000000000..9e7e8cd6dba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec/vec_017_to_018-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/vec/vec_017_to_018.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec/vec_017_to_018.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec/vec_017_to_018.html >new file mode 100644 >index 00000000000..7db2169f8d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec/vec_017_to_018.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for vec_017_to_018.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/vec/vec_017_to_018.html">../../../../resources/webgl_test_files/conformance/ogles/GL/vec/vec_017_to_018.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/vec/vec_017_to_018.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec3/vec3_001_to_008-expected.txt b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec3/vec3_001_to_008-expected.txt >new file mode 100644 >index 00000000000..25249cc85a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec3/vec3_001_to_008-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/conformance/ogles/GL/vec3/vec3_001_to_008.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec3/vec3_001_to_008.html b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec3/vec3_001_to_008.html >new file mode 100644 >index 00000000000..f9d94256900 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/ogles/GL/vec3/vec3_001_to_008.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for vec3_001_to_008.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/conformance/ogles/GL/vec3/vec3_001_to_008.html">../../../../resources/webgl_test_files/conformance/ogles/GL/vec3/vec3_001_to_008.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/conformance/ogles/GL/vec3/vec3_001_to_008.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/get-active-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/programs/get-active-test-expected.txt >new file mode 100644 >index 00000000000..e15b64096a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/get-active-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/programs/get-active-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/get-active-test.html b/LayoutTests/webgl/2.0.0/conformance/programs/get-active-test.html >new file mode 100644 >index 00000000000..5ebbfa399d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/get-active-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for get-active-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/programs/get-active-test.html">../../resources/webgl_test_files/conformance/programs/get-active-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/programs/get-active-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/gl-bind-attrib-location-long-names-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/programs/gl-bind-attrib-location-long-names-test-expected.txt >new file mode 100644 >index 00000000000..f8a4d827a51 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/gl-bind-attrib-location-long-names-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/programs/gl-bind-attrib-location-long-names-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/gl-bind-attrib-location-long-names-test.html b/LayoutTests/webgl/2.0.0/conformance/programs/gl-bind-attrib-location-long-names-test.html >new file mode 100644 >index 00000000000..d06be5adf65 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/gl-bind-attrib-location-long-names-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-bind-attrib-location-long-names-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/programs/gl-bind-attrib-location-long-names-test.html">../../resources/webgl_test_files/conformance/programs/gl-bind-attrib-location-long-names-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/programs/gl-bind-attrib-location-long-names-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/gl-bind-attrib-location-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/programs/gl-bind-attrib-location-test-expected.txt >new file mode 100644 >index 00000000000..77dfd52335d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/gl-bind-attrib-location-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/programs/gl-bind-attrib-location-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/gl-bind-attrib-location-test.html b/LayoutTests/webgl/2.0.0/conformance/programs/gl-bind-attrib-location-test.html >new file mode 100644 >index 00000000000..e24961d7559 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/gl-bind-attrib-location-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-bind-attrib-location-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/programs/gl-bind-attrib-location-test.html">../../resources/webgl_test_files/conformance/programs/gl-bind-attrib-location-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/programs/gl-bind-attrib-location-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/gl-get-active-attribute-expected.txt b/LayoutTests/webgl/2.0.0/conformance/programs/gl-get-active-attribute-expected.txt >new file mode 100644 >index 00000000000..1551786550e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/gl-get-active-attribute-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/programs/gl-get-active-attribute.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/gl-get-active-attribute.html b/LayoutTests/webgl/2.0.0/conformance/programs/gl-get-active-attribute.html >new file mode 100644 >index 00000000000..7a3f424ad58 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/gl-get-active-attribute.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-get-active-attribute.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/programs/gl-get-active-attribute.html">../../resources/webgl_test_files/conformance/programs/gl-get-active-attribute.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/programs/gl-get-active-attribute.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/gl-get-active-uniform-expected.txt b/LayoutTests/webgl/2.0.0/conformance/programs/gl-get-active-uniform-expected.txt >new file mode 100644 >index 00000000000..c114aa91a09 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/gl-get-active-uniform-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/programs/gl-get-active-uniform.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/gl-get-active-uniform.html b/LayoutTests/webgl/2.0.0/conformance/programs/gl-get-active-uniform.html >new file mode 100644 >index 00000000000..be977ca1e82 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/gl-get-active-uniform.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-get-active-uniform.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/programs/gl-get-active-uniform.html">../../resources/webgl_test_files/conformance/programs/gl-get-active-uniform.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/programs/gl-get-active-uniform.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/gl-getshadersource-expected.txt b/LayoutTests/webgl/2.0.0/conformance/programs/gl-getshadersource-expected.txt >new file mode 100644 >index 00000000000..75adec28e3e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/gl-getshadersource-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/programs/gl-getshadersource.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/gl-getshadersource.html b/LayoutTests/webgl/2.0.0/conformance/programs/gl-getshadersource.html >new file mode 100644 >index 00000000000..978c5c49830 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/gl-getshadersource.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-getshadersource.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/programs/gl-getshadersource.html">../../resources/webgl_test_files/conformance/programs/gl-getshadersource.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/programs/gl-getshadersource.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/gl-shader-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/programs/gl-shader-test-expected.txt >new file mode 100644 >index 00000000000..012fd9c757a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/gl-shader-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/programs/gl-shader-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/gl-shader-test.html b/LayoutTests/webgl/2.0.0/conformance/programs/gl-shader-test.html >new file mode 100644 >index 00000000000..fac24c40689 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/gl-shader-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-shader-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/programs/gl-shader-test.html">../../resources/webgl_test_files/conformance/programs/gl-shader-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/programs/gl-shader-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/invalid-UTF-16-expected.txt b/LayoutTests/webgl/2.0.0/conformance/programs/invalid-UTF-16-expected.txt >new file mode 100644 >index 00000000000..1878d071f87 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/invalid-UTF-16-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/programs/invalid-UTF-16.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/invalid-UTF-16.html b/LayoutTests/webgl/2.0.0/conformance/programs/invalid-UTF-16.html >new file mode 100644 >index 00000000000..6864413e6ea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/invalid-UTF-16.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for invalid-UTF-16.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/programs/invalid-UTF-16.html">../../resources/webgl_test_files/conformance/programs/invalid-UTF-16.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/programs/invalid-UTF-16.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/program-infolog-expected.txt b/LayoutTests/webgl/2.0.0/conformance/programs/program-infolog-expected.txt >new file mode 100644 >index 00000000000..98c6a2cc97d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/program-infolog-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/programs/program-infolog.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/program-infolog.html b/LayoutTests/webgl/2.0.0/conformance/programs/program-infolog.html >new file mode 100644 >index 00000000000..1df5c3f6ee8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/program-infolog.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for program-infolog.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/programs/program-infolog.html">../../resources/webgl_test_files/conformance/programs/program-infolog.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/programs/program-infolog.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/program-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/programs/program-test-expected.txt >new file mode 100644 >index 00000000000..e522cb320ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/program-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/programs/program-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/program-test.html b/LayoutTests/webgl/2.0.0/conformance/programs/program-test.html >new file mode 100644 >index 00000000000..ab9fc7c7b12 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/program-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for program-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/programs/program-test.html">../../resources/webgl_test_files/conformance/programs/program-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/programs/program-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/use-program-crash-with-discard-in-fragment-shader-expected.txt b/LayoutTests/webgl/2.0.0/conformance/programs/use-program-crash-with-discard-in-fragment-shader-expected.txt >new file mode 100644 >index 00000000000..675acda2af2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/use-program-crash-with-discard-in-fragment-shader-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/programs/use-program-crash-with-discard-in-fragment-shader.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/programs/use-program-crash-with-discard-in-fragment-shader.html b/LayoutTests/webgl/2.0.0/conformance/programs/use-program-crash-with-discard-in-fragment-shader.html >new file mode 100644 >index 00000000000..d07c3af8025 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/programs/use-program-crash-with-discard-in-fragment-shader.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for use-program-crash-with-discard-in-fragment-shader.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/programs/use-program-crash-with-discard-in-fragment-shader.html">../../resources/webgl_test_files/conformance/programs/use-program-crash-with-discard-in-fragment-shader.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/programs/use-program-crash-with-discard-in-fragment-shader.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/reading/read-pixels-pack-alignment-expected.txt b/LayoutTests/webgl/2.0.0/conformance/reading/read-pixels-pack-alignment-expected.txt >new file mode 100644 >index 00000000000..9a151e17d73 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/reading/read-pixels-pack-alignment-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/reading/read-pixels-pack-alignment.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/reading/read-pixels-pack-alignment.html b/LayoutTests/webgl/2.0.0/conformance/reading/read-pixels-pack-alignment.html >new file mode 100644 >index 00000000000..a149acd065d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/reading/read-pixels-pack-alignment.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for read-pixels-pack-alignment.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/reading/read-pixels-pack-alignment.html">../../resources/webgl_test_files/conformance/reading/read-pixels-pack-alignment.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/reading/read-pixels-pack-alignment.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/reading/read-pixels-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/reading/read-pixels-test-expected.txt >new file mode 100644 >index 00000000000..54deb994a3a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/reading/read-pixels-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/reading/read-pixels-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/reading/read-pixels-test.html b/LayoutTests/webgl/2.0.0/conformance/reading/read-pixels-test.html >new file mode 100644 >index 00000000000..83a7390f7c0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/reading/read-pixels-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for read-pixels-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/reading/read-pixels-test.html">../../resources/webgl_test_files/conformance/reading/read-pixels-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/reading/read-pixels-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/renderbuffers/feedback-loop-expected.txt b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/feedback-loop-expected.txt >new file mode 100644 >index 00000000000..75d655e13e2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/feedback-loop-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/renderbuffers/feedback-loop.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/renderbuffers/feedback-loop.html b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/feedback-loop.html >new file mode 100644 >index 00000000000..292a3180073 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/feedback-loop.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for feedback-loop.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/renderbuffers/feedback-loop.html">../../resources/webgl_test_files/conformance/renderbuffers/feedback-loop.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/renderbuffers/feedback-loop.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/renderbuffers/framebuffer-object-attachment-expected.txt b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/framebuffer-object-attachment-expected.txt >new file mode 100644 >index 00000000000..a6782871af5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/framebuffer-object-attachment-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/renderbuffers/framebuffer-object-attachment.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/renderbuffers/framebuffer-object-attachment.html b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/framebuffer-object-attachment.html >new file mode 100644 >index 00000000000..64b17d4890a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/framebuffer-object-attachment.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for framebuffer-object-attachment.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/renderbuffers/framebuffer-object-attachment.html">../../resources/webgl_test_files/conformance/renderbuffers/framebuffer-object-attachment.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/renderbuffers/framebuffer-object-attachment.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/renderbuffers/framebuffer-state-restoration-expected.txt b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/framebuffer-state-restoration-expected.txt >new file mode 100644 >index 00000000000..8e8c67f6c6b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/framebuffer-state-restoration-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/renderbuffers/framebuffer-state-restoration.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/renderbuffers/framebuffer-state-restoration.html b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/framebuffer-state-restoration.html >new file mode 100644 >index 00000000000..aeafe2c8936 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/framebuffer-state-restoration.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for framebuffer-state-restoration.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/renderbuffers/framebuffer-state-restoration.html">../../resources/webgl_test_files/conformance/renderbuffers/framebuffer-state-restoration.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/renderbuffers/framebuffer-state-restoration.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/renderbuffers/framebuffer-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/framebuffer-test-expected.txt >new file mode 100644 >index 00000000000..e4249367c31 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/framebuffer-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/renderbuffers/framebuffer-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/renderbuffers/framebuffer-test.html b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/framebuffer-test.html >new file mode 100644 >index 00000000000..684d1477c62 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/framebuffer-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for framebuffer-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/renderbuffers/framebuffer-test.html">../../resources/webgl_test_files/conformance/renderbuffers/framebuffer-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/renderbuffers/framebuffer-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/renderbuffers/renderbuffer-initialization-expected.txt b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/renderbuffer-initialization-expected.txt >new file mode 100644 >index 00000000000..d7422ddb2a2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/renderbuffer-initialization-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/renderbuffers/renderbuffer-initialization.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/renderbuffers/renderbuffer-initialization.html b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/renderbuffer-initialization.html >new file mode 100644 >index 00000000000..3912a0477de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/renderbuffers/renderbuffer-initialization.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for renderbuffer-initialization.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/renderbuffers/renderbuffer-initialization.html">../../resources/webgl_test_files/conformance/renderbuffers/renderbuffer-initialization.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/renderbuffers/renderbuffer-initialization.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/clipping-wide-points-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/clipping-wide-points-expected.txt >new file mode 100644 >index 00000000000..6b86e10c042 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/clipping-wide-points-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/clipping-wide-points.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/clipping-wide-points.html b/LayoutTests/webgl/2.0.0/conformance/rendering/clipping-wide-points.html >new file mode 100644 >index 00000000000..f1eda2ca599 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/clipping-wide-points.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for clipping-wide-points.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/clipping-wide-points.html">../../resources/webgl_test_files/conformance/rendering/clipping-wide-points.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/clipping-wide-points.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/culling-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/culling-expected.txt >new file mode 100644 >index 00000000000..76d22f71d32 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/culling-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/culling.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/culling.html b/LayoutTests/webgl/2.0.0/conformance/rendering/culling.html >new file mode 100644 >index 00000000000..c91e3f1c806 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/culling.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for culling.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/culling.html">../../resources/webgl_test_files/conformance/rendering/culling.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/culling.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/default-texture-draw-bug-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/default-texture-draw-bug-expected.txt >new file mode 100644 >index 00000000000..a1e35b835f5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/default-texture-draw-bug-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/default-texture-draw-bug.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/default-texture-draw-bug.html b/LayoutTests/webgl/2.0.0/conformance/rendering/default-texture-draw-bug.html >new file mode 100644 >index 00000000000..51385a5eba2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/default-texture-draw-bug.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for default-texture-draw-bug.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/default-texture-draw-bug.html">../../resources/webgl_test_files/conformance/rendering/default-texture-draw-bug.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/default-texture-draw-bug.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/draw-arrays-out-of-bounds-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/draw-arrays-out-of-bounds-expected.txt >new file mode 100644 >index 00000000000..7acb20a889d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/draw-arrays-out-of-bounds-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/draw-arrays-out-of-bounds.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/draw-arrays-out-of-bounds.html b/LayoutTests/webgl/2.0.0/conformance/rendering/draw-arrays-out-of-bounds.html >new file mode 100644 >index 00000000000..09af69c2c42 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/draw-arrays-out-of-bounds.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for draw-arrays-out-of-bounds.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/draw-arrays-out-of-bounds.html">../../resources/webgl_test_files/conformance/rendering/draw-arrays-out-of-bounds.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/draw-arrays-out-of-bounds.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/draw-elements-out-of-bounds-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/draw-elements-out-of-bounds-expected.txt >new file mode 100644 >index 00000000000..4cf79c6abf4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/draw-elements-out-of-bounds-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/draw-elements-out-of-bounds.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/draw-elements-out-of-bounds.html b/LayoutTests/webgl/2.0.0/conformance/rendering/draw-elements-out-of-bounds.html >new file mode 100644 >index 00000000000..1e39772beb7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/draw-elements-out-of-bounds.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for draw-elements-out-of-bounds.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/draw-elements-out-of-bounds.html">../../resources/webgl_test_files/conformance/rendering/draw-elements-out-of-bounds.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/draw-elements-out-of-bounds.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/draw-with-changing-start-vertex-bug-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/draw-with-changing-start-vertex-bug-expected.txt >new file mode 100644 >index 00000000000..90daaf36cf3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/draw-with-changing-start-vertex-bug-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/draw-with-changing-start-vertex-bug.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/draw-with-changing-start-vertex-bug.html b/LayoutTests/webgl/2.0.0/conformance/rendering/draw-with-changing-start-vertex-bug.html >new file mode 100644 >index 00000000000..1643fe3c53e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/draw-with-changing-start-vertex-bug.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for draw-with-changing-start-vertex-bug.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/draw-with-changing-start-vertex-bug.html">../../resources/webgl_test_files/conformance/rendering/draw-with-changing-start-vertex-bug.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/draw-with-changing-start-vertex-bug.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/framebuffer-switch-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/framebuffer-switch-expected.txt >new file mode 100644 >index 00000000000..8540d72d944 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/framebuffer-switch-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/framebuffer-switch.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/framebuffer-switch.html b/LayoutTests/webgl/2.0.0/conformance/rendering/framebuffer-switch.html >new file mode 100644 >index 00000000000..396607c9375 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/framebuffer-switch.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for framebuffer-switch.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/framebuffer-switch.html">../../resources/webgl_test_files/conformance/rendering/framebuffer-switch.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/framebuffer-switch.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/framebuffer-texture-switch-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/framebuffer-texture-switch-expected.txt >new file mode 100644 >index 00000000000..009ba0f70e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/framebuffer-texture-switch-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/framebuffer-texture-switch.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/framebuffer-texture-switch.html b/LayoutTests/webgl/2.0.0/conformance/rendering/framebuffer-texture-switch.html >new file mode 100644 >index 00000000000..ce87658971a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/framebuffer-texture-switch.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for framebuffer-texture-switch.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/framebuffer-texture-switch.html">../../resources/webgl_test_files/conformance/rendering/framebuffer-texture-switch.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/framebuffer-texture-switch.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/gl-clear-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-clear-expected.txt >new file mode 100644 >index 00000000000..87ab18eed6f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-clear-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/gl-clear.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/gl-clear.html b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-clear.html >new file mode 100644 >index 00000000000..f2aa7a061fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-clear.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-clear.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/gl-clear.html">../../resources/webgl_test_files/conformance/rendering/gl-clear.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/gl-clear.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/gl-drawarrays-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-drawarrays-expected.txt >new file mode 100644 >index 00000000000..9caa6f2fbf2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-drawarrays-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/gl-drawarrays.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/gl-drawarrays.html b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-drawarrays.html >new file mode 100644 >index 00000000000..23934ed1c40 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-drawarrays.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-drawarrays.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/gl-drawarrays.html">../../resources/webgl_test_files/conformance/rendering/gl-drawarrays.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/gl-drawarrays.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/gl-drawelements-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-drawelements-expected.txt >new file mode 100644 >index 00000000000..cc21a0aa19e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-drawelements-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/gl-drawelements.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/gl-drawelements.html b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-drawelements.html >new file mode 100644 >index 00000000000..a474d21c443 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-drawelements.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-drawelements.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/gl-drawelements.html">../../resources/webgl_test_files/conformance/rendering/gl-drawelements.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/gl-drawelements.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/gl-scissor-canvas-dimensions-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-scissor-canvas-dimensions-expected.txt >new file mode 100644 >index 00000000000..2f53947d53c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-scissor-canvas-dimensions-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/gl-scissor-canvas-dimensions.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/gl-scissor-canvas-dimensions.html b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-scissor-canvas-dimensions.html >new file mode 100644 >index 00000000000..17bbfe07ea8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-scissor-canvas-dimensions.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-scissor-canvas-dimensions.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/gl-scissor-canvas-dimensions.html">../../resources/webgl_test_files/conformance/rendering/gl-scissor-canvas-dimensions.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/gl-scissor-canvas-dimensions.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/gl-scissor-fbo-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-scissor-fbo-test-expected.txt >new file mode 100644 >index 00000000000..045b52e5b0d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-scissor-fbo-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/gl-scissor-fbo-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/gl-scissor-fbo-test.html b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-scissor-fbo-test.html >new file mode 100644 >index 00000000000..bc0a245d2ba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-scissor-fbo-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-scissor-fbo-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/gl-scissor-fbo-test.html">../../resources/webgl_test_files/conformance/rendering/gl-scissor-fbo-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/gl-scissor-fbo-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/gl-scissor-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-scissor-test-expected.txt >new file mode 100644 >index 00000000000..ab8d999d87b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-scissor-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/gl-scissor-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/gl-scissor-test.html b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-scissor-test.html >new file mode 100644 >index 00000000000..0a4e4fffd73 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-scissor-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-scissor-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/gl-scissor-test.html">../../resources/webgl_test_files/conformance/rendering/gl-scissor-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/gl-scissor-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/gl-viewport-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-viewport-test-expected.txt >new file mode 100644 >index 00000000000..01430e70a8c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-viewport-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/gl-viewport-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/gl-viewport-test.html b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-viewport-test.html >new file mode 100644 >index 00000000000..e9e8c830262 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/gl-viewport-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-viewport-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/gl-viewport-test.html">../../resources/webgl_test_files/conformance/rendering/gl-viewport-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/gl-viewport-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/line-loop-tri-fan-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/line-loop-tri-fan-expected.txt >new file mode 100644 >index 00000000000..b64b4136cfa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/line-loop-tri-fan-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/line-loop-tri-fan.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/line-loop-tri-fan.html b/LayoutTests/webgl/2.0.0/conformance/rendering/line-loop-tri-fan.html >new file mode 100644 >index 00000000000..5a23ec25d67 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/line-loop-tri-fan.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for line-loop-tri-fan.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/line-loop-tri-fan.html">../../resources/webgl_test_files/conformance/rendering/line-loop-tri-fan.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/line-loop-tri-fan.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/many-draw-calls-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/many-draw-calls-expected.txt >new file mode 100644 >index 00000000000..d9d2846d8da >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/many-draw-calls-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/many-draw-calls.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/many-draw-calls.html b/LayoutTests/webgl/2.0.0/conformance/rendering/many-draw-calls.html >new file mode 100644 >index 00000000000..23dfafae37d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/many-draw-calls.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for many-draw-calls.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/many-draw-calls.html">../../resources/webgl_test_files/conformance/rendering/many-draw-calls.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/many-draw-calls.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/more-than-65536-indices-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/more-than-65536-indices-expected.txt >new file mode 100644 >index 00000000000..a3e430f2d95 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/more-than-65536-indices-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/more-than-65536-indices.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/more-than-65536-indices.html b/LayoutTests/webgl/2.0.0/conformance/rendering/more-than-65536-indices.html >new file mode 100644 >index 00000000000..c2a6352f0a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/more-than-65536-indices.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for more-than-65536-indices.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/more-than-65536-indices.html">../../resources/webgl_test_files/conformance/rendering/more-than-65536-indices.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/more-than-65536-indices.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/multisample-corruption-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/multisample-corruption-expected.txt >new file mode 100644 >index 00000000000..8a8ffff54e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/multisample-corruption-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/multisample-corruption.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/multisample-corruption.html b/LayoutTests/webgl/2.0.0/conformance/rendering/multisample-corruption.html >new file mode 100644 >index 00000000000..6d7248dc804 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/multisample-corruption.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multisample-corruption.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/multisample-corruption.html">../../resources/webgl_test_files/conformance/rendering/multisample-corruption.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/multisample-corruption.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/negative-one-index-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/negative-one-index-expected.txt >new file mode 100644 >index 00000000000..e5caf305eb0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/negative-one-index-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/negative-one-index.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/negative-one-index.html b/LayoutTests/webgl/2.0.0/conformance/rendering/negative-one-index.html >new file mode 100644 >index 00000000000..d3a70db085e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/negative-one-index.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for negative-one-index.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/negative-one-index.html">../../resources/webgl_test_files/conformance/rendering/negative-one-index.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/negative-one-index.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/out-of-bounds-index-buffers-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/out-of-bounds-index-buffers-expected.txt >new file mode 100644 >index 00000000000..f77db81684d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/out-of-bounds-index-buffers-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/out-of-bounds-index-buffers.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/out-of-bounds-index-buffers.html b/LayoutTests/webgl/2.0.0/conformance/rendering/out-of-bounds-index-buffers.html >new file mode 100644 >index 00000000000..32779b5047d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/out-of-bounds-index-buffers.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for out-of-bounds-index-buffers.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/out-of-bounds-index-buffers.html">../../resources/webgl_test_files/conformance/rendering/out-of-bounds-index-buffers.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/out-of-bounds-index-buffers.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/point-no-attributes-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/point-no-attributes-expected.txt >new file mode 100644 >index 00000000000..9917d7b8924 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/point-no-attributes-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/point-no-attributes.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/point-no-attributes.html b/LayoutTests/webgl/2.0.0/conformance/rendering/point-no-attributes.html >new file mode 100644 >index 00000000000..078e3ee7e6b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/point-no-attributes.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for point-no-attributes.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/point-no-attributes.html">../../resources/webgl_test_files/conformance/rendering/point-no-attributes.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/point-no-attributes.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/point-size-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/point-size-expected.txt >new file mode 100644 >index 00000000000..6c09bedc10c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/point-size-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/point-size.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/point-size.html b/LayoutTests/webgl/2.0.0/conformance/rendering/point-size.html >new file mode 100644 >index 00000000000..33a171b3d77 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/point-size.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for point-size.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/point-size.html">../../resources/webgl_test_files/conformance/rendering/point-size.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/point-size.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/point-specific-shader-variables-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/point-specific-shader-variables-expected.txt >new file mode 100644 >index 00000000000..e7f576e5e05 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/point-specific-shader-variables-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/point-specific-shader-variables.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/point-specific-shader-variables.html b/LayoutTests/webgl/2.0.0/conformance/rendering/point-specific-shader-variables.html >new file mode 100644 >index 00000000000..7f8cc14c664 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/point-specific-shader-variables.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for point-specific-shader-variables.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/point-specific-shader-variables.html">../../resources/webgl_test_files/conformance/rendering/point-specific-shader-variables.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/point-specific-shader-variables.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/point-with-gl-pointcoord-in-fragment-shader-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/point-with-gl-pointcoord-in-fragment-shader-expected.txt >new file mode 100644 >index 00000000000..f9110e04689 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/point-with-gl-pointcoord-in-fragment-shader-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/point-with-gl-pointcoord-in-fragment-shader.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/point-with-gl-pointcoord-in-fragment-shader.html b/LayoutTests/webgl/2.0.0/conformance/rendering/point-with-gl-pointcoord-in-fragment-shader.html >new file mode 100644 >index 00000000000..ea48b4c4815 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/point-with-gl-pointcoord-in-fragment-shader.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for point-with-gl-pointcoord-in-fragment-shader.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/point-with-gl-pointcoord-in-fragment-shader.html">../../resources/webgl_test_files/conformance/rendering/point-with-gl-pointcoord-in-fragment-shader.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/point-with-gl-pointcoord-in-fragment-shader.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/polygon-offset-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/polygon-offset-expected.txt >new file mode 100644 >index 00000000000..384a614f928 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/polygon-offset-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/polygon-offset.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/polygon-offset.html b/LayoutTests/webgl/2.0.0/conformance/rendering/polygon-offset.html >new file mode 100644 >index 00000000000..e116a14b495 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/polygon-offset.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for polygon-offset.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/polygon-offset.html">../../resources/webgl_test_files/conformance/rendering/polygon-offset.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/polygon-offset.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/simple-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/simple-expected.txt >new file mode 100644 >index 00000000000..d17d54fafa8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/simple-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/simple.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/simple.html b/LayoutTests/webgl/2.0.0/conformance/rendering/simple.html >new file mode 100644 >index 00000000000..8aedcc7283b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/simple.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for simple.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/simple.html">../../resources/webgl_test_files/conformance/rendering/simple.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/simple.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/triangle-expected.txt b/LayoutTests/webgl/2.0.0/conformance/rendering/triangle-expected.txt >new file mode 100644 >index 00000000000..e6c4053505d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/triangle-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/rendering/triangle.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/rendering/triangle.html b/LayoutTests/webgl/2.0.0/conformance/rendering/triangle.html >new file mode 100644 >index 00000000000..f04512f0912 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/rendering/triangle.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for triangle.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/rendering/triangle.html">../../resources/webgl_test_files/conformance/rendering/triangle.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/rendering/triangle.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/state/gl-enable-enum-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/state/gl-enable-enum-test-expected.txt >new file mode 100644 >index 00000000000..f16c2bc1e6a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/state/gl-enable-enum-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/state/gl-enable-enum-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/state/gl-enable-enum-test.html b/LayoutTests/webgl/2.0.0/conformance/state/gl-enable-enum-test.html >new file mode 100644 >index 00000000000..ab69eb33546 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/state/gl-enable-enum-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-enable-enum-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/state/gl-enable-enum-test.html">../../resources/webgl_test_files/conformance/state/gl-enable-enum-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/state/gl-enable-enum-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/state/gl-enum-tests-expected.txt b/LayoutTests/webgl/2.0.0/conformance/state/gl-enum-tests-expected.txt >new file mode 100644 >index 00000000000..63caa778183 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/state/gl-enum-tests-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/state/gl-enum-tests.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/state/gl-enum-tests.html b/LayoutTests/webgl/2.0.0/conformance/state/gl-enum-tests.html >new file mode 100644 >index 00000000000..f85fd27baca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/state/gl-enum-tests.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-enum-tests.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/state/gl-enum-tests.html">../../resources/webgl_test_files/conformance/state/gl-enum-tests.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/state/gl-enum-tests.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/state/gl-get-calls-expected.txt b/LayoutTests/webgl/2.0.0/conformance/state/gl-get-calls-expected.txt >new file mode 100644 >index 00000000000..21b363710f9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/state/gl-get-calls-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/state/gl-get-calls.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/state/gl-get-calls.html b/LayoutTests/webgl/2.0.0/conformance/state/gl-get-calls.html >new file mode 100644 >index 00000000000..b5e4f6c1020 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/state/gl-get-calls.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-get-calls.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/state/gl-get-calls.html">../../resources/webgl_test_files/conformance/state/gl-get-calls.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/state/gl-get-calls.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/state/gl-geterror-expected.txt b/LayoutTests/webgl/2.0.0/conformance/state/gl-geterror-expected.txt >new file mode 100644 >index 00000000000..cf62002c560 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/state/gl-geterror-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/state/gl-geterror.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/state/gl-geterror.html b/LayoutTests/webgl/2.0.0/conformance/state/gl-geterror.html >new file mode 100644 >index 00000000000..e170523a3ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/state/gl-geterror.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-geterror.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/state/gl-geterror.html">../../resources/webgl_test_files/conformance/state/gl-geterror.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/state/gl-geterror.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/state/gl-getstring-expected.txt b/LayoutTests/webgl/2.0.0/conformance/state/gl-getstring-expected.txt >new file mode 100644 >index 00000000000..544d2c165a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/state/gl-getstring-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/state/gl-getstring.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/state/gl-getstring.html b/LayoutTests/webgl/2.0.0/conformance/state/gl-getstring.html >new file mode 100644 >index 00000000000..85990d9499c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/state/gl-getstring.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-getstring.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/state/gl-getstring.html">../../resources/webgl_test_files/conformance/state/gl-getstring.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/state/gl-getstring.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/state/gl-initial-state-expected.txt b/LayoutTests/webgl/2.0.0/conformance/state/gl-initial-state-expected.txt >new file mode 100644 >index 00000000000..2cb81a0dc8b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/state/gl-initial-state-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/state/gl-initial-state.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/state/gl-initial-state.html b/LayoutTests/webgl/2.0.0/conformance/state/gl-initial-state.html >new file mode 100644 >index 00000000000..ef0ffede243 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/state/gl-initial-state.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-initial-state.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/state/gl-initial-state.html">../../resources/webgl_test_files/conformance/state/gl-initial-state.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/state/gl-initial-state.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/state/gl-object-get-calls-expected.txt b/LayoutTests/webgl/2.0.0/conformance/state/gl-object-get-calls-expected.txt >new file mode 100644 >index 00000000000..591062872a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/state/gl-object-get-calls-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/state/gl-object-get-calls.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/state/gl-object-get-calls.html b/LayoutTests/webgl/2.0.0/conformance/state/gl-object-get-calls.html >new file mode 100644 >index 00000000000..9728d5f03e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/state/gl-object-get-calls.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-object-get-calls.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/state/gl-object-get-calls.html">../../resources/webgl_test_files/conformance/state/gl-object-get-calls.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/state/gl-object-get-calls.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/state/state-uneffected-after-compositing-expected.txt b/LayoutTests/webgl/2.0.0/conformance/state/state-uneffected-after-compositing-expected.txt >new file mode 100644 >index 00000000000..0102d4b1f3d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/state/state-uneffected-after-compositing-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/state/state-uneffected-after-compositing.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/state/state-uneffected-after-compositing.html b/LayoutTests/webgl/2.0.0/conformance/state/state-uneffected-after-compositing.html >new file mode 100644 >index 00000000000..3da11075f14 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/state/state-uneffected-after-compositing.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for state-uneffected-after-compositing.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/state/state-uneffected-after-compositing.html">../../resources/webgl_test_files/conformance/state/state-uneffected-after-compositing.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/state/state-uneffected-after-compositing.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..2089420a808 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..4fd6cb51ec0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..714263d390d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..8dce8176741 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..d49eb665409 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..881ac8f8fb8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..d600d29a8eb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..0610872265a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..765f095f6a4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..5d1728fa8d2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..cd02049c780 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..d32a7cceda9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..6b7d00e212e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..5e194119477 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a28c38fbffa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..6cc3de59f7e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..ac8ff21e4f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..acffe00616b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..3b88b48780c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..a222994ea17 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgb-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgb-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..325bce4014d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgb-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgb-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgb-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgb-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..59831ff5992 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgb-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgb-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgb-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgb-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..150ece52444 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..a8f766324ed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgba-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgba-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..7d38c6bed2a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgba-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgba-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgba-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgba-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..48b22a87a23 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgba-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgba-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgba-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgba-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..f2e592dfef1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..dd9019dc069 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..2804cad7fd3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..9fd371848e6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..48ba5a77d36 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..605841e49fe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..7942b29e9fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..fef2361b819 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgb-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..b5ad98202cf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..4103cc0c7c9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..7bdc852df8b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..3a7d393ba9d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..0396ffbb726 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..506097a0905 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..aefabe76dbd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..2615c33d84f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..436b44c2211 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..e313ddd6cee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..8b50d7a5578 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..d6d6d4f60ad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..2d97b9089cb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..7f12ec4b600 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..6c12d821418 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..9e7fb277af5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..404608383c4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..cea6f078d9f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..a44011a3d15 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..19f93961052 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..91cdcc6fc2b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..9e11602a2d7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..832eae41c9b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..18d3cb18455 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..632cbcaca37 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..21d5dc3c2d8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..db73b2aae9e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..3aeb3a31109 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..0cc898c4da8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..588471e7eee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgb-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..ff594544eee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..2c1045e0530 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..2e5d5a87085 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..059d3028170 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..5cd75d492d0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..4a7a6edf67c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..07b2c132ffc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..63473f07375 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..be0684478f3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..8c675cf8c0e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..b835ca2ed3e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..37ea7f4571c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..138be2b8f4d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..cd067689bf7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..4ad417637de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..10960176abf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..49d98e3a68c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..464ebbfc88c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..d87261e778c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..d20021a21ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgb-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..5c3b5f773f5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..1c6e7c4d40c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..0efe09546d7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..fc5d89da240 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..867e1808768 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..0f4c3ad8202 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_bitmap_from_video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..6c711b15cf2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..2134f0233e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..221a8376502 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..9e65e013f98 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgb-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..00f663aca11 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..2a105c18f79 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..7ae9796e199 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..22a7d37e3fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..82e0f1123e0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..4ea01a7cf68 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/image_data/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/compressed-tex-image-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/compressed-tex-image-expected.txt >new file mode 100644 >index 00000000000..b703d96f4ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/compressed-tex-image-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/compressed-tex-image.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/compressed-tex-image.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/compressed-tex-image.html >new file mode 100644 >index 00000000000..2bfebf06147 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/compressed-tex-image.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for compressed-tex-image.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/compressed-tex-image.html">../../../resources/webgl_test_files/conformance/textures/misc/compressed-tex-image.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/compressed-tex-image.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/copy-tex-image-2d-formats-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/copy-tex-image-2d-formats-expected.txt >new file mode 100644 >index 00000000000..d949dcbc11f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/copy-tex-image-2d-formats-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/copy-tex-image-2d-formats.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/copy-tex-image-2d-formats.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/copy-tex-image-2d-formats.html >new file mode 100644 >index 00000000000..ec3e1d1a64f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/copy-tex-image-2d-formats.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for copy-tex-image-2d-formats.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/copy-tex-image-2d-formats.html">../../../resources/webgl_test_files/conformance/textures/misc/copy-tex-image-2d-formats.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/copy-tex-image-2d-formats.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/copy-tex-image-and-sub-image-2d-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/copy-tex-image-and-sub-image-2d-expected.txt >new file mode 100644 >index 00000000000..355c2cedc82 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/copy-tex-image-and-sub-image-2d-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/copy-tex-image-and-sub-image-2d.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/copy-tex-image-and-sub-image-2d.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/copy-tex-image-and-sub-image-2d.html >new file mode 100644 >index 00000000000..43196e05421 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/copy-tex-image-and-sub-image-2d.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for copy-tex-image-and-sub-image-2d.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/copy-tex-image-and-sub-image-2d.html">../../../resources/webgl_test_files/conformance/textures/misc/copy-tex-image-and-sub-image-2d.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/copy-tex-image-and-sub-image-2d.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/copy-tex-sub-image-2d-partial-texture-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/copy-tex-sub-image-2d-partial-texture-expected.txt >new file mode 100644 >index 00000000000..0d429f2214e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/copy-tex-sub-image-2d-partial-texture-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/copy-tex-sub-image-2d-partial-texture.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/copy-tex-sub-image-2d-partial-texture.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/copy-tex-sub-image-2d-partial-texture.html >new file mode 100644 >index 00000000000..948647641b6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/copy-tex-sub-image-2d-partial-texture.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for copy-tex-sub-image-2d-partial-texture.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/copy-tex-sub-image-2d-partial-texture.html">../../../resources/webgl_test_files/conformance/textures/misc/copy-tex-sub-image-2d-partial-texture.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/copy-tex-sub-image-2d-partial-texture.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/cube-incomplete-fbo-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/cube-incomplete-fbo-expected.txt >new file mode 100644 >index 00000000000..d0c1dfcc619 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/cube-incomplete-fbo-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/cube-incomplete-fbo.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/cube-incomplete-fbo.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/cube-incomplete-fbo.html >new file mode 100644 >index 00000000000..d87bbb70e8a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/cube-incomplete-fbo.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube-incomplete-fbo.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/cube-incomplete-fbo.html">../../../resources/webgl_test_files/conformance/textures/misc/cube-incomplete-fbo.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/cube-incomplete-fbo.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/default-texture-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/default-texture-expected.txt >new file mode 100644 >index 00000000000..46eade62699 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/default-texture-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/default-texture.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/default-texture.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/default-texture.html >new file mode 100644 >index 00000000000..d77d3cc1efa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/default-texture.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for default-texture.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/default-texture.html">../../../resources/webgl_test_files/conformance/textures/misc/default-texture.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/default-texture.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/gl-get-tex-parameter-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/gl-get-tex-parameter-expected.txt >new file mode 100644 >index 00000000000..ac35f9244a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/gl-get-tex-parameter-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/gl-get-tex-parameter.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/gl-get-tex-parameter.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/gl-get-tex-parameter.html >new file mode 100644 >index 00000000000..6c3fbc92399 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/gl-get-tex-parameter.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-get-tex-parameter.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/gl-get-tex-parameter.html">../../../resources/webgl_test_files/conformance/textures/misc/gl-get-tex-parameter.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/gl-get-tex-parameter.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/gl-pixelstorei-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/gl-pixelstorei-expected.txt >new file mode 100644 >index 00000000000..bbb06abeba6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/gl-pixelstorei-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/gl-pixelstorei.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/gl-pixelstorei.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/gl-pixelstorei.html >new file mode 100644 >index 00000000000..77ab501598f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/gl-pixelstorei.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-pixelstorei.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/gl-pixelstorei.html">../../../resources/webgl_test_files/conformance/textures/misc/gl-pixelstorei.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/gl-pixelstorei.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/gl-teximage-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/gl-teximage-expected.txt >new file mode 100644 >index 00000000000..a144e756094 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/gl-teximage-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/gl-teximage.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/gl-teximage.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/gl-teximage.html >new file mode 100644 >index 00000000000..c9e4ff863f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/gl-teximage.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-teximage.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/gl-teximage.html">../../../resources/webgl_test_files/conformance/textures/misc/gl-teximage.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/gl-teximage.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/mipmap-fbo-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/mipmap-fbo-expected.txt >new file mode 100644 >index 00000000000..51fc3e1bbff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/mipmap-fbo-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/mipmap-fbo.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/mipmap-fbo.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/mipmap-fbo.html >new file mode 100644 >index 00000000000..73f7b205e83 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/mipmap-fbo.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mipmap-fbo.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/mipmap-fbo.html">../../../resources/webgl_test_files/conformance/textures/misc/mipmap-fbo.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/mipmap-fbo.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/origin-clean-conformance-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/origin-clean-conformance-expected.txt >new file mode 100644 >index 00000000000..3f733fbf01f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/origin-clean-conformance-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/origin-clean-conformance.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/origin-clean-conformance.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/origin-clean-conformance.html >new file mode 100644 >index 00000000000..7af49a084c5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/origin-clean-conformance.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for origin-clean-conformance.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/origin-clean-conformance.html">../../../resources/webgl_test_files/conformance/textures/misc/origin-clean-conformance.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/origin-clean-conformance.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-and-sub-image-2d-with-array-buffer-view-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-and-sub-image-2d-with-array-buffer-view-expected.txt >new file mode 100644 >index 00000000000..8379f5356c2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-and-sub-image-2d-with-array-buffer-view-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/tex-image-and-sub-image-2d-with-array-buffer-view.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-and-sub-image-2d-with-array-buffer-view.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-and-sub-image-2d-with-array-buffer-view.html >new file mode 100644 >index 00000000000..3113c205d60 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-and-sub-image-2d-with-array-buffer-view.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-image-and-sub-image-2d-with-array-buffer-view.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/tex-image-and-sub-image-2d-with-array-buffer-view.html">../../../resources/webgl_test_files/conformance/textures/misc/tex-image-and-sub-image-2d-with-array-buffer-view.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/tex-image-and-sub-image-2d-with-array-buffer-view.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-and-uniform-binding-bugs-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-and-uniform-binding-bugs-expected.txt >new file mode 100644 >index 00000000000..816e0010888 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-and-uniform-binding-bugs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/tex-image-and-uniform-binding-bugs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-and-uniform-binding-bugs.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-and-uniform-binding-bugs.html >new file mode 100644 >index 00000000000..e2e8768a454 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-and-uniform-binding-bugs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-image-and-uniform-binding-bugs.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/tex-image-and-uniform-binding-bugs.html">../../../resources/webgl_test_files/conformance/textures/misc/tex-image-and-uniform-binding-bugs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/tex-image-and-uniform-binding-bugs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-canvas-corruption-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-canvas-corruption-expected.txt >new file mode 100644 >index 00000000000..4d942ad39a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-canvas-corruption-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/tex-image-canvas-corruption.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-canvas-corruption.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-canvas-corruption.html >new file mode 100644 >index 00000000000..26a9a52d4f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-canvas-corruption.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-image-canvas-corruption.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/tex-image-canvas-corruption.html">../../../resources/webgl_test_files/conformance/textures/misc/tex-image-canvas-corruption.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/tex-image-canvas-corruption.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-webgl-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-webgl-expected.txt >new file mode 100644 >index 00000000000..97c334b1240 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-webgl-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/tex-image-webgl.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-webgl.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-webgl.html >new file mode 100644 >index 00000000000..5d160450c45 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-webgl.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-image-webgl.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/tex-image-webgl.html">../../../resources/webgl_test_files/conformance/textures/misc/tex-image-webgl.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/tex-image-webgl.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-with-format-and-type-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-with-format-and-type-expected.txt >new file mode 100644 >index 00000000000..f777681f702 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-with-format-and-type-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/tex-image-with-format-and-type.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-with-format-and-type.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-with-format-and-type.html >new file mode 100644 >index 00000000000..83a58295929 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-with-format-and-type.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-image-with-format-and-type.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/tex-image-with-format-and-type.html">../../../resources/webgl_test_files/conformance/textures/misc/tex-image-with-format-and-type.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/tex-image-with-format-and-type.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-with-invalid-data-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-with-invalid-data-expected.txt >new file mode 100644 >index 00000000000..6cda3678718 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-with-invalid-data-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/tex-image-with-invalid-data.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-with-invalid-data.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-with-invalid-data.html >new file mode 100644 >index 00000000000..cdfc99b99dc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-image-with-invalid-data.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-image-with-invalid-data.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/tex-image-with-invalid-data.html">../../../resources/webgl_test_files/conformance/textures/misc/tex-image-with-invalid-data.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/tex-image-with-invalid-data.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-input-validation-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-input-validation-expected.txt >new file mode 100644 >index 00000000000..7402cd73e3e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-input-validation-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/tex-input-validation.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-input-validation.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-input-validation.html >new file mode 100644 >index 00000000000..94eff2d8659 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-input-validation.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-input-validation.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/tex-input-validation.html">../../../resources/webgl_test_files/conformance/textures/misc/tex-input-validation.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/tex-input-validation.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d-bad-args-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d-bad-args-expected.txt >new file mode 100644 >index 00000000000..0318d8fcf2d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d-bad-args-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/tex-sub-image-2d-bad-args.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d-bad-args.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d-bad-args.html >new file mode 100644 >index 00000000000..8db8d9beb24 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d-bad-args.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-sub-image-2d-bad-args.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/tex-sub-image-2d-bad-args.html">../../../resources/webgl_test_files/conformance/textures/misc/tex-sub-image-2d-bad-args.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/tex-sub-image-2d-bad-args.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d-expected.txt >new file mode 100644 >index 00000000000..8fa36bc55ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/tex-sub-image-2d.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d.html >new file mode 100644 >index 00000000000..4d864942f93 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-sub-image-2d.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/tex-sub-image-2d.html">../../../resources/webgl_test_files/conformance/textures/misc/tex-sub-image-2d.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/tex-sub-image-2d.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texparameter-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texparameter-test-expected.txt >new file mode 100644 >index 00000000000..3d19e41661b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texparameter-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texparameter-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texparameter-test.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texparameter-test.html >new file mode 100644 >index 00000000000..1845be17683 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texparameter-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texparameter-test.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texparameter-test.html">../../../resources/webgl_test_files/conformance/textures/misc/texparameter-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texparameter-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-active-bind-2-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-active-bind-2-expected.txt >new file mode 100644 >index 00000000000..94a65b8cb44 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-active-bind-2-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-active-bind-2.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-active-bind-2.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-active-bind-2.html >new file mode 100644 >index 00000000000..8a5559a2b0f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-active-bind-2.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-active-bind-2.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-active-bind-2.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-active-bind-2.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-active-bind-2.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-active-bind-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-active-bind-expected.txt >new file mode 100644 >index 00000000000..9bdf542615f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-active-bind-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-active-bind.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-active-bind.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-active-bind.html >new file mode 100644 >index 00000000000..81c07e0c8c0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-active-bind.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-active-bind.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-active-bind.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-active-bind.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-active-bind.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-attachment-formats-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-attachment-formats-expected.txt >new file mode 100644 >index 00000000000..bb2e9ee8ca4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-attachment-formats-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-attachment-formats.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-attachment-formats.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-attachment-formats.html >new file mode 100644 >index 00000000000..dd5fd2ec6c9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-attachment-formats.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-attachment-formats.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-attachment-formats.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-attachment-formats.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-attachment-formats.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-clear-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-clear-expected.txt >new file mode 100644 >index 00000000000..b7ba88a08c5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-clear-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-clear.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-clear.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-clear.html >new file mode 100644 >index 00000000000..d89c0804ee5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-clear.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-clear.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-clear.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-clear.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-clear.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-complete-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-complete-expected.txt >new file mode 100644 >index 00000000000..be3f8f237a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-complete-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-complete.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-complete.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-complete.html >new file mode 100644 >index 00000000000..f68dee17550 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-complete.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-complete.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-complete.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-complete.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-complete.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-copying-feedback-loops-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-copying-feedback-loops-expected.txt >new file mode 100644 >index 00000000000..e1482ebec10 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-copying-feedback-loops-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-copying-feedback-loops.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-copying-feedback-loops.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-copying-feedback-loops.html >new file mode 100644 >index 00000000000..ac0e0c9f04e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-copying-feedback-loops.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-copying-feedback-loops.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-copying-feedback-loops.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-copying-feedback-loops.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-copying-feedback-loops.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-cube-as-fbo-attachment-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-cube-as-fbo-attachment-expected.txt >new file mode 100644 >index 00000000000..f879ee2c99e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-cube-as-fbo-attachment-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-cube-as-fbo-attachment.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-cube-as-fbo-attachment.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-cube-as-fbo-attachment.html >new file mode 100644 >index 00000000000..490a73ec919 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-cube-as-fbo-attachment.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-cube-as-fbo-attachment.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-cube-as-fbo-attachment.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-cube-as-fbo-attachment.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-cube-as-fbo-attachment.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-draw-with-2d-and-cube-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-draw-with-2d-and-cube-expected.txt >new file mode 100644 >index 00000000000..62ee8a6d4a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-draw-with-2d-and-cube-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-draw-with-2d-and-cube.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-draw-with-2d-and-cube.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-draw-with-2d-and-cube.html >new file mode 100644 >index 00000000000..cb92198baa7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-draw-with-2d-and-cube.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-draw-with-2d-and-cube.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-draw-with-2d-and-cube.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-draw-with-2d-and-cube.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-draw-with-2d-and-cube.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-fakeblack-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-fakeblack-expected.txt >new file mode 100644 >index 00000000000..85983b64436 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-fakeblack-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-fakeblack.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-fakeblack.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-fakeblack.html >new file mode 100644 >index 00000000000..05680713bab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-fakeblack.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-fakeblack.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-fakeblack.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-fakeblack.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-fakeblack.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-formats-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-formats-test-expected.txt >new file mode 100644 >index 00000000000..4942c2ed443 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-formats-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-formats-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-formats-test.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-formats-test.html >new file mode 100644 >index 00000000000..b12054c5c19 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-formats-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-formats-test.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-formats-test.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-formats-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-formats-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-hd-dpi-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-hd-dpi-expected.txt >new file mode 100644 >index 00000000000..ad9669157a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-hd-dpi-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-hd-dpi.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-hd-dpi.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-hd-dpi.html >new file mode 100644 >index 00000000000..78eb86d53d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-hd-dpi.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-hd-dpi.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-hd-dpi.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-hd-dpi.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-hd-dpi.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-mips-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-mips-expected.txt >new file mode 100644 >index 00000000000..37286a0e78f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-mips-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-mips.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-mips.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-mips.html >new file mode 100644 >index 00000000000..19f95843c17 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-mips.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-mips.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-mips.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-mips.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-mips.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-npot-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-npot-expected.txt >new file mode 100644 >index 00000000000..1765c3385b8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-npot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-npot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-npot-video-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-npot-video-expected.txt >new file mode 100644 >index 00000000000..40a2a094de3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-npot-video-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-npot-video.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-npot-video.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-npot-video.html >new file mode 100644 >index 00000000000..058d3e0b938 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-npot-video.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-npot-video.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-npot-video.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-npot-video.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-npot-video.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-npot.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-npot.html >new file mode 100644 >index 00000000000..8f416a1201c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-npot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-npot.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-npot.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-npot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-npot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-size-cube-maps-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-size-cube-maps-expected.txt >new file mode 100644 >index 00000000000..87bdd65e7c3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-size-cube-maps-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-size-cube-maps.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-size-cube-maps.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-size-cube-maps.html >new file mode 100644 >index 00000000000..c66e1b8bd8f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-size-cube-maps.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-size-cube-maps.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-size-cube-maps.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-size-cube-maps.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-size-cube-maps.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-size-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-size-expected.txt >new file mode 100644 >index 00000000000..cf2c443b5a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-size-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-size.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-size-limit-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-size-limit-expected.txt >new file mode 100644 >index 00000000000..eda24295cf8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-size-limit-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-size-limit.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-size-limit.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-size-limit.html >new file mode 100644 >index 00000000000..861e21215b4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-size-limit.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-size-limit.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-size-limit.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-size-limit.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-size-limit.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-size.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-size.html >new file mode 100644 >index 00000000000..304673bdc25 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-size.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-size.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-size.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-size.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-size.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-sub-image-cube-maps-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-sub-image-cube-maps-expected.txt >new file mode 100644 >index 00000000000..039aad48802 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-sub-image-cube-maps-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-sub-image-cube-maps.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-sub-image-cube-maps.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-sub-image-cube-maps.html >new file mode 100644 >index 00000000000..8e108cf0be2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-sub-image-cube-maps.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-sub-image-cube-maps.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-sub-image-cube-maps.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-sub-image-cube-maps.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-sub-image-cube-maps.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-transparent-pixels-initialized-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-transparent-pixels-initialized-expected.txt >new file mode 100644 >index 00000000000..966074b0ab5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-transparent-pixels-initialized-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-transparent-pixels-initialized.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-transparent-pixels-initialized.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-transparent-pixels-initialized.html >new file mode 100644 >index 00000000000..2f9bfbc7064 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-transparent-pixels-initialized.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-transparent-pixels-initialized.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-transparent-pixels-initialized.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-transparent-pixels-initialized.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-transparent-pixels-initialized.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-upload-cube-maps-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-upload-cube-maps-expected.txt >new file mode 100644 >index 00000000000..898426c5df7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-upload-cube-maps-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-upload-cube-maps.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-upload-cube-maps.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-upload-cube-maps.html >new file mode 100644 >index 00000000000..2315ccdbf13 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-upload-cube-maps.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-upload-cube-maps.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-upload-cube-maps.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-upload-cube-maps.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-upload-cube-maps.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-upload-size-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-upload-size-expected.txt >new file mode 100644 >index 00000000000..66fe5274d27 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-upload-size-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/misc/texture-upload-size.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-upload-size.html b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-upload-size.html >new file mode 100644 >index 00000000000..2297ae23e19 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/misc/texture-upload-size.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-upload-size.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/misc/texture-upload-size.html">../../../resources/webgl_test_files/conformance/textures/misc/texture-upload-size.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/misc/texture-upload-size.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..6f13273b9f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..de2435fbdd1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..40d5eeb46f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..9eb8a34f0f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgb-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..3244b0bd0cd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..8947938c39c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..e9e4bdf13ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..742fbd2940e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..9d7a2e7ccef >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..8d81769de2c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/svg_image/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgb-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgb-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..39eee7236ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgb-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgb-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgb-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgb-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..0eba1edd118 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgb-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgb-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgb-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgb-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..15b9673306c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgb-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..a07f3f0baf7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgb-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgb-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgb-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgba-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgba-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..14c6aff6ef2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgba-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgba-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgba-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgba-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..0288f88cb84 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgba-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgba-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgba-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgba-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..08a3018d742 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..7ed41409eb5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..97502482c98 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..9e96413a523 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/video/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..2fecb668c5c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..c8175375ffb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..217166bedce >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..35d37aaf443 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgb-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..6ff0d56be31 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..2392ae44a66 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..82c0ac1e6a1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..658b684315f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..4f6f9aa641a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..11d79ec7c9b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance/textures/webgl_canvas/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-buffer-crash-expected.txt b/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-buffer-crash-expected.txt >new file mode 100644 >index 00000000000..d6e66a001be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-buffer-crash-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/typedarrays/array-buffer-crash.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-buffer-crash.html b/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-buffer-crash.html >new file mode 100644 >index 00000000000..94f1430a5da >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-buffer-crash.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array-buffer-crash.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/typedarrays/array-buffer-crash.html">../../resources/webgl_test_files/conformance/typedarrays/array-buffer-crash.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/typedarrays/array-buffer-crash.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-buffer-view-crash-expected.txt b/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-buffer-view-crash-expected.txt >new file mode 100644 >index 00000000000..bed236aeb17 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-buffer-view-crash-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/typedarrays/array-buffer-view-crash.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-buffer-view-crash.html b/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-buffer-view-crash.html >new file mode 100644 >index 00000000000..70818daa3d1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-buffer-view-crash.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array-buffer-view-crash.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/typedarrays/array-buffer-view-crash.html">../../resources/webgl_test_files/conformance/typedarrays/array-buffer-view-crash.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/typedarrays/array-buffer-view-crash.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-large-array-tests-expected.txt b/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-large-array-tests-expected.txt >new file mode 100644 >index 00000000000..12a44a8b50f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-large-array-tests-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/typedarrays/array-large-array-tests.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-large-array-tests.html b/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-large-array-tests.html >new file mode 100644 >index 00000000000..e5efc7f3d64 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-large-array-tests.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array-large-array-tests.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/typedarrays/array-large-array-tests.html">../../resources/webgl_test_files/conformance/typedarrays/array-large-array-tests.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/typedarrays/array-large-array-tests.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-unit-tests-expected.txt b/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-unit-tests-expected.txt >new file mode 100644 >index 00000000000..d278004b998 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-unit-tests-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/typedarrays/array-unit-tests.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-unit-tests.html b/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-unit-tests.html >new file mode 100644 >index 00000000000..4260ffd2959 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/typedarrays/array-unit-tests.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array-unit-tests.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/typedarrays/array-unit-tests.html">../../resources/webgl_test_files/conformance/typedarrays/array-unit-tests.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/typedarrays/array-unit-tests.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/typedarrays/data-view-crash-expected.txt b/LayoutTests/webgl/2.0.0/conformance/typedarrays/data-view-crash-expected.txt >new file mode 100644 >index 00000000000..ba5e96692de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/typedarrays/data-view-crash-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/typedarrays/data-view-crash.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/typedarrays/data-view-crash.html b/LayoutTests/webgl/2.0.0/conformance/typedarrays/data-view-crash.html >new file mode 100644 >index 00000000000..f4f6c18cee3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/typedarrays/data-view-crash.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for data-view-crash.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/typedarrays/data-view-crash.html">../../resources/webgl_test_files/conformance/typedarrays/data-view-crash.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/typedarrays/data-view-crash.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/typedarrays/data-view-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/typedarrays/data-view-test-expected.txt >new file mode 100644 >index 00000000000..5cd3b32c306 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/typedarrays/data-view-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/typedarrays/data-view-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/typedarrays/data-view-test.html b/LayoutTests/webgl/2.0.0/conformance/typedarrays/data-view-test.html >new file mode 100644 >index 00000000000..9daffff2768 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/typedarrays/data-view-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for data-view-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/typedarrays/data-view-test.html">../../resources/webgl_test_files/conformance/typedarrays/data-view-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/typedarrays/data-view-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/typedarrays/typed-arrays-in-workers-expected.txt b/LayoutTests/webgl/2.0.0/conformance/typedarrays/typed-arrays-in-workers-expected.txt >new file mode 100644 >index 00000000000..93877797cf2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/typedarrays/typed-arrays-in-workers-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/typedarrays/typed-arrays-in-workers.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/typedarrays/typed-arrays-in-workers.html b/LayoutTests/webgl/2.0.0/conformance/typedarrays/typed-arrays-in-workers.html >new file mode 100644 >index 00000000000..3df675e10e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/typedarrays/typed-arrays-in-workers.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for typed-arrays-in-workers.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/typedarrays/typed-arrays-in-workers.html">../../resources/webgl_test_files/conformance/typedarrays/typed-arrays-in-workers.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/typedarrays/typed-arrays-in-workers.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-uniform-arrays-expected.txt b/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-uniform-arrays-expected.txt >new file mode 100644 >index 00000000000..d6ba7b21d62 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-uniform-arrays-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/uniforms/gl-uniform-arrays.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-uniform-arrays.html b/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-uniform-arrays.html >new file mode 100644 >index 00000000000..b4a349c99fa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-uniform-arrays.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-uniform-arrays.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/uniforms/gl-uniform-arrays.html">../../resources/webgl_test_files/conformance/uniforms/gl-uniform-arrays.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/uniforms/gl-uniform-arrays.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-uniform-bool-expected.txt b/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-uniform-bool-expected.txt >new file mode 100644 >index 00000000000..50e4cf19f64 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-uniform-bool-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/uniforms/gl-uniform-bool.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-uniform-bool.html b/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-uniform-bool.html >new file mode 100644 >index 00000000000..6a675fccc11 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-uniform-bool.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-uniform-bool.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/uniforms/gl-uniform-bool.html">../../resources/webgl_test_files/conformance/uniforms/gl-uniform-bool.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/uniforms/gl-uniform-bool.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-uniformmatrix4fv-expected.txt b/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-uniformmatrix4fv-expected.txt >new file mode 100644 >index 00000000000..c1b0c578407 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-uniformmatrix4fv-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/uniforms/gl-uniformmatrix4fv.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-uniformmatrix4fv.html b/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-uniformmatrix4fv.html >new file mode 100644 >index 00000000000..8202010fa5f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-uniformmatrix4fv.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-uniformmatrix4fv.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/uniforms/gl-uniformmatrix4fv.html">../../resources/webgl_test_files/conformance/uniforms/gl-uniformmatrix4fv.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/uniforms/gl-uniformmatrix4fv.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-unknown-uniform-expected.txt b/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-unknown-uniform-expected.txt >new file mode 100644 >index 00000000000..fc2bffaf20e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-unknown-uniform-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/uniforms/gl-unknown-uniform.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-unknown-uniform.html b/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-unknown-uniform.html >new file mode 100644 >index 00000000000..f258bab59e3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/gl-unknown-uniform.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-unknown-uniform.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/uniforms/gl-unknown-uniform.html">../../resources/webgl_test_files/conformance/uniforms/gl-unknown-uniform.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/uniforms/gl-unknown-uniform.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/null-uniform-location-expected.txt b/LayoutTests/webgl/2.0.0/conformance/uniforms/null-uniform-location-expected.txt >new file mode 100644 >index 00000000000..b988e805fd5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/null-uniform-location-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/uniforms/null-uniform-location.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/null-uniform-location.html b/LayoutTests/webgl/2.0.0/conformance/uniforms/null-uniform-location.html >new file mode 100644 >index 00000000000..d928002e6a2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/null-uniform-location.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for null-uniform-location.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/uniforms/null-uniform-location.html">../../resources/webgl_test_files/conformance/uniforms/null-uniform-location.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/uniforms/null-uniform-location.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/out-of-bounds-uniform-array-access-expected.txt b/LayoutTests/webgl/2.0.0/conformance/uniforms/out-of-bounds-uniform-array-access-expected.txt >new file mode 100644 >index 00000000000..cc2c2c2d079 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/out-of-bounds-uniform-array-access-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/uniforms/out-of-bounds-uniform-array-access.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/out-of-bounds-uniform-array-access.html b/LayoutTests/webgl/2.0.0/conformance/uniforms/out-of-bounds-uniform-array-access.html >new file mode 100644 >index 00000000000..6b4a2417f81 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/out-of-bounds-uniform-array-access.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for out-of-bounds-uniform-array-access.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/uniforms/out-of-bounds-uniform-array-access.html">../../resources/webgl_test_files/conformance/uniforms/out-of-bounds-uniform-array-access.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/uniforms/out-of-bounds-uniform-array-access.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-default-values-expected.txt b/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-default-values-expected.txt >new file mode 100644 >index 00000000000..de54cbc3db7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-default-values-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/uniforms/uniform-default-values.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-default-values.html b/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-default-values.html >new file mode 100644 >index 00000000000..fcc2f7f8d4a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-default-values.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniform-default-values.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/uniforms/uniform-default-values.html">../../resources/webgl_test_files/conformance/uniforms/uniform-default-values.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/uniforms/uniform-default-values.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-location-expected.txt b/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-location-expected.txt >new file mode 100644 >index 00000000000..979ce3497bb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-location-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/uniforms/uniform-location.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-location.html b/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-location.html >new file mode 100644 >index 00000000000..e604d1ff500 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-location.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniform-location.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/uniforms/uniform-location.html">../../resources/webgl_test_files/conformance/uniforms/uniform-location.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/uniforms/uniform-location.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-samplers-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-samplers-test-expected.txt >new file mode 100644 >index 00000000000..4fcea222041 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-samplers-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/uniforms/uniform-samplers-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-samplers-test.html b/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-samplers-test.html >new file mode 100644 >index 00000000000..69dad34a7d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-samplers-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniform-samplers-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/uniforms/uniform-samplers-test.html">../../resources/webgl_test_files/conformance/uniforms/uniform-samplers-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/uniforms/uniform-samplers-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-values-per-program-expected.txt b/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-values-per-program-expected.txt >new file mode 100644 >index 00000000000..ac95e405b3d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-values-per-program-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance/uniforms/uniform-values-per-program.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-values-per-program.html b/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-values-per-program.html >new file mode 100644 >index 00000000000..8153ad9f089 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance/uniforms/uniform-values-per-program.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniform-values-per-program.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance/uniforms/uniform-values-per-program.html">../../resources/webgl_test_files/conformance/uniforms/uniform-values-per-program.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance/uniforms/uniform-values-per-program.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertex-attrib-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertex-attrib-expected.txt >new file mode 100644 >index 00000000000..9dc760e7434 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertex-attrib-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/attribs/gl-vertex-attrib.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertex-attrib-i-render-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertex-attrib-i-render-expected.txt >new file mode 100644 >index 00000000000..c97b88b59d0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertex-attrib-i-render-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/attribs/gl-vertex-attrib-i-render.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertex-attrib-i-render.html b/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertex-attrib-i-render.html >new file mode 100644 >index 00000000000..8ea209569b9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertex-attrib-i-render.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-vertex-attrib-i-render.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/attribs/gl-vertex-attrib-i-render.html">../../resources/webgl_test_files/conformance2/attribs/gl-vertex-attrib-i-render.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/attribs/gl-vertex-attrib-i-render.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertex-attrib.html b/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertex-attrib.html >new file mode 100644 >index 00000000000..a6a6a41b477 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertex-attrib.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-vertex-attrib.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/attribs/gl-vertex-attrib.html">../../resources/webgl_test_files/conformance2/attribs/gl-vertex-attrib.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/attribs/gl-vertex-attrib.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertexattribipointer-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertexattribipointer-expected.txt >new file mode 100644 >index 00000000000..36c96cbff94 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertexattribipointer-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/attribs/gl-vertexattribipointer.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertexattribipointer-offsets-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertexattribipointer-offsets-expected.txt >new file mode 100644 >index 00000000000..6b02fda885f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertexattribipointer-offsets-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/attribs/gl-vertexattribipointer-offsets.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertexattribipointer-offsets.html b/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertexattribipointer-offsets.html >new file mode 100644 >index 00000000000..982b3281485 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertexattribipointer-offsets.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-vertexattribipointer-offsets.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/attribs/gl-vertexattribipointer-offsets.html">../../resources/webgl_test_files/conformance2/attribs/gl-vertexattribipointer-offsets.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/attribs/gl-vertexattribipointer-offsets.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertexattribipointer.html b/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertexattribipointer.html >new file mode 100644 >index 00000000000..343442128fe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/attribs/gl-vertexattribipointer.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-vertexattribipointer.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/attribs/gl-vertexattribipointer.html">../../resources/webgl_test_files/conformance2/attribs/gl-vertexattribipointer.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/attribs/gl-vertexattribipointer.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/buffers/bound-buffer-size-change-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/buffers/bound-buffer-size-change-test-expected.txt >new file mode 100644 >index 00000000000..3322b4ac2ab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/buffers/bound-buffer-size-change-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/buffers/bound-buffer-size-change-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/buffers/bound-buffer-size-change-test.html b/LayoutTests/webgl/2.0.0/conformance2/buffers/bound-buffer-size-change-test.html >new file mode 100644 >index 00000000000..034efc951cc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/buffers/bound-buffer-size-change-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for bound-buffer-size-change-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/buffers/bound-buffer-size-change-test.html">../../resources/webgl_test_files/conformance2/buffers/bound-buffer-size-change-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/buffers/bound-buffer-size-change-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-copying-contents-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-copying-contents-expected.txt >new file mode 100644 >index 00000000000..3e532b1ecc1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-copying-contents-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/buffers/buffer-copying-contents.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-copying-contents.html b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-copying-contents.html >new file mode 100644 >index 00000000000..ba953cb7d99 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-copying-contents.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for buffer-copying-contents.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/buffers/buffer-copying-contents.html">../../resources/webgl_test_files/conformance2/buffers/buffer-copying-contents.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/buffers/buffer-copying-contents.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-copying-restrictions-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-copying-restrictions-expected.txt >new file mode 100644 >index 00000000000..82a70711f66 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-copying-restrictions-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/buffers/buffer-copying-restrictions.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-copying-restrictions.html b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-copying-restrictions.html >new file mode 100644 >index 00000000000..a42e2ac9e0b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-copying-restrictions.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for buffer-copying-restrictions.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/buffers/buffer-copying-restrictions.html">../../resources/webgl_test_files/conformance2/buffers/buffer-copying-restrictions.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/buffers/buffer-copying-restrictions.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-data-and-buffer-sub-data-sub-source-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-data-and-buffer-sub-data-sub-source-expected.txt >new file mode 100644 >index 00000000000..bf51d7a8b3a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-data-and-buffer-sub-data-sub-source-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/buffers/buffer-data-and-buffer-sub-data-sub-source.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-data-and-buffer-sub-data-sub-source.html b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-data-and-buffer-sub-data-sub-source.html >new file mode 100644 >index 00000000000..d2f03cbbbf3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-data-and-buffer-sub-data-sub-source.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for buffer-data-and-buffer-sub-data-sub-source.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/buffers/buffer-data-and-buffer-sub-data-sub-source.html">../../resources/webgl_test_files/conformance2/buffers/buffer-data-and-buffer-sub-data-sub-source.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/buffers/buffer-data-and-buffer-sub-data-sub-source.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-overflow-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-overflow-test-expected.txt >new file mode 100644 >index 00000000000..09b38e69ccb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-overflow-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/buffers/buffer-overflow-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-overflow-test.html b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-overflow-test.html >new file mode 100644 >index 00000000000..f066b2fdb7e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-overflow-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for buffer-overflow-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/buffers/buffer-overflow-test.html">../../resources/webgl_test_files/conformance2/buffers/buffer-overflow-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/buffers/buffer-overflow-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-type-restrictions-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-type-restrictions-expected.txt >new file mode 100644 >index 00000000000..b513cfb7e86 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-type-restrictions-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/buffers/buffer-type-restrictions.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-type-restrictions.html b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-type-restrictions.html >new file mode 100644 >index 00000000000..924acc8c969 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/buffers/buffer-type-restrictions.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for buffer-type-restrictions.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/buffers/buffer-type-restrictions.html">../../resources/webgl_test_files/conformance2/buffers/buffer-type-restrictions.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/buffers/buffer-type-restrictions.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/buffers/get-buffer-sub-data-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/buffers/get-buffer-sub-data-expected.txt >new file mode 100644 >index 00000000000..267102f01b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/buffers/get-buffer-sub-data-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/buffers/get-buffer-sub-data.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/buffers/get-buffer-sub-data.html b/LayoutTests/webgl/2.0.0/conformance2/buffers/get-buffer-sub-data.html >new file mode 100644 >index 00000000000..1fbd2bba149 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/buffers/get-buffer-sub-data.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for get-buffer-sub-data.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/buffers/get-buffer-sub-data.html">../../resources/webgl_test_files/conformance2/buffers/get-buffer-sub-data.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/buffers/get-buffer-sub-data.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/buffers/one-large-uniform-buffer-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/buffers/one-large-uniform-buffer-expected.txt >new file mode 100644 >index 00000000000..93487d828e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/buffers/one-large-uniform-buffer-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/buffers/one-large-uniform-buffer.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/buffers/one-large-uniform-buffer.html b/LayoutTests/webgl/2.0.0/conformance2/buffers/one-large-uniform-buffer.html >new file mode 100644 >index 00000000000..674ac7ab92a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/buffers/one-large-uniform-buffer.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for one-large-uniform-buffer.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/buffers/one-large-uniform-buffer.html">../../resources/webgl_test_files/conformance2/buffers/one-large-uniform-buffer.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/buffers/one-large-uniform-buffer.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/buffers/uniform-buffers-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/buffers/uniform-buffers-expected.txt >new file mode 100644 >index 00000000000..64c0fdba713 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/buffers/uniform-buffers-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/buffers/uniform-buffers.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/buffers/uniform-buffers.html b/LayoutTests/webgl/2.0.0/conformance2/buffers/uniform-buffers.html >new file mode 100644 >index 00000000000..e0e3e88f57f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/buffers/uniform-buffers.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniform-buffers.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/buffers/uniform-buffers.html">../../resources/webgl_test_files/conformance2/buffers/uniform-buffers.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/buffers/uniform-buffers.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/context/constants-and-properties-2-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/context/constants-and-properties-2-expected.txt >new file mode 100644 >index 00000000000..b1ea2b8c26e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/context/constants-and-properties-2-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/context/constants-and-properties-2.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/context/constants-and-properties-2.html b/LayoutTests/webgl/2.0.0/conformance2/context/constants-and-properties-2.html >new file mode 100644 >index 00000000000..9dc2e5e20d1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/context/constants-and-properties-2.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for constants-and-properties-2.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/context/constants-and-properties-2.html">../../resources/webgl_test_files/conformance2/context/constants-and-properties-2.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/context/constants-and-properties-2.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/context/context-attributes-depth-stencil-antialias-obeyed-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/context/context-attributes-depth-stencil-antialias-obeyed-expected.txt >new file mode 100644 >index 00000000000..6960acd4bb9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/context/context-attributes-depth-stencil-antialias-obeyed-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/context/context-attributes-depth-stencil-antialias-obeyed.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/context/context-attributes-depth-stencil-antialias-obeyed.html b/LayoutTests/webgl/2.0.0/conformance2/context/context-attributes-depth-stencil-antialias-obeyed.html >new file mode 100644 >index 00000000000..be37c7106a4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/context/context-attributes-depth-stencil-antialias-obeyed.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for context-attributes-depth-stencil-antialias-obeyed.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/context/context-attributes-depth-stencil-antialias-obeyed.html">../../resources/webgl_test_files/conformance2/context/context-attributes-depth-stencil-antialias-obeyed.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/context/context-attributes-depth-stencil-antialias-obeyed.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/context/context-type-test-2-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/context/context-type-test-2-expected.txt >new file mode 100644 >index 00000000000..3510dafab7c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/context/context-type-test-2-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/context/context-type-test-2.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/context/context-type-test-2.html b/LayoutTests/webgl/2.0.0/conformance2/context/context-type-test-2.html >new file mode 100644 >index 00000000000..203254a4e51 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/context/context-type-test-2.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for context-type-test-2.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/context/context-type-test-2.html">../../resources/webgl_test_files/conformance2/context/context-type-test-2.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/context/context-type-test-2.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/context/methods-2-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/context/methods-2-expected.txt >new file mode 100644 >index 00000000000..8aaf933cb63 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/context/methods-2-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/context/methods-2.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/context/methods-2.html b/LayoutTests/webgl/2.0.0/conformance2/context/methods-2.html >new file mode 100644 >index 00000000000..63666893e0c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/context/methods-2.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for methods-2.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/context/methods-2.html">../../resources/webgl_test_files/conformance2/context/methods-2.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/context/methods-2.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/extensions/ext-color-buffer-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/extensions/ext-color-buffer-float-expected.txt >new file mode 100644 >index 00000000000..838574144f0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/extensions/ext-color-buffer-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/extensions/ext-color-buffer-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/extensions/ext-color-buffer-float.html b/LayoutTests/webgl/2.0.0/conformance2/extensions/ext-color-buffer-float.html >new file mode 100644 >index 00000000000..32847f5b417 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/extensions/ext-color-buffer-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for ext-color-buffer-float.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/extensions/ext-color-buffer-float.html">../../resources/webgl_test_files/conformance2/extensions/ext-color-buffer-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/extensions/ext-color-buffer-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/extensions/ext-disjoint-timer-query-webgl2-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/extensions/ext-disjoint-timer-query-webgl2-expected.txt >new file mode 100644 >index 00000000000..8d43bc2f2e8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/extensions/ext-disjoint-timer-query-webgl2-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/extensions/ext-disjoint-timer-query-webgl2.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/extensions/ext-disjoint-timer-query-webgl2.html b/LayoutTests/webgl/2.0.0/conformance2/extensions/ext-disjoint-timer-query-webgl2.html >new file mode 100644 >index 00000000000..baa4f17230f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/extensions/ext-disjoint-timer-query-webgl2.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for ext-disjoint-timer-query-webgl2.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/extensions/ext-disjoint-timer-query-webgl2.html">../../resources/webgl_test_files/conformance2/extensions/ext-disjoint-timer-query-webgl2.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/extensions/ext-disjoint-timer-query-webgl2.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/extensions/promoted-extensions-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/extensions/promoted-extensions-expected.txt >new file mode 100644 >index 00000000000..9d8f705b5bb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/extensions/promoted-extensions-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/extensions/promoted-extensions.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/extensions/promoted-extensions-in-shaders-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/extensions/promoted-extensions-in-shaders-expected.txt >new file mode 100644 >index 00000000000..9c13639d8ba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/extensions/promoted-extensions-in-shaders-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/extensions/promoted-extensions-in-shaders.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/extensions/promoted-extensions-in-shaders.html b/LayoutTests/webgl/2.0.0/conformance2/extensions/promoted-extensions-in-shaders.html >new file mode 100644 >index 00000000000..71da4778cc2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/extensions/promoted-extensions-in-shaders.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for promoted-extensions-in-shaders.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/extensions/promoted-extensions-in-shaders.html">../../resources/webgl_test_files/conformance2/extensions/promoted-extensions-in-shaders.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/extensions/promoted-extensions-in-shaders.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/extensions/promoted-extensions.html b/LayoutTests/webgl/2.0.0/conformance2/extensions/promoted-extensions.html >new file mode 100644 >index 00000000000..cc77b3d3f2e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/extensions/promoted-extensions.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for promoted-extensions.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/extensions/promoted-extensions.html">../../resources/webgl_test_files/conformance2/extensions/promoted-extensions.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/extensions/promoted-extensions.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-as-return-value-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-as-return-value-expected.txt >new file mode 100644 >index 00000000000..221b91a0bfd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-as-return-value-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/array-as-return-value.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-as-return-value.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-as-return-value.html >new file mode 100644 >index 00000000000..d7a7d50f2fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-as-return-value.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array-as-return-value.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/array-as-return-value.html">../../resources/webgl_test_files/conformance2/glsl3/array-as-return-value.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/array-as-return-value.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-assign-constructor-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-assign-constructor-expected.txt >new file mode 100644 >index 00000000000..0611499c85f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-assign-constructor-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/array-assign-constructor.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-assign-constructor.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-assign-constructor.html >new file mode 100644 >index 00000000000..023a49b056b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-assign-constructor.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array-assign-constructor.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/array-assign-constructor.html">../../resources/webgl_test_files/conformance2/glsl3/array-assign-constructor.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/array-assign-constructor.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-assign-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-assign-expected.txt >new file mode 100644 >index 00000000000..1ea955c8df9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-assign-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/array-assign.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-assign.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-assign.html >new file mode 100644 >index 00000000000..837f82e0552 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-assign.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array-assign.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/array-assign.html">../../resources/webgl_test_files/conformance2/glsl3/array-assign.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/array-assign.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-complex-indexing-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-complex-indexing-expected.txt >new file mode 100644 >index 00000000000..bd1431f2357 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-complex-indexing-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/array-complex-indexing.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-complex-indexing.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-complex-indexing.html >new file mode 100644 >index 00000000000..ccf6802a529 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-complex-indexing.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array-complex-indexing.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/array-complex-indexing.html">../../resources/webgl_test_files/conformance2/glsl3/array-complex-indexing.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/array-complex-indexing.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-element-increment-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-element-increment-expected.txt >new file mode 100644 >index 00000000000..956f3963780 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-element-increment-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/array-element-increment.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-element-increment.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-element-increment.html >new file mode 100644 >index 00000000000..384fd6d5ebe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-element-increment.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array-element-increment.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/array-element-increment.html">../../resources/webgl_test_files/conformance2/glsl3/array-element-increment.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/array-element-increment.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-equality-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-equality-expected.txt >new file mode 100644 >index 00000000000..1c3cc9203bc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-equality-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/array-equality.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-equality.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-equality.html >new file mode 100644 >index 00000000000..7113c2a072e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-equality.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array-equality.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/array-equality.html">../../resources/webgl_test_files/conformance2/glsl3/array-equality.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/array-equality.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-in-complex-expression-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-in-complex-expression-expected.txt >new file mode 100644 >index 00000000000..50395b1fa04 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-in-complex-expression-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/array-in-complex-expression.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-in-complex-expression.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-in-complex-expression.html >new file mode 100644 >index 00000000000..56238bdd150 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/array-in-complex-expression.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array-in-complex-expression.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/array-in-complex-expression.html">../../resources/webgl_test_files/conformance2/glsl3/array-in-complex-expression.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/array-in-complex-expression.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/attrib-location-length-limits-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/attrib-location-length-limits-expected.txt >new file mode 100644 >index 00000000000..77812ee3f4b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/attrib-location-length-limits-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/attrib-location-length-limits.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/attrib-location-length-limits.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/attrib-location-length-limits.html >new file mode 100644 >index 00000000000..654a5f5e86f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/attrib-location-length-limits.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for attrib-location-length-limits.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/attrib-location-length-limits.html">../../resources/webgl_test_files/conformance2/glsl3/attrib-location-length-limits.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/attrib-location-length-limits.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec-expected.txt >new file mode 100644 >index 00000000000..dd842ae9940 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec.html >new file mode 100644 >index 00000000000..ef821fc9790 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for bool-type-cast-bug-uint-ivec-uvec.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec.html">../../resources/webgl_test_files/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays-expected.txt >new file mode 100644 >index 00000000000..23472cd7427 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/compare-structs-containing-arrays.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays.html >new file mode 100644 >index 00000000000..843c986618c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for compare-structs-containing-arrays.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/compare-structs-containing-arrays.html">../../resources/webgl_test_files/conformance2/glsl3/compare-structs-containing-arrays.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/compare-structs-containing-arrays.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination-expected.txt >new file mode 100644 >index 00000000000..ffcb2828ef2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/compound-assignment-type-combination.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination.html >new file mode 100644 >index 00000000000..83bb6551958 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for compound-assignment-type-combination.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/compound-assignment-type-combination.html">../../resources/webgl_test_files/conformance2/glsl3/compound-assignment-type-combination.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/compound-assignment-type-combination.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/const-array-init-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/const-array-init-expected.txt >new file mode 100644 >index 00000000000..a0e726e5230 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/const-array-init-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/const-array-init.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/const-array-init.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/const-array-init.html >new file mode 100644 >index 00000000000..43a6145e94a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/const-array-init.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for const-array-init.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/const-array-init.html">../../resources/webgl_test_files/conformance2/glsl3/const-array-init.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/const-array-init.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/forbidden-operators-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/forbidden-operators-expected.txt >new file mode 100644 >index 00000000000..8f9539aaebb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/forbidden-operators-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/forbidden-operators.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/forbidden-operators.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/forbidden-operators.html >new file mode 100644 >index 00000000000..274b92cf9c0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/forbidden-operators.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for forbidden-operators.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/forbidden-operators.html">../../resources/webgl_test_files/conformance2/glsl3/forbidden-operators.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/forbidden-operators.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/frag-depth-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/frag-depth-expected.txt >new file mode 100644 >index 00000000000..73617105bc6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/frag-depth-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/frag-depth.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/frag-depth.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/frag-depth.html >new file mode 100644 >index 00000000000..a89cdcfd0c2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/frag-depth.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for frag-depth.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/frag-depth.html">../../resources/webgl_test_files/conformance2/glsl3/frag-depth.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/frag-depth.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/invalid-default-precision-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/invalid-default-precision-expected.txt >new file mode 100644 >index 00000000000..ac2f3bae2f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/invalid-default-precision-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/invalid-default-precision.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/invalid-default-precision.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/invalid-default-precision.html >new file mode 100644 >index 00000000000..492fdd716a6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/invalid-default-precision.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for invalid-default-precision.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/invalid-default-precision.html">../../resources/webgl_test_files/conformance2/glsl3/invalid-default-precision.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/invalid-default-precision.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/invalid-invariant-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/invalid-invariant-expected.txt >new file mode 100644 >index 00000000000..83864227e07 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/invalid-invariant-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/invalid-invariant.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/invalid-invariant.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/invalid-invariant.html >new file mode 100644 >index 00000000000..5e3f6919f67 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/invalid-invariant.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for invalid-invariant.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/invalid-invariant.html">../../resources/webgl_test_files/conformance2/glsl3/invalid-invariant.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/invalid-invariant.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/loops-with-side-effects-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/loops-with-side-effects-expected.txt >new file mode 100644 >index 00000000000..de6a5006b5b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/loops-with-side-effects-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/loops-with-side-effects.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/loops-with-side-effects.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/loops-with-side-effects.html >new file mode 100644 >index 00000000000..9cc4e7f44b3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/loops-with-side-effects.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for loops-with-side-effects.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/loops-with-side-effects.html">../../resources/webgl_test_files/conformance2/glsl3/loops-with-side-effects.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/loops-with-side-effects.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/misplaced-version-directive-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/misplaced-version-directive-expected.txt >new file mode 100644 >index 00000000000..8a2f466bbf0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/misplaced-version-directive-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/misplaced-version-directive.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/misplaced-version-directive.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/misplaced-version-directive.html >new file mode 100644 >index 00000000000..e174325e3f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/misplaced-version-directive.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for misplaced-version-directive.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/misplaced-version-directive.html">../../resources/webgl_test_files/conformance2/glsl3/misplaced-version-directive.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/misplaced-version-directive.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader-expected.txt >new file mode 100644 >index 00000000000..dfb68963b48 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/no-attribute-vertex-shader.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader.html >new file mode 100644 >index 00000000000..702ffca1ac7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for no-attribute-vertex-shader.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/no-attribute-vertex-shader.html">../../resources/webgl_test_files/conformance2/glsl3/no-attribute-vertex-shader.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/no-attribute-vertex-shader.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/sampler-no-precision-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/sampler-no-precision-expected.txt >new file mode 100644 >index 00000000000..60a7e899814 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/sampler-no-precision-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/sampler-no-precision.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/sampler-no-precision.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/sampler-no-precision.html >new file mode 100644 >index 00000000000..2eeef1381d0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/sampler-no-precision.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sampler-no-precision.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/sampler-no-precision.html">../../resources/webgl_test_files/conformance2/glsl3/sampler-no-precision.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/sampler-no-precision.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/sequence-operator-returns-non-constant-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/sequence-operator-returns-non-constant-expected.txt >new file mode 100644 >index 00000000000..f43dc64a5c7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/sequence-operator-returns-non-constant-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/sequence-operator-returns-non-constant.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/sequence-operator-returns-non-constant.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/sequence-operator-returns-non-constant.html >new file mode 100644 >index 00000000000..cb52bad19bd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/sequence-operator-returns-non-constant.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sequence-operator-returns-non-constant.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/sequence-operator-returns-non-constant.html">../../resources/webgl_test_files/conformance2/glsl3/sequence-operator-returns-non-constant.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/sequence-operator-returns-non-constant.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-linking-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-linking-expected.txt >new file mode 100644 >index 00000000000..582d346d5cd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-linking-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/shader-linking.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-linking.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-linking.html >new file mode 100644 >index 00000000000..241d1511b32 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-linking.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-linking.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/shader-linking.html">../../resources/webgl_test_files/conformance2/glsl3/shader-linking.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/shader-linking.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-define-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-define-expected.txt >new file mode 100644 >index 00000000000..55bd6ae1618 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-define-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/shader-with-1024-character-define.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-define.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-define.html >new file mode 100644 >index 00000000000..965c6659247 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-define.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-1024-character-define.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/shader-with-1024-character-define.html">../../resources/webgl_test_files/conformance2/glsl3/shader-with-1024-character-define.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/shader-with-1024-character-define.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-identifier.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-identifier.frag-expected.txt >new file mode 100644 >index 00000000000..707a6bfa8e5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-identifier.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/shader-with-1024-character-identifier.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-identifier.frag.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-identifier.frag.html >new file mode 100644 >index 00000000000..70bdb672bdb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-identifier.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-1024-character-identifier.frag.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/shader-with-1024-character-identifier.frag.html">../../resources/webgl_test_files/conformance2/glsl3/shader-with-1024-character-identifier.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/shader-with-1024-character-identifier.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1025-character-define-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1025-character-define-expected.txt >new file mode 100644 >index 00000000000..26e3c270693 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1025-character-define-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/shader-with-1025-character-define.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1025-character-define.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1025-character-define.html >new file mode 100644 >index 00000000000..7ca0b19a72f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1025-character-define.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-1025-character-define.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/shader-with-1025-character-define.html">../../resources/webgl_test_files/conformance2/glsl3/shader-with-1025-character-define.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/shader-with-1025-character-define.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1025-character-identifier.frag-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1025-character-identifier.frag-expected.txt >new file mode 100644 >index 00000000000..b56daa32c41 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1025-character-identifier.frag-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/shader-with-1025-character-identifier.frag.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1025-character-identifier.frag.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1025-character-identifier.frag.html >new file mode 100644 >index 00000000000..9577f57038f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-1025-character-identifier.frag.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-1025-character-identifier.frag.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/shader-with-1025-character-identifier.frag.html">../../resources/webgl_test_files/conformance2/glsl3/shader-with-1025-character-identifier.frag.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/shader-with-1025-character-identifier.frag.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-invalid-characters-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-invalid-characters-expected.txt >new file mode 100644 >index 00000000000..cb767fc6754 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-invalid-characters-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/shader-with-invalid-characters.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-invalid-characters.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-invalid-characters.html >new file mode 100644 >index 00000000000..d8c4bd43a85 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-invalid-characters.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-invalid-characters.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/shader-with-invalid-characters.html">../../resources/webgl_test_files/conformance2/glsl3/shader-with-invalid-characters.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/shader-with-invalid-characters.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt >new file mode 100644 >index 00000000000..feb71315ed7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/shader-with-mis-matching-uniform-block.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block.html >new file mode 100644 >index 00000000000..7e193bf57dd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shader-with-mis-matching-uniform-block.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/shader-with-mis-matching-uniform-block.html">../../resources/webgl_test_files/conformance2/glsl3/shader-with-mis-matching-uniform-block.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/shader-with-mis-matching-uniform-block.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition-expected.txt >new file mode 100644 >index 00000000000..496d8e85724 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/short-circuiting-in-loop-condition.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition.html >new file mode 100644 >index 00000000000..94436dbe668 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for short-circuiting-in-loop-condition.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/short-circuiting-in-loop-condition.html">../../resources/webgl_test_files/conformance2/glsl3/short-circuiting-in-loop-condition.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/short-circuiting-in-loop-condition.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range-expected.txt >new file mode 100644 >index 00000000000..0620f70be86 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/texture-offset-out-of-range.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range.html >new file mode 100644 >index 00000000000..b52f6f25bcc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-offset-out-of-range.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/texture-offset-out-of-range.html">../../resources/webgl_test_files/conformance2/glsl3/texture-offset-out-of-range.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/texture-offset-out-of-range.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate-expected.txt >new file mode 100644 >index 00000000000..ad4dc495700 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/texture-offset-uniform-texture-coordinate.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate.html >new file mode 100644 >index 00000000000..e4cf8c59aec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-offset-uniform-texture-coordinate.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/texture-offset-uniform-texture-coordinate.html">../../resources/webgl_test_files/conformance2/glsl3/texture-offset-uniform-texture-coordinate.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/texture-offset-uniform-texture-coordinate.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions-expected.txt >new file mode 100644 >index 00000000000..9a723a6b6ed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/tricky-loop-conditions.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions.html >new file mode 100644 >index 00000000000..4c92da49152 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tricky-loop-conditions.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/tricky-loop-conditions.html">../../resources/webgl_test_files/conformance2/glsl3/tricky-loop-conditions.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/tricky-loop-conditions.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/unary-minus-operator-in-dynamic-loop-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/unary-minus-operator-in-dynamic-loop-expected.txt >new file mode 100644 >index 00000000000..06825862722 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/unary-minus-operator-in-dynamic-loop-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/unary-minus-operator-in-dynamic-loop.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/unary-minus-operator-in-dynamic-loop.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/unary-minus-operator-in-dynamic-loop.html >new file mode 100644 >index 00000000000..73cc86577dd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/unary-minus-operator-in-dynamic-loop.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for unary-minus-operator-in-dynamic-loop.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/unary-minus-operator-in-dynamic-loop.html">../../resources/webgl_test_files/conformance2/glsl3/unary-minus-operator-in-dynamic-loop.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/unary-minus-operator-in-dynamic-loop.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/uniform-block-layout-match-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/uniform-block-layout-match-expected.txt >new file mode 100644 >index 00000000000..a5fbe844179 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/uniform-block-layout-match-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/uniform-block-layout-match.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/uniform-block-layout-match.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/uniform-block-layout-match.html >new file mode 100644 >index 00000000000..51eba03baff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/uniform-block-layout-match.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniform-block-layout-match.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/uniform-block-layout-match.html">../../resources/webgl_test_files/conformance2/glsl3/uniform-block-layout-match.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/uniform-block-layout-match.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/uniform-block-layouts-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/uniform-block-layouts-expected.txt >new file mode 100644 >index 00000000000..a93e2a9af3e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/uniform-block-layouts-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/uniform-block-layouts.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/uniform-block-layouts.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/uniform-block-layouts.html >new file mode 100644 >index 00000000000..a7493e3b835 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/uniform-block-layouts.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniform-block-layouts.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/uniform-block-layouts.html">../../resources/webgl_test_files/conformance2/glsl3/uniform-block-layouts.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/uniform-block-layouts.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/uniform-location-length-limits-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/uniform-location-length-limits-expected.txt >new file mode 100644 >index 00000000000..716dac5ccbc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/uniform-location-length-limits-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/uniform-location-length-limits.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/uniform-location-length-limits.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/uniform-location-length-limits.html >new file mode 100644 >index 00000000000..2da4fc22e07 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/uniform-location-length-limits.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniform-location-length-limits.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/uniform-location-length-limits.html">../../resources/webgl_test_files/conformance2/glsl3/uniform-location-length-limits.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/uniform-location-length-limits.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/valid-invariant-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/valid-invariant-expected.txt >new file mode 100644 >index 00000000000..08ba7c4af1d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/valid-invariant-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/valid-invariant.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/valid-invariant.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/valid-invariant.html >new file mode 100644 >index 00000000000..2b1028b02f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/valid-invariant.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for valid-invariant.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/valid-invariant.html">../../resources/webgl_test_files/conformance2/glsl3/valid-invariant.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/valid-invariant.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-expected.txt >new file mode 100644 >index 00000000000..4372fc34fee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/vector-dynamic-indexing.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug-expected.txt >new file mode 100644 >index 00000000000..a2a0b5e143d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug.html >new file mode 100644 >index 00000000000..e269b1a0996 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for vector-dynamic-indexing-nv-driver-bug.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug.html">../../resources/webgl_test_files/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing.html b/LayoutTests/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing.html >new file mode 100644 >index 00000000000..a92e7ffa4b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for vector-dynamic-indexing.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/glsl3/vector-dynamic-indexing.html">../../resources/webgl_test_files/conformance2/glsl3/vector-dynamic-indexing.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/glsl3/vector-dynamic-indexing.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/misc/expando-loss-2-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/misc/expando-loss-2-expected.txt >new file mode 100644 >index 00000000000..2b64be36d19 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/misc/expando-loss-2-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/misc/expando-loss-2.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/misc/expando-loss-2.html b/LayoutTests/webgl/2.0.0/conformance2/misc/expando-loss-2.html >new file mode 100644 >index 00000000000..80ee72e6c7b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/misc/expando-loss-2.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for expando-loss-2.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/misc/expando-loss-2.html">../../resources/webgl_test_files/conformance2/misc/expando-loss-2.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/misc/expando-loss-2.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/misc/getextension-while-pbo-bound-stability-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/misc/getextension-while-pbo-bound-stability-expected.txt >new file mode 100644 >index 00000000000..7615fd06949 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/misc/getextension-while-pbo-bound-stability-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/misc/getextension-while-pbo-bound-stability.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/misc/getextension-while-pbo-bound-stability.html b/LayoutTests/webgl/2.0.0/conformance2/misc/getextension-while-pbo-bound-stability.html >new file mode 100644 >index 00000000000..57c9cec312a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/misc/getextension-while-pbo-bound-stability.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for getextension-while-pbo-bound-stability.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/misc/getextension-while-pbo-bound-stability.html">../../resources/webgl_test_files/conformance2/misc/getextension-while-pbo-bound-stability.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/misc/getextension-while-pbo-bound-stability.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/misc/instanceof-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/misc/instanceof-test-expected.txt >new file mode 100644 >index 00000000000..bd2c242d988 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/misc/instanceof-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/misc/instanceof-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/misc/instanceof-test.html b/LayoutTests/webgl/2.0.0/conformance2/misc/instanceof-test.html >new file mode 100644 >index 00000000000..4348d924bc2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/misc/instanceof-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for instanceof-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/misc/instanceof-test.html">../../resources/webgl_test_files/conformance2/misc/instanceof-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/misc/instanceof-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/misc/object-deletion-behaviour-2-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/misc/object-deletion-behaviour-2-expected.txt >new file mode 100644 >index 00000000000..a4381ff8404 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/misc/object-deletion-behaviour-2-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/misc/object-deletion-behaviour-2.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/misc/object-deletion-behaviour-2.html b/LayoutTests/webgl/2.0.0/conformance2/misc/object-deletion-behaviour-2.html >new file mode 100644 >index 00000000000..569c2342309 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/misc/object-deletion-behaviour-2.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for object-deletion-behaviour-2.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/misc/object-deletion-behaviour-2.html">../../resources/webgl_test_files/conformance2/misc/object-deletion-behaviour-2.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/misc/object-deletion-behaviour-2.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/misc/uninitialized-test-2-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/misc/uninitialized-test-2-expected.txt >new file mode 100644 >index 00000000000..a587b3da8fb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/misc/uninitialized-test-2-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/misc/uninitialized-test-2.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/misc/uninitialized-test-2.html b/LayoutTests/webgl/2.0.0/conformance2/misc/uninitialized-test-2.html >new file mode 100644 >index 00000000000..291f30e3c10 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/misc/uninitialized-test-2.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uninitialized-test-2.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/misc/uninitialized-test-2.html">../../resources/webgl_test_files/conformance2/misc/uninitialized-test-2.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/misc/uninitialized-test-2.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/misc/views-with-offsets-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/misc/views-with-offsets-expected.txt >new file mode 100644 >index 00000000000..4b63ed130c3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/misc/views-with-offsets-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/misc/views-with-offsets.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/misc/views-with-offsets.html b/LayoutTests/webgl/2.0.0/conformance2/misc/views-with-offsets.html >new file mode 100644 >index 00000000000..d9d392fa619 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/misc/views-with-offsets.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for views-with-offsets.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/misc/views-with-offsets.html">../../resources/webgl_test_files/conformance2/misc/views-with-offsets.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/misc/views-with-offsets.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/programs/gl-get-frag-data-location-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/programs/gl-get-frag-data-location-expected.txt >new file mode 100644 >index 00000000000..906b3a2ea44 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/programs/gl-get-frag-data-location-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/programs/gl-get-frag-data-location.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/programs/gl-get-frag-data-location.html b/LayoutTests/webgl/2.0.0/conformance2/programs/gl-get-frag-data-location.html >new file mode 100644 >index 00000000000..c8ec409dee5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/programs/gl-get-frag-data-location.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-get-frag-data-location.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/programs/gl-get-frag-data-location.html">../../resources/webgl_test_files/conformance2/programs/gl-get-frag-data-location.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/programs/gl-get-frag-data-location.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/query/occlusion-query-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/query/occlusion-query-expected.txt >new file mode 100644 >index 00000000000..a26830f4872 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/query/occlusion-query-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/query/occlusion-query.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/query/occlusion-query.html b/LayoutTests/webgl/2.0.0/conformance2/query/occlusion-query.html >new file mode 100644 >index 00000000000..a53c49b1592 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/query/occlusion-query.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for occlusion-query.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/query/occlusion-query.html">../../resources/webgl_test_files/conformance2/query/occlusion-query.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/query/occlusion-query.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/query/query-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/query/query-expected.txt >new file mode 100644 >index 00000000000..90570a3631a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/query/query-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/query/query.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/query/query.html b/LayoutTests/webgl/2.0.0/conformance2/query/query.html >new file mode 100644 >index 00000000000..49f90e9cc2a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/query/query.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for query.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/query/query.html">../../resources/webgl_test_files/conformance2/query/query.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/query/query.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/reading/format-r11f-g11f-b10f-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/reading/format-r11f-g11f-b10f-expected.txt >new file mode 100644 >index 00000000000..12341fc3371 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/reading/format-r11f-g11f-b10f-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/reading/format-r11f-g11f-b10f.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/reading/format-r11f-g11f-b10f.html b/LayoutTests/webgl/2.0.0/conformance2/reading/format-r11f-g11f-b10f.html >new file mode 100644 >index 00000000000..12559521b9e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/reading/format-r11f-g11f-b10f.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for format-r11f-g11f-b10f.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/reading/format-r11f-g11f-b10f.html">../../resources/webgl_test_files/conformance2/reading/format-r11f-g11f-b10f.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/reading/format-r11f-g11f-b10f.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-from-fbo-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-from-fbo-test-expected.txt >new file mode 100644 >index 00000000000..89c7db1f743 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-from-fbo-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/reading/read-pixels-from-fbo-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-from-fbo-test.html b/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-from-fbo-test.html >new file mode 100644 >index 00000000000..de5b4699582 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-from-fbo-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for read-pixels-from-fbo-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/reading/read-pixels-from-fbo-test.html">../../resources/webgl_test_files/conformance2/reading/read-pixels-from-fbo-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/reading/read-pixels-from-fbo-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-from-rgb8-into-pbo-bug-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-from-rgb8-into-pbo-bug-expected.txt >new file mode 100644 >index 00000000000..8402b60fb5b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-from-rgb8-into-pbo-bug-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/reading/read-pixels-from-rgb8-into-pbo-bug.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-from-rgb8-into-pbo-bug.html b/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-from-rgb8-into-pbo-bug.html >new file mode 100644 >index 00000000000..d0b4e909eeb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-from-rgb8-into-pbo-bug.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for read-pixels-from-rgb8-into-pbo-bug.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/reading/read-pixels-from-rgb8-into-pbo-bug.html">../../resources/webgl_test_files/conformance2/reading/read-pixels-from-rgb8-into-pbo-bug.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/reading/read-pixels-from-rgb8-into-pbo-bug.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-into-pixel-pack-buffer-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-into-pixel-pack-buffer-expected.txt >new file mode 100644 >index 00000000000..283591e06f3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-into-pixel-pack-buffer-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/reading/read-pixels-into-pixel-pack-buffer.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-into-pixel-pack-buffer.html b/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-into-pixel-pack-buffer.html >new file mode 100644 >index 00000000000..c70ecdf8c36 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-into-pixel-pack-buffer.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for read-pixels-into-pixel-pack-buffer.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/reading/read-pixels-into-pixel-pack-buffer.html">../../resources/webgl_test_files/conformance2/reading/read-pixels-into-pixel-pack-buffer.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/reading/read-pixels-into-pixel-pack-buffer.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-pack-parameters-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-pack-parameters-expected.txt >new file mode 100644 >index 00000000000..6f0d6dfa223 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-pack-parameters-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/reading/read-pixels-pack-parameters.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-pack-parameters.html b/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-pack-parameters.html >new file mode 100644 >index 00000000000..786b7c3950c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/reading/read-pixels-pack-parameters.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for read-pixels-pack-parameters.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/reading/read-pixels-pack-parameters.html">../../resources/webgl_test_files/conformance2/reading/read-pixels-pack-parameters.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/reading/read-pixels-pack-parameters.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/framebuffer-object-attachment-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/framebuffer-object-attachment-expected.txt >new file mode 100644 >index 00000000000..c406e39d6a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/framebuffer-object-attachment-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/renderbuffers/framebuffer-object-attachment.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/framebuffer-object-attachment.html b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/framebuffer-object-attachment.html >new file mode 100644 >index 00000000000..13d66f9ba80 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/framebuffer-object-attachment.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for framebuffer-object-attachment.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/renderbuffers/framebuffer-object-attachment.html">../../resources/webgl_test_files/conformance2/renderbuffers/framebuffer-object-attachment.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/renderbuffers/framebuffer-object-attachment.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/framebuffer-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/framebuffer-test-expected.txt >new file mode 100644 >index 00000000000..7916e8900ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/framebuffer-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/renderbuffers/framebuffer-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/framebuffer-test.html b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/framebuffer-test.html >new file mode 100644 >index 00000000000..48853d4cb37 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/framebuffer-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for framebuffer-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/renderbuffers/framebuffer-test.html">../../resources/webgl_test_files/conformance2/renderbuffers/framebuffer-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/renderbuffers/framebuffer-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/framebuffer-texture-layer-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/framebuffer-texture-layer-expected.txt >new file mode 100644 >index 00000000000..86191f773e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/framebuffer-texture-layer-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/renderbuffers/framebuffer-texture-layer.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/framebuffer-texture-layer.html b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/framebuffer-texture-layer.html >new file mode 100644 >index 00000000000..a6d66728120 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/framebuffer-texture-layer.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for framebuffer-texture-layer.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/renderbuffers/framebuffer-texture-layer.html">../../resources/webgl_test_files/conformance2/renderbuffers/framebuffer-texture-layer.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/renderbuffers/framebuffer-texture-layer.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/invalidate-framebuffer-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/invalidate-framebuffer-expected.txt >new file mode 100644 >index 00000000000..104f50f0f4b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/invalidate-framebuffer-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/renderbuffers/invalidate-framebuffer.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/invalidate-framebuffer.html b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/invalidate-framebuffer.html >new file mode 100644 >index 00000000000..fb66197d6b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/invalidate-framebuffer.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for invalidate-framebuffer.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/renderbuffers/invalidate-framebuffer.html">../../resources/webgl_test_files/conformance2/renderbuffers/invalidate-framebuffer.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/renderbuffers/invalidate-framebuffer.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/multisample-with-full-sample-counts-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/multisample-with-full-sample-counts-expected.txt >new file mode 100644 >index 00000000000..2b9d4d6a95f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/multisample-with-full-sample-counts-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/renderbuffers/multisample-with-full-sample-counts.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/multisample-with-full-sample-counts.html b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/multisample-with-full-sample-counts.html >new file mode 100644 >index 00000000000..5d987fed189 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/multisample-with-full-sample-counts.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multisample-with-full-sample-counts.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/renderbuffers/multisample-with-full-sample-counts.html">../../resources/webgl_test_files/conformance2/renderbuffers/multisample-with-full-sample-counts.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/renderbuffers/multisample-with-full-sample-counts.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/multisampled-renderbuffer-initialization-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/multisampled-renderbuffer-initialization-expected.txt >new file mode 100644 >index 00000000000..354aa340357 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/multisampled-renderbuffer-initialization-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/renderbuffers/multisampled-renderbuffer-initialization.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/multisampled-renderbuffer-initialization.html b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/multisampled-renderbuffer-initialization.html >new file mode 100644 >index 00000000000..6cfaea6670d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/multisampled-renderbuffer-initialization.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multisampled-renderbuffer-initialization.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/renderbuffers/multisampled-renderbuffer-initialization.html">../../resources/webgl_test_files/conformance2/renderbuffers/multisampled-renderbuffer-initialization.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/renderbuffers/multisampled-renderbuffer-initialization.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/readbuffer-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/readbuffer-expected.txt >new file mode 100644 >index 00000000000..bf9b9b84f8c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/readbuffer-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/renderbuffers/readbuffer.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/readbuffer.html b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/readbuffer.html >new file mode 100644 >index 00000000000..663ca577ce1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/renderbuffers/readbuffer.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for readbuffer.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/renderbuffers/readbuffer.html">../../resources/webgl_test_files/conformance2/renderbuffers/readbuffer.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/renderbuffers/readbuffer.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/attrib-type-match-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/attrib-type-match-expected.txt >new file mode 100644 >index 00000000000..f72695f04a6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/attrib-type-match-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/attrib-type-match.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/attrib-type-match.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/attrib-type-match.html >new file mode 100644 >index 00000000000..f8d3d900183 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/attrib-type-match.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for attrib-type-match.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/attrib-type-match.html">../../resources/webgl_test_files/conformance2/rendering/attrib-type-match.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/attrib-type-match.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-outofbounds-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-outofbounds-expected.txt >new file mode 100644 >index 00000000000..ae07bbb4c67 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-outofbounds-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-filter-outofbounds.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-outofbounds.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-outofbounds.html >new file mode 100644 >index 00000000000..da7c50308e7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-outofbounds.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for blitframebuffer-filter-outofbounds.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-filter-outofbounds.html">../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-filter-outofbounds.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-filter-outofbounds.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-srgb-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-srgb-expected.txt >new file mode 100644 >index 00000000000..77f546d25e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-srgb-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-filter-srgb.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-srgb.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-srgb.html >new file mode 100644 >index 00000000000..0665b6980cf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-srgb.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for blitframebuffer-filter-srgb.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-filter-srgb.html">../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-filter-srgb.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-filter-srgb.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-multisampled-readbuffer-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-multisampled-readbuffer-expected.txt >new file mode 100644 >index 00000000000..3b69e0ffedb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-multisampled-readbuffer-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-multisampled-readbuffer.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-multisampled-readbuffer.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-multisampled-readbuffer.html >new file mode 100644 >index 00000000000..9283f6adaf6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-multisampled-readbuffer.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for blitframebuffer-multisampled-readbuffer.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-multisampled-readbuffer.html">../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-multisampled-readbuffer.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-multisampled-readbuffer.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-outside-readbuffer-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-outside-readbuffer-expected.txt >new file mode 100644 >index 00000000000..ddd79732560 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-outside-readbuffer-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-outside-readbuffer.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-outside-readbuffer.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-outside-readbuffer.html >new file mode 100644 >index 00000000000..d177bb25551 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-outside-readbuffer.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for blitframebuffer-outside-readbuffer.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-outside-readbuffer.html">../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-outside-readbuffer.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-outside-readbuffer.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-scissor-enabled-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-scissor-enabled-expected.txt >new file mode 100644 >index 00000000000..2f023fd1e30 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-scissor-enabled-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-scissor-enabled.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-scissor-enabled.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-scissor-enabled.html >new file mode 100644 >index 00000000000..3125770104b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-scissor-enabled.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for blitframebuffer-scissor-enabled.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-scissor-enabled.html">../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-scissor-enabled.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-scissor-enabled.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-size-overflow-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-size-overflow-expected.txt >new file mode 100644 >index 00000000000..8e771b4f468 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-size-overflow-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-size-overflow.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-size-overflow.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-size-overflow.html >new file mode 100644 >index 00000000000..6c0f8746776 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-size-overflow.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for blitframebuffer-size-overflow.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-size-overflow.html">../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-size-overflow.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-size-overflow.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-srgb-and-linear-drawbuffers-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-srgb-and-linear-drawbuffers-expected.txt >new file mode 100644 >index 00000000000..b0d9ad8f4fe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-srgb-and-linear-drawbuffers-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-srgb-and-linear-drawbuffers.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-srgb-and-linear-drawbuffers.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-srgb-and-linear-drawbuffers.html >new file mode 100644 >index 00000000000..b2376311015 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-srgb-and-linear-drawbuffers.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for blitframebuffer-srgb-and-linear-drawbuffers.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-srgb-and-linear-drawbuffers.html">../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-srgb-and-linear-drawbuffers.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-srgb-and-linear-drawbuffers.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-stencil-only-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-stencil-only-expected.txt >new file mode 100644 >index 00000000000..940d511a195 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-stencil-only-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-stencil-only.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-stencil-only.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-stencil-only.html >new file mode 100644 >index 00000000000..0b10cc63fdb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-stencil-only.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for blitframebuffer-stencil-only.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-stencil-only.html">../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-stencil-only.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-stencil-only.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-test-expected.txt >new file mode 100644 >index 00000000000..e4e44605b15 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-test.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-test.html >new file mode 100644 >index 00000000000..4b5c24104e4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/blitframebuffer-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for blitframebuffer-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-test.html">../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/blitframebuffer-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/canvas-resizing-with-pbo-bound-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/canvas-resizing-with-pbo-bound-expected.txt >new file mode 100644 >index 00000000000..b82c23adb52 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/canvas-resizing-with-pbo-bound-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/canvas-resizing-with-pbo-bound.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/canvas-resizing-with-pbo-bound.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/canvas-resizing-with-pbo-bound.html >new file mode 100644 >index 00000000000..39c81c763d3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/canvas-resizing-with-pbo-bound.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for canvas-resizing-with-pbo-bound.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/canvas-resizing-with-pbo-bound.html">../../resources/webgl_test_files/conformance2/rendering/canvas-resizing-with-pbo-bound.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/canvas-resizing-with-pbo-bound.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/clear-func-buffer-type-match-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/clear-func-buffer-type-match-expected.txt >new file mode 100644 >index 00000000000..f1345937f2d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/clear-func-buffer-type-match-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/clear-func-buffer-type-match.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/clear-func-buffer-type-match.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/clear-func-buffer-type-match.html >new file mode 100644 >index 00000000000..fc9c7ea4d77 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/clear-func-buffer-type-match.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for clear-func-buffer-type-match.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/clear-func-buffer-type-match.html">../../resources/webgl_test_files/conformance2/rendering/clear-func-buffer-type-match.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/clear-func-buffer-type-match.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/clear-srgb-color-buffer-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/clear-srgb-color-buffer-expected.txt >new file mode 100644 >index 00000000000..5c0a2f82479 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/clear-srgb-color-buffer-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/clear-srgb-color-buffer.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/clear-srgb-color-buffer.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/clear-srgb-color-buffer.html >new file mode 100644 >index 00000000000..8af446f837b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/clear-srgb-color-buffer.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for clear-srgb-color-buffer.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/clear-srgb-color-buffer.html">../../resources/webgl_test_files/conformance2/rendering/clear-srgb-color-buffer.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/clear-srgb-color-buffer.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/clipping-wide-points-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/clipping-wide-points-expected.txt >new file mode 100644 >index 00000000000..3d68af0b939 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/clipping-wide-points-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/clipping-wide-points.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/clipping-wide-points.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/clipping-wide-points.html >new file mode 100644 >index 00000000000..07f95c93896 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/clipping-wide-points.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for clipping-wide-points.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/clipping-wide-points.html">../../resources/webgl_test_files/conformance2/rendering/clipping-wide-points.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/clipping-wide-points.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/draw-buffers-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/draw-buffers-expected.txt >new file mode 100644 >index 00000000000..c8f25cdd045 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/draw-buffers-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/draw-buffers.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/draw-buffers.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/draw-buffers.html >new file mode 100644 >index 00000000000..5542ea1cf96 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/draw-buffers.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for draw-buffers.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/draw-buffers.html">../../resources/webgl_test_files/conformance2/rendering/draw-buffers.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/draw-buffers.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/element-index-uint-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/element-index-uint-expected.txt >new file mode 100644 >index 00000000000..f4545b7dce8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/element-index-uint-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/element-index-uint.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/element-index-uint.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/element-index-uint.html >new file mode 100644 >index 00000000000..28cf37568ba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/element-index-uint.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for element-index-uint.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/element-index-uint.html">../../resources/webgl_test_files/conformance2/rendering/element-index-uint.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/element-index-uint.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/framebuffer-completeness-unaffected-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/framebuffer-completeness-unaffected-expected.txt >new file mode 100644 >index 00000000000..ddf5c344e0a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/framebuffer-completeness-unaffected-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/framebuffer-completeness-unaffected.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/framebuffer-completeness-unaffected.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/framebuffer-completeness-unaffected.html >new file mode 100644 >index 00000000000..81ac52d85cb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/framebuffer-completeness-unaffected.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for framebuffer-completeness-unaffected.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/framebuffer-completeness-unaffected.html">../../resources/webgl_test_files/conformance2/rendering/framebuffer-completeness-unaffected.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/framebuffer-completeness-unaffected.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/framebuffer-unsupported-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/framebuffer-unsupported-expected.txt >new file mode 100644 >index 00000000000..b244e3681b4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/framebuffer-unsupported-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/framebuffer-unsupported.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/framebuffer-unsupported.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/framebuffer-unsupported.html >new file mode 100644 >index 00000000000..c0e7e1aa6f0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/framebuffer-unsupported.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for framebuffer-unsupported.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/framebuffer-unsupported.html">../../resources/webgl_test_files/conformance2/rendering/framebuffer-unsupported.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/framebuffer-unsupported.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/fs-color-type-mismatch-color-buffer-type-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/fs-color-type-mismatch-color-buffer-type-expected.txt >new file mode 100644 >index 00000000000..0d5ce8e61c7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/fs-color-type-mismatch-color-buffer-type-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html >new file mode 100644 >index 00000000000..fe1f3fd23b3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for fs-color-type-mismatch-color-buffer-type.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html">../../resources/webgl_test_files/conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/instanced-arrays-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/instanced-arrays-expected.txt >new file mode 100644 >index 00000000000..d2b96a5db2b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/instanced-arrays-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/instanced-arrays.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/instanced-arrays.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/instanced-arrays.html >new file mode 100644 >index 00000000000..c51897109ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/instanced-arrays.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for instanced-arrays.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/instanced-arrays.html">../../resources/webgl_test_files/conformance2/rendering/instanced-arrays.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/instanced-arrays.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/instanced-rendering-bug-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/instanced-rendering-bug-expected.txt >new file mode 100644 >index 00000000000..45a7c6f445c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/instanced-rendering-bug-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/instanced-rendering-bug.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/instanced-rendering-bug.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/instanced-rendering-bug.html >new file mode 100644 >index 00000000000..f385ce64454 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/instanced-rendering-bug.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for instanced-rendering-bug.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/instanced-rendering-bug.html">../../resources/webgl_test_files/conformance2/rendering/instanced-rendering-bug.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/instanced-rendering-bug.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/out-of-bounds-index-buffers-after-copying-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/out-of-bounds-index-buffers-after-copying-expected.txt >new file mode 100644 >index 00000000000..b9dc61084a2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/out-of-bounds-index-buffers-after-copying-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/out-of-bounds-index-buffers-after-copying.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/out-of-bounds-index-buffers-after-copying.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/out-of-bounds-index-buffers-after-copying.html >new file mode 100644 >index 00000000000..a07652e27f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/out-of-bounds-index-buffers-after-copying.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for out-of-bounds-index-buffers-after-copying.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/out-of-bounds-index-buffers-after-copying.html">../../resources/webgl_test_files/conformance2/rendering/out-of-bounds-index-buffers-after-copying.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/out-of-bounds-index-buffers-after-copying.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/rendering-sampling-feedback-loop-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/rendering-sampling-feedback-loop-expected.txt >new file mode 100644 >index 00000000000..69787a24bf5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/rendering-sampling-feedback-loop-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/rendering-sampling-feedback-loop.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/rendering-sampling-feedback-loop.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/rendering-sampling-feedback-loop.html >new file mode 100644 >index 00000000000..dfd22172c9a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/rendering-sampling-feedback-loop.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for rendering-sampling-feedback-loop.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/rendering-sampling-feedback-loop.html">../../resources/webgl_test_files/conformance2/rendering/rendering-sampling-feedback-loop.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/rendering-sampling-feedback-loop.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/rgb-format-support-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/rgb-format-support-expected.txt >new file mode 100644 >index 00000000000..a1dcde1e977 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/rgb-format-support-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/rgb-format-support.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/rgb-format-support.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/rgb-format-support.html >new file mode 100644 >index 00000000000..a8de90ac1d3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/rgb-format-support.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for rgb-format-support.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/rgb-format-support.html">../../resources/webgl_test_files/conformance2/rendering/rgb-format-support.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/rgb-format-support.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/uniform-block-buffer-size-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/rendering/uniform-block-buffer-size-expected.txt >new file mode 100644 >index 00000000000..89b5fc45fba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/uniform-block-buffer-size-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/rendering/uniform-block-buffer-size.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/rendering/uniform-block-buffer-size.html b/LayoutTests/webgl/2.0.0/conformance2/rendering/uniform-block-buffer-size.html >new file mode 100644 >index 00000000000..51e4192b7db >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/rendering/uniform-block-buffer-size.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniform-block-buffer-size.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/rendering/uniform-block-buffer-size.html">../../resources/webgl_test_files/conformance2/rendering/uniform-block-buffer-size.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/rendering/uniform-block-buffer-size.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/samplers/sampler-drawing-test-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/samplers/sampler-drawing-test-expected.txt >new file mode 100644 >index 00000000000..e68d0af92bd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/samplers/sampler-drawing-test-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/samplers/sampler-drawing-test.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/samplers/sampler-drawing-test.html b/LayoutTests/webgl/2.0.0/conformance2/samplers/sampler-drawing-test.html >new file mode 100644 >index 00000000000..ed735ee3169 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/samplers/sampler-drawing-test.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sampler-drawing-test.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/samplers/sampler-drawing-test.html">../../resources/webgl_test_files/conformance2/samplers/sampler-drawing-test.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/samplers/sampler-drawing-test.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/samplers/samplers-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/samplers/samplers-expected.txt >new file mode 100644 >index 00000000000..7c8dc10ded6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/samplers/samplers-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/samplers/samplers.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/samplers/samplers.html b/LayoutTests/webgl/2.0.0/conformance2/samplers/samplers.html >new file mode 100644 >index 00000000000..d03393ab5fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/samplers/samplers.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for samplers.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/samplers/samplers.html">../../resources/webgl_test_files/conformance2/samplers/samplers.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/samplers/samplers.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/state/gl-enum-tests-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/state/gl-enum-tests-expected.txt >new file mode 100644 >index 00000000000..685c57fbe0e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/state/gl-enum-tests-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/state/gl-enum-tests.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/state/gl-enum-tests.html b/LayoutTests/webgl/2.0.0/conformance2/state/gl-enum-tests.html >new file mode 100644 >index 00000000000..eab1694bcbc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/state/gl-enum-tests.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-enum-tests.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/state/gl-enum-tests.html">../../resources/webgl_test_files/conformance2/state/gl-enum-tests.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/state/gl-enum-tests.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/state/gl-get-calls-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/state/gl-get-calls-expected.txt >new file mode 100644 >index 00000000000..c0b0c535319 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/state/gl-get-calls-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/state/gl-get-calls.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/state/gl-get-calls.html b/LayoutTests/webgl/2.0.0/conformance2/state/gl-get-calls.html >new file mode 100644 >index 00000000000..62794197ed4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/state/gl-get-calls.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-get-calls.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/state/gl-get-calls.html">../../resources/webgl_test_files/conformance2/state/gl-get-calls.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/state/gl-get-calls.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/state/gl-getstring-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/state/gl-getstring-expected.txt >new file mode 100644 >index 00000000000..8512f0f2bb1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/state/gl-getstring-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/state/gl-getstring.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/state/gl-getstring.html b/LayoutTests/webgl/2.0.0/conformance2/state/gl-getstring.html >new file mode 100644 >index 00000000000..5fcad6f57b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/state/gl-getstring.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-getstring.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/state/gl-getstring.html">../../resources/webgl_test_files/conformance2/state/gl-getstring.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/state/gl-getstring.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt >new file mode 100644 >index 00000000000..c9e159bd88d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/state/gl-object-get-calls.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/state/gl-object-get-calls.html b/LayoutTests/webgl/2.0.0/conformance2/state/gl-object-get-calls.html >new file mode 100644 >index 00000000000..540ea22f20b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/state/gl-object-get-calls.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-object-get-calls.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/state/gl-object-get-calls.html">../../resources/webgl_test_files/conformance2/state/gl-object-get-calls.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/state/gl-object-get-calls.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/sync/sync-webgl-specific-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/sync/sync-webgl-specific-expected.txt >new file mode 100644 >index 00000000000..b0d41e5bea7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/sync/sync-webgl-specific-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/sync/sync-webgl-specific.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/sync/sync-webgl-specific.html b/LayoutTests/webgl/2.0.0/conformance2/sync/sync-webgl-specific.html >new file mode 100644 >index 00000000000..e20a633af5b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/sync/sync-webgl-specific.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sync-webgl-specific.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/sync/sync-webgl-specific.html">../../resources/webgl_test_files/conformance2/sync/sync-webgl-specific.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/sync/sync-webgl-specific.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..0088254d06d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..c040ba465be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..93b2083b452 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..70678869435 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..a83a57fe0a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..67b8d6dee63 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..1939c358495 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r16f-red-float.html >new file mode 100644 >index 00000000000..b3d0023aa10 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..09a462bfcdb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..e5f47c0ecbd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..3a70ebc026e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r32f-red-float.html >new file mode 100644 >index 00000000000..ee343b8ec90 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..ba056b77317 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..c294f0f011f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..bb863e388a9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..0a144166ac3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..11440fdc1e3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..16cecd92dc3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..7fc3186e15f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..33d9c49acf6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..8ed01c44fb6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..223b90e4f08 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..7cc5bbd9b9f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..b5d82709236 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..c6bec9c9a07 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..c136252da46 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..d8b3bd6a690 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..2ac27310c27 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..5b8ab19d5f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..d0f6506b9d7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..6f6ef8049de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..b114d200d9b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..cc90475d73a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..0cafb2172e0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..5d0d1105877 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..03ca9cf16e2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..740ef943b6f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..4cbc4f75cb9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..85e0ed82ec2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..c4c2d6b8219 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..4c8510a1179 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..07474894a72 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..49244960697 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..9cd4d565e52 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..f0719b45838 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..59ef324ac1a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..04d922800b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..542a7c5f6f7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..f28657fa9d4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..074e0cf19f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..400747aa640 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..0b27d78da96 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..79e0cd7edb8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..208596996d7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..689f4e55204 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..ae4440fd2ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..8942ac89896 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..754fc8c5351 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..9629cecbec8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..ea8a38757d3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..da5a435f082 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..7f30624c373 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..d6878ca1022 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..4e648076b35 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..3c3e1f96670 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..3b8124ad4ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..5011088f7b4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..9ae3ab2db7a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..99d0601c315 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r16f-red-float.html >new file mode 100644 >index 00000000000..a7ec2e96c92 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..e8193f67d0f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..4fb0c36c491 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..d2727759728 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r32f-red-float.html >new file mode 100644 >index 00000000000..85ed7039240 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a99e4ac9422 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..41f4c19e198 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..bda97144124 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..c58eaf9d7ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..16bef23756f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..e0af91e2e81 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..db43f030724 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..840d38b8fd0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..42816135c77 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..121b962707a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..24445aeb7ea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..01f2ef4dc57 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..e1f9f33cada >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..b4cfa082560 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..9d302263cb6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..670beaa185f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..f942f7fe066 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..71edb642e83 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..ceca379d2ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..e1e6c6268c7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..34fd765fa2e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..c4de21e3234 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..e081400d367 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..0b1ae03f897 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..d6d7fc24dc5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..6f30617d0fa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..bfb00b03fe3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..e993abe586f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..f4934675395 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..7554d7a5b2f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..edb54296630 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..3b3301ff85d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..5179e950ecf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..1c2336cc909 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..aa9e8993f8e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..bcaa8ecd8e2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..6705a3827fb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..c3e75c1702a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..351ac6c90a4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..2f5fe5a1ef8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..aa8ed3a42f0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..9982393a4f0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..8e9588f3b23 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..59e7078ef6b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a8d71631894 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..2b93fd36448 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..d9275046dc0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..cfe17b15fef >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..70d4a54043f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..10c77d94ca4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..e0202d653cc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..e169d786f57 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..9934ded7fb4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..2d97156b614 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..9194024d854 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..a97f2468c75 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..221fb9093ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-float.html >new file mode 100644 >index 00000000000..dfe8d8e29ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..951aa61ad07 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..7dd1dc8c585 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..20a0bfaf582 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r32f-red-float.html >new file mode 100644 >index 00000000000..b07ff2126e6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..75fc3c56d3e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..07cdfd00017 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..abdde52789b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..44c09a25b53 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..012a81d836f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..8a4a18fd473 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..6f97604c640 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..fe3501a127f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..1edddd76327 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..1a8b3d6cc99 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..2204b591d17 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..78d98953403 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..730f088a42d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..2cd92aef866 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..d2066193fb7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..bf53de69e3f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..ee790b127a1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..d6e0571a2da >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..b7dd28164be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..9044e83d1fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..9abc9705349 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..6648c0e3cd5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..f8640fcc4d1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..16892afb780 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..8c032f53fd1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..cda2cb28c04 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..4e2a2067134 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..2d3a3f70a92 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..e08d4ab8f47 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..172643e95ac >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..ee3cbf5fb6d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..18d257a7f94 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..562c8568404 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..e4ab71d31f3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..b76cacafd2f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..be7df32d133 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..d9e4006650d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..ba1f4b9c213 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..f7d3692fd82 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..f109cac7c0c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..d0cd2a50659 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..a06e96af004 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..e399154e4cd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..f53388360df >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..bf49ce2fd56 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..dfe1115864a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..c7faf8e3680 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..f3309ab960d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..318279b1c87 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..afb475853fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..24fa21a6dbd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..8296e3fb15b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..2b9ccdffd12 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..691162a6ca1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..de75981163c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..36f8944c24a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..907072532a4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..d50c3ba3796 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..3476f22ceda >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..360f8a7fe43 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..e97763d6317 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-float.html >new file mode 100644 >index 00000000000..8bc393cfc60 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..6978e1e154a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..59e7d69285e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..5a3d198a4f9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r32f-red-float.html >new file mode 100644 >index 00000000000..a9eebb7eec9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..63c35de4c1f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..36a37299b6c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..5ee3b167e1d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..ca8eaf1cf27 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..44ccaae817a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..d75643100a9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..e071b5d7f75 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..d50d2bde3f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..a832a3d4e19 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..9975fdb4b2d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..776b79f800a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..1c60d765940 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..8a298019789 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..0fcbefb71f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..1b57667e18d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..9d815afddb7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..6d42807820f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..62c5e6e1513 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..4302f840f80 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..f152c0e715f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..b491024e201 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..f8b308cb2ad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..6bc1424a5e0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..baceeb04939 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..3b1c12897de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..2a04bd4ff67 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..8ed60b2434b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..e369a39e7ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..16e1776abfa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..a575ff246c2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..acc92e372c8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..a1e1ec6c969 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..605d7bde3f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..0e28d0d278e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..5fe71fc8289 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..7d257b53478 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..1f566a7cf4c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..62c7f8bc16e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..f81dcbf1850 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..f2cc680682e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..b59bb9a8fc6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..e543917d1d2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..c30f79da67b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..eeb24983815 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..6d89d04484b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..098ce488a4b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..d06f7b146f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..f42c59c5248 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..c8463ed2b04 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..6c18a22be23 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..3308bd57d37 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..1e33929720c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..56a90d021f3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..5a1c4464ed1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..a137f8e7dff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..73b66a1efcd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..8a18a16dca1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..ed1d1526b07 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..3c1db2bda59 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..0e8a3ddc74f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..cfc2ab28cf6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r16f-red-float.html >new file mode 100644 >index 00000000000..13a41ab580b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..7444d23a21a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..a0f59a15be8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..af11d2ddac9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r32f-red-float.html >new file mode 100644 >index 00000000000..4289b8f84b9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..8a8d670be98 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..d2cd8ec89dd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..46f3ede03cd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..fc20a99b0df >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..8f67cf58918 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..685828ffd4a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..58cace98278 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..9881991abb0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..3b100d285a0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..80272601049 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..167a909d8e4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..9bd9df1dda3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..e74c8d5d7ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..04d573ee066 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..8e00ec5ef59 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..5194356b3e8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..4a108570f4a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..97b67e57934 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..c654c843165 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..2f22908f48b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..7770837580e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..1820c5afa03 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..dd5dfc3a01a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..66759c8bb2f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..c048b0222de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..220215faef6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..35a86d6c0bc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..fa62586e947 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a894c91b74d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..04108eee92b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..fe03d3dff49 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..072bcbc6102 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..73b145fb0dc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..ba59876f5ac >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..7186790567e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..0b5d9b5acd8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..1e4a1734f53 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..21279a134fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..c281c06440a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..7ba86a07038 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..118186cd9bc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..dd9fd74448a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..b5625834320 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..58f46898d73 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..ccf1b34d197 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..f68fad36f32 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..0611078e4ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..106a2dde16b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..9883de438de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..bc49a10dedd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..d7307b4f810 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..551740eb88f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..83627fb3041 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..1e21fd8f2fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..35f55f592f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..9f4e20e720d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..e5887269846 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..caad807df60 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..ac7b5d41160 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..9d198441a7c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..841d016f47a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r16f-red-float.html >new file mode 100644 >index 00000000000..73b6dabef4f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..6c12af2495b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..5af9a0f32cd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..8368ab7ce93 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r32f-red-float.html >new file mode 100644 >index 00000000000..96338def105 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..5d262bd328e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..4d0abb1e069 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..4f61969dba3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..fe465425ab4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..8194a941f84 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..6e7732614d0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..5ef26e9b1c0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..0c6398f26e7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..312f77830ed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..2037c1b04bd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..b7c6bb91387 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..73e394bdc32 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..4f7d38b6e00 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..259ac045072 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..652b9bc8fbe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..eb53f7abf0f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..03dcd62a273 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..d2fda0d6cf7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..f02f900b86c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..3355efc12fb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..cea9e48843c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..b709ec23933 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..11cc4be712a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..e3302b70511 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..bb66bea61bb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..66dce874be6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..92e889d17ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..8a7430e333c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..52bbbb18815 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..0373892f5ad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a1cb8861aa8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..32f9900b7d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..32d07afa035 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..352b8a0634d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..edbbd221113 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..ab85edf472b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..cee8b0b528a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..d4a9cf29ac1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..85d0796b7a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..df756dc3424 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..c952eb6ac4b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..40cb4bf0f1f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..7c69990e43e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..2cfa8ea824a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..c602219d65b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..efef9cba1b5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..6c9fb6dd0e4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..c8d420039bb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..eaddbe31a08 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..23ee33008fa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..e69356866e8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..52533b70571 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..7c4d85fb1d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..3585c70b5de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..d0cea7fc370 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..94ecd7b52ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..394d9c46c84 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..e59703d056f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..d01865cce70 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..0977d00816f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..56c0a5c7141 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-float.html >new file mode 100644 >index 00000000000..5ba9ccff1cc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..98e39fdd13e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..4c73658708c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..1737dfe71fa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r32f-red-float.html >new file mode 100644 >index 00000000000..47b15f3f424 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..b20292bf874 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..94118acd10d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..0c414794325 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..e787bca4286 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..f1ae45d8103 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..15eb886747b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..2bf09dbadd3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..ae975799c8a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..34d49f96bda >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..89c5bf8f020 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..42ffdbb6a1a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..7f5a151f2b1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..87b93efb7da >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..019b4af688d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..1e81088c741 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..630c8823601 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..3342bb4d78c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..7d2ee1b5129 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..3c230dc2e20 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..e60bc39fa15 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..00d52e7ffc8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..182f8d33f78 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..b5036ba76fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..27bb1fca90a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..ea3ebe95f50 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..ac6670b6441 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..3543c8af4d4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..9f163769f0e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..4a8e96d2c68 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..be012c9d217 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..89fa2c75186 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..2d1fc4cb40a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..bb8b23d18b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..da40b537ad0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..661f6a8e4ef >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..dab59603e9e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..14a7f19ac52 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..e3ba2324244 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..91d54329af9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..78784939759 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..8644416524b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..bb4ce93e791 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..c9167409b5a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..fee7f725b44 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..13a6e9d9a83 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..a7bb5625d49 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..f4b64ef07e2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..1c3628ff902 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..e8133166b0d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..e027c109aa1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..434a4abe894 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..b440f248593 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..5391b898a55 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..af1dcb467b4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..4ec5c8c1676 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..5a678a33457 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..0af7241c22d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..fb479da71c3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..70f380d0b0e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..865373375e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..2a03a6795d5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-float.html >new file mode 100644 >index 00000000000..bc826529279 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..93f3f8c9e7a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..ed07233bc76 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..e770bcb1198 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r32f-red-float.html >new file mode 100644 >index 00000000000..11ba666362e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..db2025a221e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..361d1d9a61e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a5711467db6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..c9782d8e216 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..568bdab17d1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..8bc5fb282bd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..9dedf114dca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..611f17e0dcc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..00cd0172403 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..ed418f38c8f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..5cb32f41d2a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..864412c23dd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..6e6bfe1be19 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..853e5203355 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..15e15d15eff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..1a4e939d1ba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..70389f3455f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..7cc348b2c75 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..911d68f301a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..c7857adea88 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a5e224f4e34 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..30cf8307823 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..677b859a27d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..dd8d5c7ee88 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..cc8c4392f84 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..ffb12d65039 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..523a561435c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..e51f0c14950 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..aa995adfd08 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..0e004e9e5ab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..ac571f439d7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..130c5d897cd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..8f71568af38 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..d1bc79dca40 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..7b4c9239b67 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..1b7702498e7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..3d57a9a5a73 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..c942b425d06 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..5a5e3f145f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..d865587c520 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..cc00b9987bb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..9a347b6af5b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..13ff813b89a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..a0620d7c8ad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..a85c81b0fe1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..cdf4911b730 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..5c17359b3d8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..14c9204e1e6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..e471ce30222 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..925dee32e9d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..50e33a41f80 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..711770fb8e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..b527a2fb566 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..a64f3668e59 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..5e7629654a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..a799548a0b8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..6e246ef47ba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..88107fb4a35 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..fb0da15edd9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..fc6786285c0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..fba15e87993 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-float.html >new file mode 100644 >index 00000000000..79b4228fa6a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..64614d7d9b3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..451a099eefc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..59514b55a67 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r32f-red-float.html >new file mode 100644 >index 00000000000..8992746694b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..ed133b6c152 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..b0c12644ee5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..7c89b8eb713 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..91a91f4e956 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..bcde5637cc4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..56da808af85 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..2abd0ab791a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..f79576f6f33 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..48cd5ccbd2a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..63681ef1bb4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..39d00c3443f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..b4082a53fb7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..cdb997a8358 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..54d7fc5f749 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..c04cb3e0584 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..54d659b3774 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..70758489b63 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..89c15632a75 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..9f26672261f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..f9469bee16e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..28479b071f9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..285d7aa17ed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..54e355e3bb6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..ec84f65efae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..0aab703b035 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..90ac06a79aa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..6a4f25953bb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..fc846e44570 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..acd6e161f0d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..db8201a9692 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..17bd2c40df7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..3e69a6da636 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..8243b0fec03 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..3a4fec5adf1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..ba2e15b40a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..f2fef33515b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..693ed3651ea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..e177e07105f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..06bf948ce59 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..52e7bc1cbe0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..2bbef0cccd2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..c8cb0fcd2b4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..f9a9f2714c4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..20dec3af555 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..6ad668cd4a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..4f18099daad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..62211aa62e3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..9301460555f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..62b99076475 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..98cd8dd6229 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..e85edb848b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..2742a36a1f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..86373b22927 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..eccb2976e87 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..c1334ee8a57 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..8dd8d738840 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..26400139e31 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..d5ffaff9ad0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..7ac4262fb69 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..693c5e94ad1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..c259d382bc1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-float.html >new file mode 100644 >index 00000000000..702f066cde7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..98cba2fa8e8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..5f88bab878b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..c81bdc8847a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r32f-red-float.html >new file mode 100644 >index 00000000000..aa79f3fec88 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..d357f03aa3a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..bf0e63ddf2c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..36765fbbed2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..8f2bd317280 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..e585f332e41 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..5f3823f2030 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..c8f9ae79a95 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..e0297e49878 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..13a0345684c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..c27db2877e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..c1d4a5a3223 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..eadf0b56dbe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..5719c101ef3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..e5ad64f1a83 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..97415addf9a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..e9be4c96fe7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..b04ea9c294c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..9ee6f600013 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..430cd132081 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..0bb9fb9c3b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..d78ed9d646f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..8249346cad4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..6c23ea9c408 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..fd9adec436e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..2a911c89442 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..240b34cd9e5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..c5b47c9d23e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..779a2addefd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..432e8cfa3d3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..a6d60b80420 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..4043150e26a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..0eb39d623e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..ec3ce461f67 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..760436a7691 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..d384763101c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..828db72227b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..b6f527aeddb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..d2f3e6cae0a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..4fb45ef6843 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..6a2122d0800 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..d8ef6a3f1ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..c5f7419ac31 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..9e88a460ee3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..eec93b1a8bb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..16e406be9ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..2b6479558e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..89122c708fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..18d755fa94f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..b766d98bc97 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..dc53e784c8e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..cba2a9b3ffd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..7de2946751d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..306fd89e565 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..eadd862fb8a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..8e9a9d43a69 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..9d9372b1a61 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..87ed209b1d2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..71ce01521a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..9cd14a02a24 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..0cfb400d753 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..262a5882129 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-float.html >new file mode 100644 >index 00000000000..4b4560e6ffb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..a1ec78398ea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..27636668a6c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..0c8ab14e895 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r32f-red-float.html >new file mode 100644 >index 00000000000..f9d1fcdcb82 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..c5f2048767b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..baf0d24a3db >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..9f5b903b923 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..29e10761ccd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..a4719840cf1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..9ebcad013d0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..97f0a13aba5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..87a56846f3d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..ddfc7ab08db >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..0e2ad682151 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..cfc15cfbb46 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..d38e04fd820 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..e0a5c2223da >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..2dad13f41bc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..3b95b782c74 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..598f4f7590d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..4b3c546f782 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..967636c1c91 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..a9b777f6828 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..cbf92076b0d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..e1b7d5fde35 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..0a03d935c62 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..b20a6a3a4e4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..7e32aaca120 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..b3de2ece646 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..5363e0a64c8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..917c3bbb57f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..8ba3d1a631c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..7a06156897e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..b20632b7e6f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..58dcdbda579 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..f28379be077 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..3e593e9bc8a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..b126026822c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..3e8a16e591b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..d58130ec588 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..197fc4dc982 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..730b19d68e2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..cf00f9e44ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..914b3168784 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..38883a2eb70 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..52ce620740b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..ae038cd612b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..4ed0d780d44 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..b29c74bf0aa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..0ac083e4243 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..38829398a6f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..b9b14d8ebd5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..406d5460e1a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..8af9d600005 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..afb3e9d0da0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..692277a77cc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..42bd618f02f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..633adb54574 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..9b28bbae86b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..2f251adc53d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..5a6a5bbb357 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..f6febde36f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..6ffd2a53fa8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..ea625996ff3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..651304e98e3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-float.html >new file mode 100644 >index 00000000000..b98c5355a91 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..3c9e639ae83 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..1110911fc88 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..5531990593e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r32f-red-float.html >new file mode 100644 >index 00000000000..41aca0d98fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..3d9867f7bd8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..1b0b032f4e0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..1d8207d4e99 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..619c45df7d7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..1e0fb280557 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..b0e7a343942 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..1c1095bd567 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..94fb6cae1b6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..32fb4a36eb8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..4b5eac2f600 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..c62298ff66e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..6f9c36bebae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..ba9a6f67b45 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..abb96f1e945 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..4477b5c193c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..027bf47939f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..c2f653ae80f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..27c49c31cd2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..b03131f9fab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..604ca82a1a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..813439e2515 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..0199a317836 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..747408ddf7e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..8df5258bd62 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..462d1788c0a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..69f20c1a6c7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..1c515818567 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..5678271d40a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..1eb24350a4c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..6b77410c8db >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..973b600f192 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..f5f44723089 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..ad3626b69c3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..d06855ed308 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..b326582b0ce >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..2a003076b37 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..3d0c7ae14c8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..0757d087461 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..2a6ee5093ad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..cea005100c0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..1ed4ea8ba88 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..88e10e10a74 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..3a49c59128c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..0d4c8943b69 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..057b46018a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..3e4c96dae48 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..2fc45638708 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..737957b61a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a460fded614 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..fc417c3ebad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..93a05812e6e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..8ff92ec5eb5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..460512f56e0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..12a0a1d6575 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..7e73e800ab1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..6f35b8664a4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..35a0a43df91 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..71377bf8866 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..bd0ac4c3ba2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..fbb21054ace >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..0de8acc1490 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-float.html >new file mode 100644 >index 00000000000..d9ec53dd9bc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..639008d9058 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..444f3b6fd08 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..796c3276137 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r32f-red-float.html >new file mode 100644 >index 00000000000..221c2a68c10 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..c633fc27bb2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..71964d1c6c2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..8f28bc5d398 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..e567ecf09fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..87c76b5e24e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..5766fe141e5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..b2391baeeb9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..968d254315e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..149f3ee85be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..99fe9484760 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..5e54f87d511 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..9f673e56267 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..86f66fe412d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..3a09505de5c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..7cc17679fba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..0251164b7ba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..cae30a80135 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..e0dd2844baa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..a082fe10bfe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..a1e44e658d5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..aac7908d942 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..9199e3e2e93 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..4980813d7a2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..bb4841d4b63 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..27311d9fecb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..2e19f2e6850 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..b7298a8f66d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..6e147cc60a0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..e408a91f120 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..e73be986918 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..8989259c515 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..49736f42592 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..13da1b919f9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..0229d8a9a6f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..7825c741810 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..4bbfadca7bf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..a488f17275d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..6c6be5e0160 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..8b7235a6f1e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..e9f7ceb2d64 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..69d7048d749 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..839edc40a88 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..fdcb2d37d67 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..e655fb442ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..2e26d6df7a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..58bbdf2a73b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..028cf3e22ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..f44d1b2d98e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..11d691b1966 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..268b9f101b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..32fcfdf7605 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..a800c37613f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..3cd8df14ea5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..237c81c223d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..9b4b3f2c723 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..60ec47e7f37 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..57d9c2a888b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..92420351021 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..85a85e1d40b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..4fef71c979b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..161d028f047 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-float.html >new file mode 100644 >index 00000000000..107dc198053 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..61b7cb38c1c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..ba3c3b77811 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..de8aa027f25 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r32f-red-float.html >new file mode 100644 >index 00000000000..709b37bb905 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..1f2f62c2ffe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..bb089a095a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..52e5b866231 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..bb3c1c89de7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..502c2014c5e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..2bba17fdc01 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..e2294975c61 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..8ee4569c530 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..99a2740a7ef >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..fb50fa36305 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..1dc528febb3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..49f6d3f1504 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..688ec6a2e3d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..0416d52be2b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..3af4ee00faf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..ae6a2049f29 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..6d97b9562a1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..b025c71cc3e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..6dc02c6511f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..a98063a9f2b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..fc871763ed3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..3c2f0361e99 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..ad99db56587 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..2047e58529f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..363ddb4085c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..a8255a918d4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..85e91e0915b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..70919e7e5f5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..5649607d9cd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..79d8b9ae431 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..1af03a9c6d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..e33ea41cdd4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..042522ed228 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..d7b4284a936 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..efacb22ae5f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..bb9224fa143 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..515cbeb62c1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..3406f1a8499 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..ed1cf393309 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..8e450fca8b0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..26f31db5d1d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..5e892966473 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..df3ff0c33bc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..b5c6eb754de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..80edbff0bb1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..5fcd6cfca9f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..eef58799cd4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..ea0a7c6881b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..241e1c1ddaf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..0ba987020e0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..cd025ad2093 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..094b18f79e2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..f704f218e7c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..6ff3bc8ee6c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..f285384fe17 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..5916e829036 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..5d901762c3e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..471732ef1cd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..5407d486cb5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..d36748b52f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..2e02eec9373 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-float.html >new file mode 100644 >index 00000000000..11f967e9421 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..add69dc3a10 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..0cbf086f302 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..808d5473742 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r32f-red-float.html >new file mode 100644 >index 00000000000..a56a3a51370 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..895fc4d2b10 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..df6f17e2521 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..055497f3be0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..a6bf1dda404 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..902295a3f71 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..b1d39e88976 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..359d7ec64b5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..28294f74a5d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..23fe597178e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..d48b34eceb9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..3c8ff8a7fbd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..878d9f3bb8a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..0aa09c80bf6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..457f4e87c14 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..849e1a416b8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..991b55a103f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..95dd4743991 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..84bdbda7f63 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..6ec0c92d1da >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..f50f9690cd7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..8eb0350effd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..4f39cbd18a1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..c8e155e9857 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..e5d08348480 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..7fb9c94ca7c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..fd88ddda312 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..c874c4fadf2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..0374f4185d0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..7e219497a82 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..606090516a2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..39cae56b948 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..42d35cd7711 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..31f79cbf1e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..ada8ce2c716 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..8171ebf2857 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..77641902425 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..1a5f8ba3ee9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..4b20b162568 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..628e5a899ba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..b2ff69d9610 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..17283f7cfbd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..13a3205ac65 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a496def1687 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..c1dad1e512f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..fbd2c9ee219 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..a8b5009434a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..4b7b4bfbc52 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..2bfcc5ddf59 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a3e6d0e8cf0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..42846128601 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..41f36d9647d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..77dcd30babc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..5434fa57fde >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..9649792c6ef >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..4dc0b7614d3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..c20f85b7054 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..d488d8309b3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..c22f6dbfd4f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..78e1c0606e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..447e3654ffc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..ec1219cf18a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-float.html >new file mode 100644 >index 00000000000..c5d87688cf7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..b1439e35e66 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..1f16caaf6f3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..2b6969d55be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r32f-red-float.html >new file mode 100644 >index 00000000000..8d4af8d700c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..9c950eb0e24 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..ef110c4af45 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a26cfe12998 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..f61d9881168 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..67c935123c3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..c36d8444ee6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..fb9fbf00fba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..055918c81db >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..0aa017c4f7a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..8b8d8f578fb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..cd5b3d2ee1f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..d6d70cdc668 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..fb5b1a725e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..523c11a976f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..8a821b309c9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..840fba73c27 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..7b46a8eb8bc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..da6f745eab3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..3f0efcd0161 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..c486299c21a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..3cfde113279 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..39e848fdda1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..f759c06c2d1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..c4368587b28 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..99e997f58fa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..5a3bfc22e0c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..2a3045bfef1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..2148ada57fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a4a3569f9c7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..2c6271671cb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..63d3b150936 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..3ea5fa5d260 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..238bda6a927 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..a983879ff94 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..bd7f070c9de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..88c2e1eafd4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..9aaf4a11037 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..09c3455bd12 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..17cbce6dc26 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..de7ae333de0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..ff5f615c686 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..01a8a34a8e8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..e3015523730 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..a0b0703a613 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..4c270c42f27 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..dd6b4402313 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..56e2ee7ee95 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..4566747ee67 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..121812cf93e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..09ff5a920bf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..06767b43967 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..4fb14eee980 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..bc5a7236639 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..94ebfb5b4c3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..e9302cf41b3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..6d5c5810235 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..e6239a71f03 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..6a5ee5af61d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..f0c62c5688b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..391e3efa1b6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..4703ab35ccc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-float.html >new file mode 100644 >index 00000000000..a1c64745e65 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..9bc09fed00e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..5562a0b9a2b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..124169a1726 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r32f-red-float.html >new file mode 100644 >index 00000000000..a2075695cd0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..4a02b890c7c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..a130d1d47c8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..baa6a25059f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..cc3379b627c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..6e3c8768a0a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..8d4fd98a15b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..ed23fef05e4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..8d4abfef449 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..48e74d89103 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..c19d4f4c9ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a9a012b8797 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..98338075987 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..03d8a0f0d44 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..df883d6827b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..43916aa8047 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..96d008eb2da >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..33da4f3e154 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..99bc260039b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..81f2cde417c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..5755fa97aee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..c5ebd04cdc3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..f62720938ed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..1cd7efebba2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..30b428f77f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..db9918b47f5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..b2a6a4cbff5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..d5ad2f44211 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..242fa0a40d4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..ece76e604ad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..6153aeed7ed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..cce97dcabd7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..f0dc48699ce >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..084a024803d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..7e5c210cfb2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..9223b3733f1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..73284c5312b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..1fb843f625d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..0c2e7f10b3f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..e57268cac03 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..efc5c330c0a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..8b77bb4db33 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..6dec1053f4a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..70e00bbf09b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..cc8e2305dab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..aea829cea3c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..7fb8c8f78c5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..9bbcde85d0e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..016e576bfb3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..d264e27bc97 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..ffa49f8337a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..9080e210cbd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..59440e6769c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..fd3d44b56fe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..d2d57d10e9d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..a443f31b9fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..b71de69564d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..29b4ffda91a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..d48faae5e65 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..5d82d696ea7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..cd6bd9de83e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..3660e447355 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-float.html >new file mode 100644 >index 00000000000..b291fd504bd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..932744214c6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..96bdc832ed3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..a6dbc831bed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r32f-red-float.html >new file mode 100644 >index 00000000000..94ad24a5246 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..7eb8d613626 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..9611aa34ae0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..d78032fe1e2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..61bded4ee47 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..0ef858d503d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..5fae83f19f1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..16b623e9f97 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..35b7fc4743f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..791a54fb41e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..70fecd08e0b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a6508e021b6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..6f14bdc306b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..ed4d93f4fcf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..e6485841a46 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..2a56abbdc72 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..d17e8ac023d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..662dcb479ec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..11648996257 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..5f06c214c36 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..3da97905025 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..b7d96b8ea16 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..604acfbbbed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..bb13a122a7b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..7ee2852ae8b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..2992a69e178 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..b8e9458ba8a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..96b26a543c0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..3ec7f972183 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..288739b55dd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..50cc9256669 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..eaa089ebb84 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..94a32c24bcb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..b6d9ab726e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..57d24dada3d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..bbc84a658a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..fe62539f7f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..dd2494fad8a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..84b30ece687 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..d53e5602230 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..65cfaac280d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..2fc2b0e99fb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..ba4f1dd71f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..d4191c2534e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..51d92c8c8cd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..597eba5cbec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..7675ce9178c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..bcdff7be93e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..69ee6aaf6e0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..c405c31f550 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..a79a7c175a6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..09c88f2c49f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..b547887f720 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..32bc29998b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..4de7718c54f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..8ff0b69f9d4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..3296a8f6477 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..8c9bee07d91 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..51044594367 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..a4754d394ea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..68f22461d6d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..e98ffc74f11 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r16f-red-float.html >new file mode 100644 >index 00000000000..c04f7ea46c4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..a01b2aa6d40 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..25507234077 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..f195b606820 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r32f-red-float.html >new file mode 100644 >index 00000000000..86163624f00 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..ea8955220b1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..a56e1df8a68 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..125a433ccb8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..99772c2b0a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..d4560647f09 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..a20c72e8cc1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..e89fc7a86a2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..55de9fa2d54 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..dd7cf8e1506 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..2761a7f21dd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..e7c554a9533 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..161f3c40421 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a7e0ee642e5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..45836ba8de3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..a8b08a9b3ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..6e39405ba9f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..203b4cdd60f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..6934462d918 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..3efafd48067 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..d7abac60470 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..becbf57b607 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..efb06c5620f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..c2359b22571 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..9c17a88407d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..da1dd6361da >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..2b06962497f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..16811a4e23d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..b9c72910d88 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..035794fd13d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..30c98794c0e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..7c13d4461ab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..70c3f494c45 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..1fd7f8ac817 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..267ace68aa9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..ef8836c8b6c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..35c6ab53400 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..d0befd2dfb0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..307262d4f81 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..a452a4e9968 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..f9d1bbd84aa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..99caa0e8fd6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..9ab6e42dd3b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..b818e235851 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..30b59c14ed7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..dcec7a4a75f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..a7137c05ffa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..f1fb7c1cf41 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..fbf596b3f09 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..523c33bb6a2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..d9f7fc1c528 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..727a0e0dccf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..7df784469f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..f950832a37e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..82923b43712 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..0d7ce9cfe60 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..945faab3be7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..f3e524d5e36 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..5432fa2ddf2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..0b9e25fd0b6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..5a198b1f47c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..ca3abbc34c9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-float.html >new file mode 100644 >index 00000000000..24656195595 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..cf0fab94f25 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..6c40d608dc4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..0f6f9f3f5ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r32f-red-float.html >new file mode 100644 >index 00000000000..14875b331ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..f8fa12d467c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..fbf3dfdb940 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a8f8b4ecad7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..ad664fa3a5c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..d2179a7a29a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..f8fbef1f6db >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..ab450101ebe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..bcf4af117c4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..fdd5093391c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..a6f77b650e3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..8bb71dac87e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..5d902ecec77 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..18183e307d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..badf2ff9bea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..92c6fa7242c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..390b2787eec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..4fc08bd3932 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..25747c099d8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..c5a6d75c241 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..9516dbf0a5c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..d352d8501b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..cb189ec5a88 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..dade17ebd59 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..382e54802b4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..11e5fc23688 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..5575a9b5599 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..260bdba6612 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..3d1a6e0543f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..b5ec0db4784 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..881c25a29ab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..bf44c6cf577 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..158f837fd05 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..70c7fdebf99 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..410cdf5d671 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..a1ce4f3d5d7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..7b6217f5eb8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..074b6f91012 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..9aea538cf6a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..1a38107ff97 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..7a40e232222 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..68cc495d0b4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..df370ff7bf2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..77b7d03c4ed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..12691e3e9d0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..983b820fee2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..670fa073a0e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..192e9e41f89 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..b2d8adcd630 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..79f4793254b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..1a15d3a5a12 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..b1d10ba39e2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..e5f78e37348 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..1a3ee6aac4f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..46e807137ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/active-3d-texture-bug-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/active-3d-texture-bug-expected.txt >new file mode 100644 >index 00000000000..0993e2c7441 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/active-3d-texture-bug-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/active-3d-texture-bug.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/active-3d-texture-bug.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/active-3d-texture-bug.html >new file mode 100644 >index 00000000000..2a75e402b29 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/active-3d-texture-bug.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for active-3d-texture-bug.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/active-3d-texture-bug.html">../../../resources/webgl_test_files/conformance2/textures/misc/active-3d-texture-bug.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/active-3d-texture-bug.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/copy-texture-image-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/copy-texture-image-expected.txt >new file mode 100644 >index 00000000000..a717ec93a67 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/copy-texture-image-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/copy-texture-image.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/copy-texture-image-luma-format-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/copy-texture-image-luma-format-expected.txt >new file mode 100644 >index 00000000000..566a00604c6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/copy-texture-image-luma-format-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/copy-texture-image-luma-format.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/copy-texture-image-luma-format.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/copy-texture-image-luma-format.html >new file mode 100644 >index 00000000000..95fe73d99b3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/copy-texture-image-luma-format.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for copy-texture-image-luma-format.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/copy-texture-image-luma-format.html">../../../resources/webgl_test_files/conformance2/textures/misc/copy-texture-image-luma-format.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/copy-texture-image-luma-format.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/copy-texture-image-webgl-specific-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/copy-texture-image-webgl-specific-expected.txt >new file mode 100644 >index 00000000000..1d555ca553b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/copy-texture-image-webgl-specific-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/copy-texture-image-webgl-specific.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/copy-texture-image-webgl-specific.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/copy-texture-image-webgl-specific.html >new file mode 100644 >index 00000000000..a4432011446 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/copy-texture-image-webgl-specific.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for copy-texture-image-webgl-specific.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/copy-texture-image-webgl-specific.html">../../../resources/webgl_test_files/conformance2/textures/misc/copy-texture-image-webgl-specific.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/copy-texture-image-webgl-specific.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/copy-texture-image.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/copy-texture-image.html >new file mode 100644 >index 00000000000..18e1e74292c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/copy-texture-image.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for copy-texture-image.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/copy-texture-image.html">../../../resources/webgl_test_files/conformance2/textures/misc/copy-texture-image.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/copy-texture-image.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/gl-get-tex-parameter-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/gl-get-tex-parameter-expected.txt >new file mode 100644 >index 00000000000..a6ebca85721 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/gl-get-tex-parameter-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/gl-get-tex-parameter.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/gl-get-tex-parameter.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/gl-get-tex-parameter.html >new file mode 100644 >index 00000000000..89f8f6aae52 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/gl-get-tex-parameter.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for gl-get-tex-parameter.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/gl-get-tex-parameter.html">../../../resources/webgl_test_files/conformance2/textures/misc/gl-get-tex-parameter.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/gl-get-tex-parameter.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/integer-cubemap-specification-order-bug-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/integer-cubemap-specification-order-bug-expected.txt >new file mode 100644 >index 00000000000..4645f23e180 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/integer-cubemap-specification-order-bug-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/integer-cubemap-specification-order-bug.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/integer-cubemap-specification-order-bug.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/integer-cubemap-specification-order-bug.html >new file mode 100644 >index 00000000000..831f5530c55 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/integer-cubemap-specification-order-bug.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for integer-cubemap-specification-order-bug.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/integer-cubemap-specification-order-bug.html">../../../resources/webgl_test_files/conformance2/textures/misc/integer-cubemap-specification-order-bug.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/integer-cubemap-specification-order-bug.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/integer-cubemap-texture-sampling-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/integer-cubemap-texture-sampling-expected.txt >new file mode 100644 >index 00000000000..203fefbf70e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/integer-cubemap-texture-sampling-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/integer-cubemap-texture-sampling.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/integer-cubemap-texture-sampling.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/integer-cubemap-texture-sampling.html >new file mode 100644 >index 00000000000..8246c92bcc0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/integer-cubemap-texture-sampling.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for integer-cubemap-texture-sampling.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/integer-cubemap-texture-sampling.html">../../../resources/webgl_test_files/conformance2/textures/misc/integer-cubemap-texture-sampling.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/integer-cubemap-texture-sampling.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/mipmap-fbo-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/mipmap-fbo-expected.txt >new file mode 100644 >index 00000000000..d9864806a56 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/mipmap-fbo-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/mipmap-fbo.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/mipmap-fbo.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/mipmap-fbo.html >new file mode 100644 >index 00000000000..ad25c7a7f8c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/mipmap-fbo.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mipmap-fbo.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/mipmap-fbo.html">../../../resources/webgl_test_files/conformance2/textures/misc/mipmap-fbo.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/mipmap-fbo.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-3d-size-limit-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-3d-size-limit-expected.txt >new file mode 100644 >index 00000000000..51e560b243c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-3d-size-limit-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/tex-3d-size-limit.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-3d-size-limit.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-3d-size-limit.html >new file mode 100644 >index 00000000000..445f3157ca4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-3d-size-limit.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-size-limit.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/tex-3d-size-limit.html">../../../resources/webgl_test_files/conformance2/textures/misc/tex-3d-size-limit.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/tex-3d-size-limit.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-and-sub-image-with-array-buffer-view-sub-source-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-and-sub-image-with-array-buffer-view-sub-source-expected.txt >new file mode 100644 >index 00000000000..daf9120fd20 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-and-sub-image-with-array-buffer-view-sub-source-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/tex-image-and-sub-image-with-array-buffer-view-sub-source.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-and-sub-image-with-array-buffer-view-sub-source.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-and-sub-image-with-array-buffer-view-sub-source.html >new file mode 100644 >index 00000000000..696479924ed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-and-sub-image-with-array-buffer-view-sub-source.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-image-and-sub-image-with-array-buffer-view-sub-source.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/tex-image-and-sub-image-with-array-buffer-view-sub-source.html">../../../resources/webgl_test_files/conformance2/textures/misc/tex-image-and-sub-image-with-array-buffer-view-sub-source.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/tex-image-and-sub-image-with-array-buffer-view-sub-source.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-with-bad-args-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-with-bad-args-expected.txt >new file mode 100644 >index 00000000000..c31e760d021 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-with-bad-args-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/tex-image-with-bad-args.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-with-bad-args-from-dom-elements-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-with-bad-args-from-dom-elements-expected.txt >new file mode 100644 >index 00000000000..79aa9ed46e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-with-bad-args-from-dom-elements-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/tex-image-with-bad-args-from-dom-elements.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-with-bad-args-from-dom-elements.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-with-bad-args-from-dom-elements.html >new file mode 100644 >index 00000000000..d80c198eb5f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-with-bad-args-from-dom-elements.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-image-with-bad-args-from-dom-elements.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/tex-image-with-bad-args-from-dom-elements.html">../../../resources/webgl_test_files/conformance2/textures/misc/tex-image-with-bad-args-from-dom-elements.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/tex-image-with-bad-args-from-dom-elements.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-with-bad-args.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-with-bad-args.html >new file mode 100644 >index 00000000000..8b66a9dd3ec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-with-bad-args.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-image-with-bad-args.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/tex-image-with-bad-args.html">../../../resources/webgl_test_files/conformance2/textures/misc/tex-image-with-bad-args.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/tex-image-with-bad-args.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-with-different-data-source-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-with-different-data-source-expected.txt >new file mode 100644 >index 00000000000..a756b6d32a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-with-different-data-source-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/tex-image-with-different-data-source.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-with-different-data-source.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-with-different-data-source.html >new file mode 100644 >index 00000000000..7541989e2a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-image-with-different-data-source.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-image-with-different-data-source.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/tex-image-with-different-data-source.html">../../../resources/webgl_test_files/conformance2/textures/misc/tex-image-with-different-data-source.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/tex-image-with-different-data-source.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-input-validation-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-input-validation-expected.txt >new file mode 100644 >index 00000000000..22d7e191777 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-input-validation-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/tex-input-validation.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-input-validation.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-input-validation.html >new file mode 100644 >index 00000000000..3edffbdec66 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-input-validation.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-input-validation.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/tex-input-validation.html">../../../resources/webgl_test_files/conformance2/textures/misc/tex-input-validation.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/tex-input-validation.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-mipmap-levels-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-mipmap-levels-expected.txt >new file mode 100644 >index 00000000000..42f42019c14 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-mipmap-levels-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/tex-mipmap-levels.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-mipmap-levels.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-mipmap-levels.html >new file mode 100644 >index 00000000000..26d59d011fb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-mipmap-levels.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-mipmap-levels.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/tex-mipmap-levels.html">../../../resources/webgl_test_files/conformance2/textures/misc/tex-mipmap-levels.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/tex-mipmap-levels.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-new-formats-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-new-formats-expected.txt >new file mode 100644 >index 00000000000..11b16dc6ce6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-new-formats-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/tex-new-formats.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-new-formats.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-new-formats.html >new file mode 100644 >index 00000000000..6163adba5f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-new-formats.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-new-formats.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/tex-new-formats.html">../../../resources/webgl_test_files/conformance2/textures/misc/tex-new-formats.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/tex-new-formats.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-srgb-mipmap-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-srgb-mipmap-expected.txt >new file mode 100644 >index 00000000000..8d526c4c5d0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-srgb-mipmap-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/tex-srgb-mipmap.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-srgb-mipmap.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-srgb-mipmap.html >new file mode 100644 >index 00000000000..aadd259cf19 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-srgb-mipmap.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-srgb-mipmap.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/tex-srgb-mipmap.html">../../../resources/webgl_test_files/conformance2/textures/misc/tex-srgb-mipmap.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/tex-srgb-mipmap.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-storage-2d-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-storage-2d-expected.txt >new file mode 100644 >index 00000000000..d0d22b8d9d1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-storage-2d-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/tex-storage-2d.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-storage-2d.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-storage-2d.html >new file mode 100644 >index 00000000000..eb22468c842 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-storage-2d.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-storage-2d.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/tex-storage-2d.html">../../../resources/webgl_test_files/conformance2/textures/misc/tex-storage-2d.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/tex-storage-2d.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-storage-and-subimage-3d-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-storage-and-subimage-3d-expected.txt >new file mode 100644 >index 00000000000..84e0a552c49 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-storage-and-subimage-3d-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/tex-storage-and-subimage-3d.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-storage-and-subimage-3d.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-storage-and-subimage-3d.html >new file mode 100644 >index 00000000000..b8fd9589353 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-storage-and-subimage-3d.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-storage-and-subimage-3d.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/tex-storage-and-subimage-3d.html">../../../resources/webgl_test_files/conformance2/textures/misc/tex-storage-and-subimage-3d.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/tex-storage-and-subimage-3d.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-storage-compressed-formats-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-storage-compressed-formats-expected.txt >new file mode 100644 >index 00000000000..445ee5b5fdf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-storage-compressed-formats-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/tex-storage-compressed-formats.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-storage-compressed-formats.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-storage-compressed-formats.html >new file mode 100644 >index 00000000000..6d4d43eff57 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-storage-compressed-formats.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-storage-compressed-formats.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/tex-storage-compressed-formats.html">../../../resources/webgl_test_files/conformance2/textures/misc/tex-storage-compressed-formats.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/tex-storage-compressed-formats.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-unpack-params-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-unpack-params-expected.txt >new file mode 100644 >index 00000000000..5d82ddea5fb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-unpack-params-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/tex-unpack-params.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-unpack-params.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-unpack-params.html >new file mode 100644 >index 00000000000..d0511f8177f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/tex-unpack-params.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-unpack-params.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/tex-unpack-params.html">../../../resources/webgl_test_files/conformance2/textures/misc/tex-unpack-params.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/tex-unpack-params.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/texel-fetch-undefined-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/texel-fetch-undefined-expected.txt >new file mode 100644 >index 00000000000..536ae799efa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/texel-fetch-undefined-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/texel-fetch-undefined.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/texel-fetch-undefined.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/texel-fetch-undefined.html >new file mode 100644 >index 00000000000..c5b5f2673cc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/texel-fetch-undefined.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texel-fetch-undefined.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/texel-fetch-undefined.html">../../../resources/webgl_test_files/conformance2/textures/misc/texel-fetch-undefined.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/texel-fetch-undefined.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/texture-npot-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/texture-npot-expected.txt >new file mode 100644 >index 00000000000..c3e47059915 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/texture-npot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/misc/texture-npot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/misc/texture-npot.html b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/texture-npot.html >new file mode 100644 >index 00000000000..dd41b8bed90 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/misc/texture-npot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture-npot.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/misc/texture-npot.html">../../../resources/webgl_test_files/conformance2/textures/misc/texture-npot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/misc/texture-npot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..33f76e146ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..2fb76ca9967 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..107e4363ea0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..7e2aff6c59f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..2d28f20ccc9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..a89148e8b3e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..07f769c43a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r16f-red-float.html >new file mode 100644 >index 00000000000..9e47e942d8b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..d26c049addb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..3090cc889c4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..b715e2f6bba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r32f-red-float.html >new file mode 100644 >index 00000000000..b0a77032f75 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a424ed42ee5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..2a276f467c6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..d9ad0ac8c40 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..a2cf2a1cbe0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..dc0f9798714 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..12c6d6918ea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..6ed449d559f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..96b655f1765 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..d4248cc17ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..5594640481d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..8712500f564 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..47c0682a533 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..6590d006314 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..bfb9ee02f35 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..d6ac155b500 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..6d1e465a5b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..84be6911d14 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..1336b80562e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..475d386f883 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..8666b6af93d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..ba922282578 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..e6a7e443b97 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..4d7ccf78877 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..89ebbc950cc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..9040aa2fcaa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..55e06416883 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..fa398bd44e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..0ddbfb65cf6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..2f846bcac57 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..f411b644900 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..ce3945da0e3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..d442a95adb5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..41046c625f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..a87aa97b169 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..364659437ba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..a48d4705a41 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..729c1f59f60 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..e1db94dfe56 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..234bb270846 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..dc6be8b632b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..77704bddc09 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..6f96ac2b442 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..4100530d8a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..ebfac3a24fa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..4f736b89919 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..350bbfc4bce >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a081393fc27 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..49a5eea9b9e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..035da8f3bd0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..e435e1702a6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..c70601697bc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..4d666e8ba4b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..b55ecffb504 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..ef3ddcbf7b5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..2d6ff1ae5d7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..193eb489a46 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..a4444f27339 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..e934dda4d08 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..abe3528325f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..47a2443a19b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..f0affc4d7f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r16f-red-float.html >new file mode 100644 >index 00000000000..d0126f721ad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..7a6aacc659e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..f6c19303183 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..9737ece1eb5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r32f-red-float.html >new file mode 100644 >index 00000000000..1ef22ff8711 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..3f882b6affb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..a62d2c6e3a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..cfbd22733b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..4f85466c4b8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..b8fa944cce5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..5c2b41e37c4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..5e751d7e6c9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..9c17eb26a91 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..762fc823f89 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..8bc92bd5a4c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..5d63b763ca6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..dcb74767b7e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a953f733447 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..a6667b6f519 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..9d7a9df0997 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..3265d2f7490 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..0b46697c7ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..a0b0b6b3a5a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..b0dd1335418 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..e304407b7ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..17d3ceab142 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..2de919943ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..f6bbf76a047 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..76046fdb7d8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..62f46b33ff4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..af5b3ec7e34 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..2f261e96155 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..a2414302518 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..f622a6b3ada >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..82ae3ec1de8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..6b6f5308bc6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..bc0034f32bf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..01f02bab5da >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..3ca375dc707 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..1a429a09e29 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..e688bef8dde >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..21ba94097bf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..3a2ab497ff9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..4abf27a2f00 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..3bd7f6427f0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..a86b7d2b1f0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..6c602ed6eab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..111bffe5bf6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..76f234e31bf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..162e5b6d059 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..35188294001 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..39b3368bfeb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..10cf75a6b55 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..d3f5980d8dc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..5205cbc140a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..82688cfa175 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..3e3ff81aeb0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a11f9c356bb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..19043616e85 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/svg_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/svg_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..c874020596b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..5f84625558d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..d1dd64c49ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..6b3a596668c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..f38b18eb9aa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..e15a12daa16 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..d842500a74a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r16f-red-float.html >new file mode 100644 >index 00000000000..d813f27c420 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..8e9852acc16 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..38477f87679 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..4643e2ae928 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r32f-red-float.html >new file mode 100644 >index 00000000000..08b134b800b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..86b78eca961 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..086f01d61f7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..571a93a45b4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..fc402cbe395 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..7259b29ab1d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..8dc0d9d8acb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..8ed31ed5eda >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..cb8858ae12c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..6d274adb41f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..b3f5afc0876 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..eac711c8871 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..19b5dab3591 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..117f8de4224 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..d35d1f5fdd8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..602dfd8bd2c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..3da57b8e552 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..42ec4b1b9e6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..f86f7cc060f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..12f0b718e83 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..b1ab8cbd1f3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..fc42771c5a0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..8615322f205 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..3c78a95d021 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..925881fdcf0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..f3977f87257 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..35fb8d43d04 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..7697e8d5774 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..498be45a918 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..82016784a37 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..b820ac861dd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..badb08225c4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..efcbc8c021b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..04928f1f5ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..49692291f7c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..b3b82a82b34 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..44ef7cd7879 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..6c07a0b582c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..4e702da641f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..23938b05e09 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..8f3b4230c3f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..627244d60cb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..92a923cc3cc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..cf3a4edff4f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..4578ff8ac55 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..831d2ac8faf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..331fdf3e5f1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..b0104d8398f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..59b8d6d7561 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..12fe82675c0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..1eb3c9ce450 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a526d552531 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..1c48a5e45e4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..c54a1c8b637 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..f99264947ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..d540f945005 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..c726c811560 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..cb1052aa063 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..69c6277722d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..9a44b82b5e4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..8f08ea48765 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..900db8cdf93 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r16f-red-float.html >new file mode 100644 >index 00000000000..8b0c306ea46 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..1d16f0a691a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..5d996bf0421 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..67861018045 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r32f-red-float.html >new file mode 100644 >index 00000000000..7cbc3cfb9d4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..d704e98a2d1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..2922530da69 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..4e284e18aa8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..b444af9c849 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..26620f37d08 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..25adf10c440 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..ca3db4c97a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..4dd91ad5e76 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..f8b55240a36 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..bc4aa4dfd0e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..3ef41b2b95d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..a738bb6744d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..b403d7d6c6d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..65e4ac8c8f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..f08c622f18b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..047fbae5027 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..b80355d3f99 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..be5470d5b82 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..8bf6c2050f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..5d522e7c1e0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..b5b13387d1a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..0204262ce0b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..3b09e7680ba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..0df4746b68a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..cecc3363088 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..e351fd8b15f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..da6468cc3be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..fd94d783365 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..7ccfff5ad95 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..eb276950fb3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..4dacdc0a8d7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..ba497b57cdf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb9_e5-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb9_e5-rgb-float-expected.txt >new file mode 100644 >index 00000000000..c67f1828dca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb9_e5-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb9_e5-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb9_e5-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb9_e5-rgb-float.html >new file mode 100644 >index 00000000000..33d0121756f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb9_e5-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb9_e5-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb9_e5-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb9_e5-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb9_e5-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb9_e5-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..1efd5ef48c2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb9_e5-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb9_e5-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb9_e5-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb9_e5-rgb-half_float.html >new file mode 100644 >index 00000000000..f1a4dd40f33 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgb9_e5-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb9_e5-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb9_e5-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb9_e5-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgb9_e5-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..6c391893362 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..99e54f1600a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..53ebc9f7b43 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..2e8babfa2b0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..631746a1f7c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..826d474590e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..4d060abe9db >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..86309066d36 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..b37a8acd336 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..bbe151f9fb5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..e40d73298a2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..e3f3f1ffcc6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..b38b4db96be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..405dd48aa22 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..ce87434a0c9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..c4b388f1140 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..d1f5387c8bd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..f54f3394fa2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/video/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/video/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..b0474d8b082 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..99bdb4b7c04 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..c5ddb7e1046 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..5e32e37494f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..e3a569c8c23 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..360b4a4a9fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..27ec9881053 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r16f-red-float.html >new file mode 100644 >index 00000000000..bb6480e9faa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..0deacc1f71a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..2687a6cd804 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..12c21a9afa1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r32f-red-float.html >new file mode 100644 >index 00000000000..4f4372a1f9d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..57f81608560 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..df463328925 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..0a285e301ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..80f222559bb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..1338582f32d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..053176a4666 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..33f024bee30 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..01790228022 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..cf89e6dd8a1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..1b95a1a3ab7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..3f70b292733 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..c4153a42eb5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..af4ca488c3a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..5dfe6a954de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..7f778976304 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..1700f53ee07 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..ec6d86aedec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..2c6774fa1f0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..820b886eabf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..b347089d954 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..4dab67aa1ed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..b9b004370d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..91ea55283bf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..a06404e8f9d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..69b5eb362d0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..049f9e93797 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..b157546f76a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..950226c1da0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..e58feb844f9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..41a99287092 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..63a3e5dc40c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..dcc7df2f541 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..f1700d55a4b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..fff5bc5ec1b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..12e0ada5cc2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..5114b9940fe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..d81c7feafa7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..c4246aa0940 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..efa14b4646c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..3f5bb8f3ef1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..bbabfe2cb0d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..888800fc0fb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..74b4421d3cf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..b9b3e3e5352 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..137db20cb12 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..86cc1a18bcd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..7a21947f6b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..aceeee013a6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..ca050d5da6c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..d47b2aa9e61 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..87fbc961735 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-float.html >new file mode 100644 >index 00000000000..817115a759f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..5a664c71eca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html >new file mode 100644 >index 00000000000..f804538343e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >new file mode 100644 >index 00000000000..cbd3100d09e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >new file mode 100644 >index 00000000000..61e024c663c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r16f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r16f-red-float-expected.txt >new file mode 100644 >index 00000000000..332d8664ff5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r16f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r16f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r16f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r16f-red-float.html >new file mode 100644 >index 00000000000..a0257ba2839 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r16f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r16f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r16f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r16f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r16f-red-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r16f-red-half_float-expected.txt >new file mode 100644 >index 00000000000..f743df488b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r16f-red-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r16f-red-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r16f-red-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r16f-red-half_float.html >new file mode 100644 >index 00000000000..2b1933066ba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r16f-red-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r16f-red-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r16f-red-half_float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r16f-red-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r16f-red-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r32f-red-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r32f-red-float-expected.txt >new file mode 100644 >index 00000000000..54961f192f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r32f-red-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r32f-red-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r32f-red-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r32f-red-float.html >new file mode 100644 >index 00000000000..f0de0f09793 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r32f-red-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r32f-red-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r32f-red-float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r32f-red-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r32f-red-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r8-red-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r8-red-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..5d6ddd6ebf5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r8-red-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r8-red-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r8-red-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r8-red-unsigned_byte.html >new file mode 100644 >index 00000000000..ddf46b23190 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r8-red-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8-red-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r8-red-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r8-red-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r8-red-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..7db852d5999 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r8ui-red_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r8ui-red_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r8ui-red_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..5f883959fc7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-r8ui-red_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-r8ui-red_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r8ui-red_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r8ui-red_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-r8ui-red_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-float-expected.txt >new file mode 100644 >index 00000000000..8d099ecbe9d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-float.html >new file mode 100644 >index 00000000000..1ee6707b283 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-half_float-expected.txt >new file mode 100644 >index 00000000000..29ff8ccd74f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-half_float.html >new file mode 100644 >index 00000000000..1fb2ac4fe0a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg16f-rg-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-half_float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg16f-rg-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg32f-rg-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg32f-rg-float-expected.txt >new file mode 100644 >index 00000000000..fb48324a024 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg32f-rg-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg32f-rg-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg32f-rg-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg32f-rg-float.html >new file mode 100644 >index 00000000000..da1cf644ebd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg32f-rg-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg32f-rg-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg32f-rg-float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg32f-rg-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg32f-rg-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg8-rg-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg8-rg-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..f0d6900dfaf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg8-rg-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg8-rg-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg8-rg-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg8-rg-unsigned_byte.html >new file mode 100644 >index 00000000000..e7501130f0f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg8-rg-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8-rg-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg8-rg-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg8-rg-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg8-rg-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..e8fcdcf527e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..b9c51b678b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rg8ui-rg_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..acf6f2def8c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-float.html >new file mode 100644 >index 00000000000..bb7b5acd8d0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-half_float-expected.txt >new file mode 100644 >index 00000000000..0acadafe763 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-half_float.html >new file mode 100644 >index 00000000000..0eb12a25d9d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb16f-rgb-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-half_float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb16f-rgb-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb32f-rgb-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb32f-rgb-float-expected.txt >new file mode 100644 >index 00000000000..3e5a5a8e032 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb32f-rgb-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb32f-rgb-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb32f-rgb-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb32f-rgb-float.html >new file mode 100644 >index 00000000000..929fa493aeb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb32f-rgb-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb32f-rgb-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb32f-rgb-float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb32f-rgb-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb32f-rgb-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..0c7c160b806 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..41df29be6be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >new file mode 100644 >index 00000000000..cca7dd4d7d1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >new file mode 100644 >index 00000000000..56263e5cf1f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..2dfd4f259e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..fb93733ee88 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >new file mode 100644 >index 00000000000..de7fd5d94b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >new file mode 100644 >index 00000000000..9966a73af55 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..a3586b44559 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..494dd04e9ef >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..c4b8536750f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..ff9d10adfe0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..7864872c49d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-float.html >new file mode 100644 >index 00000000000..68497af6339 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-half_float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-half_float-expected.txt >new file mode 100644 >index 00000000000..f63dea7d09b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-half_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-half_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-half_float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-half_float.html >new file mode 100644 >index 00000000000..fc671550e6f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-half_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba16f-rgba-half_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-half_float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-half_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba16f-rgba-half_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba32f-rgba-float-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba32f-rgba-float-expected.txt >new file mode 100644 >index 00000000000..61ac9fa9aba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba32f-rgba-float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba32f-rgba-float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba32f-rgba-float.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba32f-rgba-float.html >new file mode 100644 >index 00000000000..b031553bf4f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba32f-rgba-float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba32f-rgba-float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba32f-rgba-float.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba32f-rgba-float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba32f-rgba-float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..9084b143555 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..6a1633a7243 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >new file mode 100644 >index 00000000000..eed8a8b0c52 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >new file mode 100644 >index 00000000000..92ec6286d47 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..1efaae12370 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..a0f08a64927 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..64db6724ff0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >new file mode 100644 >index 00000000000..5c1477ad27e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-srgb8-rgb-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..6e5b2244942 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-srgb8-rgb-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-srgb8-rgb-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-srgb8-rgb-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-srgb8-rgb-unsigned_byte.html >new file mode 100644 >index 00000000000..5131362c70b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-srgb8-rgb-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8-rgb-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-srgb8-rgb-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-srgb8-rgb-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-srgb8-rgb-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..8511229e0fa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >new file mode 100644 >index 00000000000..af65834ba27 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/textures/webgl_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html">../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/conformance2/textures/webgl_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/transform_feedback/transform_feedback-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/transform_feedback/transform_feedback-expected.txt >new file mode 100644 >index 00000000000..16a3b6a27b5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/transform_feedback/transform_feedback-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/transform_feedback/transform_feedback.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/transform_feedback/transform_feedback.html b/LayoutTests/webgl/2.0.0/conformance2/transform_feedback/transform_feedback.html >new file mode 100644 >index 00000000000..edd56df40ed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/transform_feedback/transform_feedback.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for transform_feedback.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/transform_feedback/transform_feedback.html">../../resources/webgl_test_files/conformance2/transform_feedback/transform_feedback.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/transform_feedback/transform_feedback.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/transform_feedback/two-unreferenced-varyings-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/transform_feedback/two-unreferenced-varyings-expected.txt >new file mode 100644 >index 00000000000..85790ec14d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/transform_feedback/two-unreferenced-varyings-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/transform_feedback/two-unreferenced-varyings.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/transform_feedback/two-unreferenced-varyings.html b/LayoutTests/webgl/2.0.0/conformance2/transform_feedback/two-unreferenced-varyings.html >new file mode 100644 >index 00000000000..f8d05515f6b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/transform_feedback/two-unreferenced-varyings.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for two-unreferenced-varyings.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/transform_feedback/two-unreferenced-varyings.html">../../resources/webgl_test_files/conformance2/transform_feedback/two-unreferenced-varyings.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/transform_feedback/two-unreferenced-varyings.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/transform_feedback/unwritten-output-defaults-to-zero-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/transform_feedback/unwritten-output-defaults-to-zero-expected.txt >new file mode 100644 >index 00000000000..cdc966253c2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/transform_feedback/unwritten-output-defaults-to-zero-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/transform_feedback/unwritten-output-defaults-to-zero.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/transform_feedback/unwritten-output-defaults-to-zero.html b/LayoutTests/webgl/2.0.0/conformance2/transform_feedback/unwritten-output-defaults-to-zero.html >new file mode 100644 >index 00000000000..e15388f45c4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/transform_feedback/unwritten-output-defaults-to-zero.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for unwritten-output-defaults-to-zero.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/transform_feedback/unwritten-output-defaults-to-zero.html">../../resources/webgl_test_files/conformance2/transform_feedback/unwritten-output-defaults-to-zero.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/transform_feedback/unwritten-output-defaults-to-zero.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/conformance2/vertex_arrays/vertex-array-object-expected.txt b/LayoutTests/webgl/2.0.0/conformance2/vertex_arrays/vertex-array-object-expected.txt >new file mode 100644 >index 00000000000..0bfb693537f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/vertex_arrays/vertex-array-object-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../resources/webgl_test_files/conformance2/vertex_arrays/vertex-array-object.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/conformance2/vertex_arrays/vertex-array-object.html b/LayoutTests/webgl/2.0.0/conformance2/vertex_arrays/vertex-array-object.html >new file mode 100644 >index 00000000000..0c3b72624a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/conformance2/vertex_arrays/vertex-array-object.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for vertex-array-object.html</title> >+<script type="text/javascript" src="../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../resources/webgl_test_files/conformance2/vertex_arrays/vertex-array-object.html">../../resources/webgl_test_files/conformance2/vertex_arrays/vertex-array-object.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../resources/webgl_test_files/conformance2/vertex_arrays/vertex-array-object.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/conditionals-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/conditionals-expected.txt >new file mode 100644 >index 00000000000..25434f1bee8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/conditionals-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles2/shaders/conditionals.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/conditionals.html b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/conditionals.html >new file mode 100644 >index 00000000000..1eb63f09d78 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/conditionals.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conditionals.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/conditionals.html">../../../../resources/webgl_test_files/deqp/data/gles2/shaders/conditionals.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/conditionals.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/constant_expressions-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/constant_expressions-expected.txt >new file mode 100644 >index 00000000000..36f6986564b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/constant_expressions-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles2/shaders/constant_expressions.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/constant_expressions.html b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/constant_expressions.html >new file mode 100644 >index 00000000000..a3670910c5d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/constant_expressions.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for constant_expressions.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/constant_expressions.html">../../../../resources/webgl_test_files/deqp/data/gles2/shaders/constant_expressions.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/constant_expressions.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/constants-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/constants-expected.txt >new file mode 100644 >index 00000000000..c783f7bb504 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/constants-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles2/shaders/constants.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/constants.html b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/constants.html >new file mode 100644 >index 00000000000..90c073e22a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/constants.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for constants.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/constants.html">../../../../resources/webgl_test_files/deqp/data/gles2/shaders/constants.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/constants.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/conversions-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/conversions-expected.txt >new file mode 100644 >index 00000000000..87f0b16a818 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/conversions-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles2/shaders/conversions.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/conversions.html b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/conversions.html >new file mode 100644 >index 00000000000..f10be6b406c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/conversions.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversions.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/conversions.html">../../../../resources/webgl_test_files/deqp/data/gles2/shaders/conversions.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/conversions.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/declarations-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/declarations-expected.txt >new file mode 100644 >index 00000000000..feaffcb4382 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/declarations-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles2/shaders/declarations.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/declarations.html b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/declarations.html >new file mode 100644 >index 00000000000..1f52c110aba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/declarations.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for declarations.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/declarations.html">../../../../resources/webgl_test_files/deqp/data/gles2/shaders/declarations.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/declarations.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/fragdata-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/fragdata-expected.txt >new file mode 100644 >index 00000000000..70fb5c272d5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/fragdata-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles2/shaders/fragdata.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/fragdata.html b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/fragdata.html >new file mode 100644 >index 00000000000..89f9e14941b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/fragdata.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for fragdata.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/fragdata.html">../../../../resources/webgl_test_files/deqp/data/gles2/shaders/fragdata.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/fragdata.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/functions-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/functions-expected.txt >new file mode 100644 >index 00000000000..872c19b70c2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/functions-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles2/shaders/functions.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/functions.html b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/functions.html >new file mode 100644 >index 00000000000..800c7bfd52f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/functions.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/functions.html">../../../../resources/webgl_test_files/deqp/data/gles2/shaders/functions.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/functions.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/invalid_texture_functions-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/invalid_texture_functions-expected.txt >new file mode 100644 >index 00000000000..fbd7367cf22 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/invalid_texture_functions-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles2/shaders/invalid_texture_functions.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/invalid_texture_functions.html b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/invalid_texture_functions.html >new file mode 100644 >index 00000000000..8222ca5c50c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/invalid_texture_functions.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for invalid_texture_functions.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/invalid_texture_functions.html">../../../../resources/webgl_test_files/deqp/data/gles2/shaders/invalid_texture_functions.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/invalid_texture_functions.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/keywords-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/keywords-expected.txt >new file mode 100644 >index 00000000000..81180710dc0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/keywords-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles2/shaders/keywords.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/keywords.html b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/keywords.html >new file mode 100644 >index 00000000000..344a452689e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/keywords.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for keywords.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/keywords.html">../../../../resources/webgl_test_files/deqp/data/gles2/shaders/keywords.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/keywords.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/linkage-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/linkage-expected.txt >new file mode 100644 >index 00000000000..55e0c32c32b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/linkage-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles2/shaders/linkage.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/linkage.html b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/linkage.html >new file mode 100644 >index 00000000000..e152a335219 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/linkage.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for linkage.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/linkage.html">../../../../resources/webgl_test_files/deqp/data/gles2/shaders/linkage.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/linkage.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/preprocessor-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/preprocessor-expected.txt >new file mode 100644 >index 00000000000..007d7af1718 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/preprocessor-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles2/shaders/preprocessor.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/preprocessor.html b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/preprocessor.html >new file mode 100644 >index 00000000000..2fadabfc90b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/preprocessor.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for preprocessor.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/preprocessor.html">../../../../resources/webgl_test_files/deqp/data/gles2/shaders/preprocessor.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/preprocessor.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/qualification_order-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/qualification_order-expected.txt >new file mode 100644 >index 00000000000..12fee6a6edd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/qualification_order-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles2/shaders/qualification_order.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/qualification_order.html b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/qualification_order.html >new file mode 100644 >index 00000000000..7bc13b117c0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/qualification_order.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for qualification_order.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/qualification_order.html">../../../../resources/webgl_test_files/deqp/data/gles2/shaders/qualification_order.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/qualification_order.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/reserved_operators-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/reserved_operators-expected.txt >new file mode 100644 >index 00000000000..b5a30d75902 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/reserved_operators-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles2/shaders/reserved_operators.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/reserved_operators.html b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/reserved_operators.html >new file mode 100644 >index 00000000000..50787e284b3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/reserved_operators.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for reserved_operators.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/reserved_operators.html">../../../../resources/webgl_test_files/deqp/data/gles2/shaders/reserved_operators.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/reserved_operators.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/scoping-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/scoping-expected.txt >new file mode 100644 >index 00000000000..dbed47521ea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/scoping-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles2/shaders/scoping.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/scoping.html b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/scoping.html >new file mode 100644 >index 00000000000..319b5a2947e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/scoping.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for scoping.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/scoping.html">../../../../resources/webgl_test_files/deqp/data/gles2/shaders/scoping.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/scoping.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/swizzles-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/swizzles-expected.txt >new file mode 100644 >index 00000000000..b8e67b352d2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/swizzles-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles2/shaders/swizzles.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/swizzles.html b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/swizzles.html >new file mode 100644 >index 00000000000..5e44e30e69f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles2/shaders/swizzles.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for swizzles.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/swizzles.html">../../../../resources/webgl_test_files/deqp/data/gles2/shaders/swizzles.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles2/shaders/swizzles.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/arrays-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/arrays-expected.txt >new file mode 100644 >index 00000000000..abfd7abf112 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/arrays-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles3/shaders/arrays.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/arrays.html b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/arrays.html >new file mode 100644 >index 00000000000..60d8575da58 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/arrays.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for arrays.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/arrays.html">../../../../resources/webgl_test_files/deqp/data/gles3/shaders/arrays.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/arrays.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/conditionals-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/conditionals-expected.txt >new file mode 100644 >index 00000000000..cd8ce461cdf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/conditionals-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles3/shaders/conditionals.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/conditionals.html b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/conditionals.html >new file mode 100644 >index 00000000000..676c0be967e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/conditionals.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conditionals.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/conditionals.html">../../../../resources/webgl_test_files/deqp/data/gles3/shaders/conditionals.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/conditionals.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/constant_expressions-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/constant_expressions-expected.txt >new file mode 100644 >index 00000000000..81d931d6ceb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/constant_expressions-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles3/shaders/constant_expressions.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/constant_expressions.html b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/constant_expressions.html >new file mode 100644 >index 00000000000..82fbe86e924 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/constant_expressions.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for constant_expressions.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/constant_expressions.html">../../../../resources/webgl_test_files/deqp/data/gles3/shaders/constant_expressions.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/constant_expressions.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/constants-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/constants-expected.txt >new file mode 100644 >index 00000000000..f653cc4161b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/constants-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles3/shaders/constants.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/constants.html b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/constants.html >new file mode 100644 >index 00000000000..d76e2f31526 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/constants.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for constants.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/constants.html">../../../../resources/webgl_test_files/deqp/data/gles3/shaders/constants.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/constants.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/conversions-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/conversions-expected.txt >new file mode 100644 >index 00000000000..6d9ce7b5a86 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/conversions-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles3/shaders/conversions.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/conversions.html b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/conversions.html >new file mode 100644 >index 00000000000..8be7aeda46e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/conversions.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversions.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/conversions.html">../../../../resources/webgl_test_files/deqp/data/gles3/shaders/conversions.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/conversions.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/declarations-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/declarations-expected.txt >new file mode 100644 >index 00000000000..9f0e171bbf2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/declarations-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles3/shaders/declarations.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/declarations.html b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/declarations.html >new file mode 100644 >index 00000000000..b236c61ecda >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/declarations.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for declarations.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/declarations.html">../../../../resources/webgl_test_files/deqp/data/gles3/shaders/declarations.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/declarations.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/fragdata-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/fragdata-expected.txt >new file mode 100644 >index 00000000000..9f59a42d182 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/fragdata-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles3/shaders/fragdata.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/fragdata.html b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/fragdata.html >new file mode 100644 >index 00000000000..a358c733b4f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/fragdata.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for fragdata.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/fragdata.html">../../../../resources/webgl_test_files/deqp/data/gles3/shaders/fragdata.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/fragdata.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/functions-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/functions-expected.txt >new file mode 100644 >index 00000000000..678180feac6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/functions-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles3/shaders/functions.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/functions.html b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/functions.html >new file mode 100644 >index 00000000000..3e7988e5a50 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/functions.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for functions.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/functions.html">../../../../resources/webgl_test_files/deqp/data/gles3/shaders/functions.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/functions.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/invalid_texture_functions-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/invalid_texture_functions-expected.txt >new file mode 100644 >index 00000000000..26dc016c200 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/invalid_texture_functions-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles3/shaders/invalid_texture_functions.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/invalid_texture_functions.html b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/invalid_texture_functions.html >new file mode 100644 >index 00000000000..f769abfb83f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/invalid_texture_functions.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for invalid_texture_functions.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/invalid_texture_functions.html">../../../../resources/webgl_test_files/deqp/data/gles3/shaders/invalid_texture_functions.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/invalid_texture_functions.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/keywords-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/keywords-expected.txt >new file mode 100644 >index 00000000000..1736fa3125e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/keywords-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles3/shaders/keywords.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/keywords.html b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/keywords.html >new file mode 100644 >index 00000000000..990fa764241 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/keywords.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for keywords.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/keywords.html">../../../../resources/webgl_test_files/deqp/data/gles3/shaders/keywords.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/keywords.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/linkage-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/linkage-expected.txt >new file mode 100644 >index 00000000000..c19c1f13a55 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/linkage-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles3/shaders/linkage.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/linkage.html b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/linkage.html >new file mode 100644 >index 00000000000..18698b04ea3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/linkage.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for linkage.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/linkage.html">../../../../resources/webgl_test_files/deqp/data/gles3/shaders/linkage.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/linkage.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/negative-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/negative-expected.txt >new file mode 100644 >index 00000000000..1327603c9ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/negative-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles3/shaders/negative.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/negative.html b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/negative.html >new file mode 100644 >index 00000000000..ed704969464 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/negative.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for negative.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/negative.html">../../../../resources/webgl_test_files/deqp/data/gles3/shaders/negative.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/negative.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/preprocessor-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/preprocessor-expected.txt >new file mode 100644 >index 00000000000..cf9293a8371 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/preprocessor-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles3/shaders/preprocessor.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/preprocessor.html b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/preprocessor.html >new file mode 100644 >index 00000000000..fdb0dd5b244 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/preprocessor.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for preprocessor.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/preprocessor.html">../../../../resources/webgl_test_files/deqp/data/gles3/shaders/preprocessor.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/preprocessor.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/qualification_order-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/qualification_order-expected.txt >new file mode 100644 >index 00000000000..9bae26a83b5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/qualification_order-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles3/shaders/qualification_order.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/qualification_order.html b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/qualification_order.html >new file mode 100644 >index 00000000000..da26ed8acf3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/qualification_order.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for qualification_order.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/qualification_order.html">../../../../resources/webgl_test_files/deqp/data/gles3/shaders/qualification_order.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/qualification_order.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/scoping-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/scoping-expected.txt >new file mode 100644 >index 00000000000..e0c97805a53 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/scoping-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles3/shaders/scoping.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/scoping.html b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/scoping.html >new file mode 100644 >index 00000000000..b167894bfa0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/scoping.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for scoping.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/scoping.html">../../../../resources/webgl_test_files/deqp/data/gles3/shaders/scoping.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/scoping.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/switch-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/switch-expected.txt >new file mode 100644 >index 00000000000..ec171a8dbba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/switch-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles3/shaders/switch.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/switch.html b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/switch.html >new file mode 100644 >index 00000000000..ebe15a20e13 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/switch.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for switch.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/switch.html">../../../../resources/webgl_test_files/deqp/data/gles3/shaders/switch.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/switch.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/swizzles-expected.txt b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/swizzles-expected.txt >new file mode 100644 >index 00000000000..79b7e4a0ef3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/swizzles-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/data/gles3/shaders/swizzles.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/swizzles.html b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/swizzles.html >new file mode 100644 >index 00000000000..6fce0c3a5bb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/data/gles3/shaders/swizzles.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for swizzles.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/swizzles.html">../../../../resources/webgl_test_files/deqp/data/gles3/shaders/swizzles.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/data/gles3/shaders/swizzles.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/framework/opengl/simplereference/referencecontext-expected.txt b/LayoutTests/webgl/2.0.0/deqp/framework/opengl/simplereference/referencecontext-expected.txt >new file mode 100644 >index 00000000000..0510d78e9f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/framework/opengl/simplereference/referencecontext-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/framework/opengl/simplereference/referencecontext.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/framework/opengl/simplereference/referencecontext.html b/LayoutTests/webgl/2.0.0/deqp/framework/opengl/simplereference/referencecontext.html >new file mode 100644 >index 00000000000..fcaa1b1f366 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/framework/opengl/simplereference/referencecontext.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for referencecontext.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/framework/opengl/simplereference/referencecontext.html">../../../../resources/webgl_test_files/deqp/framework/opengl/simplereference/referencecontext.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/framework/opengl/simplereference/referencecontext.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/attriblocation-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/attriblocation-expected.txt >new file mode 100644 >index 00000000000..5c9af17b000 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/attriblocation-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/attriblocation.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/attriblocation.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/attriblocation.html >new file mode 100644 >index 00000000000..35b99bcc242 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/attriblocation.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for attriblocation.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/attriblocation.html">../../../resources/webgl_test_files/deqp/functional/gles3/attriblocation.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/attriblocation.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/booleanstatequery-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/booleanstatequery-expected.txt >new file mode 100644 >index 00000000000..4959310593d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/booleanstatequery-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/booleanstatequery.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/booleanstatequery.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/booleanstatequery.html >new file mode 100644 >index 00000000000..7a3680a6af9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/booleanstatequery.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for booleanstatequery.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/booleanstatequery.html">../../../resources/webgl_test_files/deqp/functional/gles3/booleanstatequery.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/booleanstatequery.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/buffercopy-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/buffercopy-expected.txt >new file mode 100644 >index 00000000000..8abd7ee788e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/buffercopy-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/buffercopy.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/buffercopy.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/buffercopy.html >new file mode 100644 >index 00000000000..b1f38fab3fb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/buffercopy.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for buffercopy.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/buffercopy.html">../../../resources/webgl_test_files/deqp/functional/gles3/buffercopy.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/buffercopy.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/bufferobjectquery-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/bufferobjectquery-expected.txt >new file mode 100644 >index 00000000000..34348cdc3fe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/bufferobjectquery-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/bufferobjectquery.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/bufferobjectquery.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/bufferobjectquery.html >new file mode 100644 >index 00000000000..2fbdaa82a99 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/bufferobjectquery.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for bufferobjectquery.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/bufferobjectquery.html">../../../resources/webgl_test_files/deqp/functional/gles3/bufferobjectquery.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/bufferobjectquery.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/abs-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/abs-expected.txt >new file mode 100644 >index 00000000000..adef7a0e2f3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/abs-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/abs.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/abs.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/abs.html >new file mode 100644 >index 00000000000..ba574d46f07 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/abs.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for abs.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/abs.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/abs.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/abs.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/acos-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/acos-expected.txt >new file mode 100644 >index 00000000000..b1511db5315 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/acos-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/acos.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/acos.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/acos.html >new file mode 100644 >index 00000000000..7be0772b64d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/acos.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for acos.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/acos.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/acos.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/acos.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/acosh-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/acosh-expected.txt >new file mode 100644 >index 00000000000..485f033d9b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/acosh-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/acosh.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/acosh.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/acosh.html >new file mode 100644 >index 00000000000..0d5e9fe791b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/acosh.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for acosh.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/acosh.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/acosh.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/acosh.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/add-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/add-expected.txt >new file mode 100644 >index 00000000000..5fbf40eb376 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/add-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/add.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/add.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/add.html >new file mode 100644 >index 00000000000..737a51a9d7f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/add.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for add.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/add.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/add.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/add.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/asin-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/asin-expected.txt >new file mode 100644 >index 00000000000..764dd21a8d5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/asin-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/asin.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/asin.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/asin.html >new file mode 100644 >index 00000000000..38b1339ea30 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/asin.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for asin.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/asin.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/asin.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/asin.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/asinh-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/asinh-expected.txt >new file mode 100644 >index 00000000000..20de4ef8ef5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/asinh-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/asinh.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/asinh.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/asinh.html >new file mode 100644 >index 00000000000..43d198c42da >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/asinh.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for asinh.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/asinh.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/asinh.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/asinh.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/atan-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/atan-expected.txt >new file mode 100644 >index 00000000000..cb04a7dc85e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/atan-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/atan.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/atan.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/atan.html >new file mode 100644 >index 00000000000..5640248e2df >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/atan.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for atan.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/atan.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/atan.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/atan.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/atan2-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/atan2-expected.txt >new file mode 100644 >index 00000000000..4c6be4b248d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/atan2-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/atan2.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/atan2.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/atan2.html >new file mode 100644 >index 00000000000..cbfa5b53f22 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/atan2.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for atan2.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/atan2.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/atan2.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/atan2.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/atanh-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/atanh-expected.txt >new file mode 100644 >index 00000000000..ca4b26a51e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/atanh-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/atanh.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/atanh.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/atanh.html >new file mode 100644 >index 00000000000..b85067d92de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/atanh.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for atanh.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/atanh.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/atanh.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/atanh.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/ceil-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/ceil-expected.txt >new file mode 100644 >index 00000000000..a1b343ea3db >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/ceil-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/ceil.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/ceil.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/ceil.html >new file mode 100644 >index 00000000000..85e9e14438d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/ceil.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for ceil.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/ceil.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/ceil.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/ceil.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/clamp-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/clamp-expected.txt >new file mode 100644 >index 00000000000..b125efd683d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/clamp-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/clamp.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/clamp.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/clamp.html >new file mode 100644 >index 00000000000..1cd32a6fd63 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/clamp.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for clamp.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/clamp.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/clamp.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/clamp.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/cos-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/cos-expected.txt >new file mode 100644 >index 00000000000..ff0414e7ff8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/cos-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/cos.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/cos.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/cos.html >new file mode 100644 >index 00000000000..6a07ccf7ca5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/cos.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cos.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/cos.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/cos.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/cos.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/cosh-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/cosh-expected.txt >new file mode 100644 >index 00000000000..6a4a4b0ac78 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/cosh-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/cosh.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/cosh.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/cosh.html >new file mode 100644 >index 00000000000..477739e1251 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/cosh.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cosh.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/cosh.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/cosh.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/cosh.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/cross-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/cross-expected.txt >new file mode 100644 >index 00000000000..a19f91e2710 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/cross-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/cross.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/cross.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/cross.html >new file mode 100644 >index 00000000000..23b97cbc176 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/cross.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cross.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/cross.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/cross.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/cross.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/degrees-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/degrees-expected.txt >new file mode 100644 >index 00000000000..5ab901cd540 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/degrees-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/degrees.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/degrees.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/degrees.html >new file mode 100644 >index 00000000000..51b48561788 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/degrees.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for degrees.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/degrees.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/degrees.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/degrees.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/determinant-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/determinant-expected.txt >new file mode 100644 >index 00000000000..60dbda10331 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/determinant-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/determinant.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/determinant.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/determinant.html >new file mode 100644 >index 00000000000..d999de7528b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/determinant.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for determinant.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/determinant.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/determinant.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/determinant.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/distance-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/distance-expected.txt >new file mode 100644 >index 00000000000..d5c061e03a2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/distance-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/distance.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/distance.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/distance.html >new file mode 100644 >index 00000000000..e320aa36acf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/distance.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for distance.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/distance.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/distance.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/distance.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/div-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/div-expected.txt >new file mode 100644 >index 00000000000..0fd876ca8de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/div-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/div.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/div.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/div.html >new file mode 100644 >index 00000000000..1ef7ab09bef >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/div.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for div.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/div.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/div.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/div.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/dot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/dot-expected.txt >new file mode 100644 >index 00000000000..5ff41dc8513 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/dot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/dot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/dot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/dot.html >new file mode 100644 >index 00000000000..b8b17a6e5f5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/dot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for dot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/dot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/dot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/dot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/exp-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/exp-expected.txt >new file mode 100644 >index 00000000000..ada07fdb04c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/exp-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/exp.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/exp.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/exp.html >new file mode 100644 >index 00000000000..6a97678466f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/exp.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for exp.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/exp.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/exp.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/exp.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/exp2-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/exp2-expected.txt >new file mode 100644 >index 00000000000..241338b6870 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/exp2-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/exp2.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/exp2.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/exp2.html >new file mode 100644 >index 00000000000..a3aeabeb7f9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/exp2.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for exp2.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/exp2.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/exp2.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/exp2.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/faceforward-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/faceforward-expected.txt >new file mode 100644 >index 00000000000..7924b26c079 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/faceforward-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/faceforward.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/faceforward.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/faceforward.html >new file mode 100644 >index 00000000000..17c7470554d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/faceforward.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for faceforward.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/faceforward.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/faceforward.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/faceforward.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/floor-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/floor-expected.txt >new file mode 100644 >index 00000000000..6c5428ea6c0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/floor-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/floor.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/floor.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/floor.html >new file mode 100644 >index 00000000000..ff50c1f56dc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/floor.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for floor.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/floor.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/floor.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/floor.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/fract-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/fract-expected.txt >new file mode 100644 >index 00000000000..4d102ac4040 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/fract-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/fract.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/fract.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/fract.html >new file mode 100644 >index 00000000000..ea36cb7d873 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/fract.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for fract.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/fract.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/fract.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/fract.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/inverse-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/inverse-expected.txt >new file mode 100644 >index 00000000000..f0b60914f72 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/inverse-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/inverse.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/inverse.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/inverse.html >new file mode 100644 >index 00000000000..bcd1feb25d2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/inverse.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for inverse.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/inverse.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/inverse.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/inverse.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/inversesqrt-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/inversesqrt-expected.txt >new file mode 100644 >index 00000000000..d116ff91c65 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/inversesqrt-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/inversesqrt.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/inversesqrt.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/inversesqrt.html >new file mode 100644 >index 00000000000..d0d5a2a658b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/inversesqrt.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for inversesqrt.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/inversesqrt.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/inversesqrt.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/inversesqrt.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/length-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/length-expected.txt >new file mode 100644 >index 00000000000..3356cbaee13 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/length-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/length.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/length.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/length.html >new file mode 100644 >index 00000000000..62b207cf8e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/length.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for length.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/length.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/length.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/length.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/log-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/log-expected.txt >new file mode 100644 >index 00000000000..db85c7bd2ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/log-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/log.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/log.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/log.html >new file mode 100644 >index 00000000000..536f931c739 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/log.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for log.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/log.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/log.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/log.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/log2-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/log2-expected.txt >new file mode 100644 >index 00000000000..1593f8ec673 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/log2-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/log2.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/log2.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/log2.html >new file mode 100644 >index 00000000000..03a7c0e9351 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/log2.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for log2.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/log2.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/log2.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/log2.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/matrixcompmult-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/matrixcompmult-expected.txt >new file mode 100644 >index 00000000000..0e90c3c0389 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/matrixcompmult-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/matrixcompmult.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/matrixcompmult.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/matrixcompmult.html >new file mode 100644 >index 00000000000..8e33e87054d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/matrixcompmult.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for matrixcompmult.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/matrixcompmult.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/matrixcompmult.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/matrixcompmult.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/max-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/max-expected.txt >new file mode 100644 >index 00000000000..79bb7953b62 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/max-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/max.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/max.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/max.html >new file mode 100644 >index 00000000000..27e03f0a57f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/max.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for max.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/max.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/max.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/max.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/min-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/min-expected.txt >new file mode 100644 >index 00000000000..360ee8b2f24 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/min-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/min.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/min.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/min.html >new file mode 100644 >index 00000000000..c2294fa6594 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/min.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for min.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/min.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/min.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/min.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/mix-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/mix-expected.txt >new file mode 100644 >index 00000000000..9fbad0d79d3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/mix-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/mix.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/mix.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/mix.html >new file mode 100644 >index 00000000000..7e53d65e97d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/mix.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mix.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/mix.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/mix.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/mix.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/mod-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/mod-expected.txt >new file mode 100644 >index 00000000000..a6af4e3b601 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/mod-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/mod.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/mod.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/mod.html >new file mode 100644 >index 00000000000..ba94d74b6b5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/mod.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mod.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/mod.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/mod.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/mod.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/modf-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/modf-expected.txt >new file mode 100644 >index 00000000000..15b9234d8e0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/modf-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/modf.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/modf.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/modf.html >new file mode 100644 >index 00000000000..5ff05c99d8b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/modf.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for modf.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/modf.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/modf.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/modf.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/mul-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/mul-expected.txt >new file mode 100644 >index 00000000000..078c56e1968 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/mul-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/mul.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/mul.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/mul.html >new file mode 100644 >index 00000000000..a736cc702e3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/mul.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mul.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/mul.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/mul.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/mul.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/normalize-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/normalize-expected.txt >new file mode 100644 >index 00000000000..dde12a6ce8f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/normalize-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/normalize.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/normalize.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/normalize.html >new file mode 100644 >index 00000000000..950fc5f00d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/normalize.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for normalize.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/normalize.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/normalize.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/normalize.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/outerproduct-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/outerproduct-expected.txt >new file mode 100644 >index 00000000000..4bde3db2f39 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/outerproduct-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/outerproduct.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/outerproduct.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/outerproduct.html >new file mode 100644 >index 00000000000..be956aaf502 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/outerproduct.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for outerproduct.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/outerproduct.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/outerproduct.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/outerproduct.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/pow-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/pow-expected.txt >new file mode 100644 >index 00000000000..d4cd53856ce >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/pow-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/pow.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/pow.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/pow.html >new file mode 100644 >index 00000000000..12afe8046f7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/pow.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for pow.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/pow.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/pow.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/pow.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/radians-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/radians-expected.txt >new file mode 100644 >index 00000000000..1594c41a3c0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/radians-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/radians.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/radians.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/radians.html >new file mode 100644 >index 00000000000..dc8b7d46663 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/radians.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for radians.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/radians.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/radians.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/radians.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/reflect-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/reflect-expected.txt >new file mode 100644 >index 00000000000..bcbaa7c7cb7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/reflect-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/reflect.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/reflect.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/reflect.html >new file mode 100644 >index 00000000000..ec18a1c544b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/reflect.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for reflect.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/reflect.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/reflect.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/reflect.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/refract-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/refract-expected.txt >new file mode 100644 >index 00000000000..8136441f571 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/refract-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/refract.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/refract.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/refract.html >new file mode 100644 >index 00000000000..7e7d51c0389 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/refract.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for refract.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/refract.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/refract.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/refract.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/round-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/round-expected.txt >new file mode 100644 >index 00000000000..1bf3acd81b9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/round-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/round.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/round.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/round.html >new file mode 100644 >index 00000000000..08260e7fe8a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/round.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for round.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/round.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/round.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/round.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/roundeven-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/roundeven-expected.txt >new file mode 100644 >index 00000000000..4722faaeb0c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/roundeven-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/roundeven.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/roundeven.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/roundeven.html >new file mode 100644 >index 00000000000..01a350b79e5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/roundeven.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for roundeven.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/roundeven.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/roundeven.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/roundeven.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sign-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sign-expected.txt >new file mode 100644 >index 00000000000..caf48a16ca9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sign-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sign.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sign.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sign.html >new file mode 100644 >index 00000000000..e1f09ad4d2c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sign.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sign.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sign.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sign.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sign.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sin-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sin-expected.txt >new file mode 100644 >index 00000000000..2d55491f17f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sin-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sin.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sin.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sin.html >new file mode 100644 >index 00000000000..8b1f8b3ffa6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sin.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sin.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sin.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sin.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sin.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sinh-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sinh-expected.txt >new file mode 100644 >index 00000000000..03fa0c05c1b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sinh-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sinh.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sinh.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sinh.html >new file mode 100644 >index 00000000000..58057a9a3df >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sinh.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sinh.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sinh.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sinh.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sinh.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/smoothstep-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/smoothstep-expected.txt >new file mode 100644 >index 00000000000..277f43076b1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/smoothstep-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/smoothstep.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/smoothstep.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/smoothstep.html >new file mode 100644 >index 00000000000..750bc9d1e30 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/smoothstep.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for smoothstep.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/smoothstep.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/smoothstep.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/smoothstep.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sqrt-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sqrt-expected.txt >new file mode 100644 >index 00000000000..dae3ed441ba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sqrt-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sqrt.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sqrt.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sqrt.html >new file mode 100644 >index 00000000000..5a2473b8bb7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sqrt.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sqrt.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sqrt.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sqrt.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sqrt.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/step-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/step-expected.txt >new file mode 100644 >index 00000000000..88ee2a40f7c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/step-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/step.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/step.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/step.html >new file mode 100644 >index 00000000000..5c77afde9db >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/step.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for step.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/step.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/step.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/step.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sub-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sub-expected.txt >new file mode 100644 >index 00000000000..0f925161dbd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sub-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sub.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sub.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sub.html >new file mode 100644 >index 00000000000..6232b183bcd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/sub.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sub.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sub.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sub.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/sub.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/tan-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/tan-expected.txt >new file mode 100644 >index 00000000000..6241996ae6a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/tan-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/tan.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/tan.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/tan.html >new file mode 100644 >index 00000000000..294cd5690ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/tan.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tan.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/tan.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/tan.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/tan.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/tanh-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/tanh-expected.txt >new file mode 100644 >index 00000000000..2300fd6a81e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/tanh-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/tanh.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/tanh.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/tanh.html >new file mode 100644 >index 00000000000..53fb20bf292 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/tanh.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tanh.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/tanh.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/tanh.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/tanh.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/transpose-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/transpose-expected.txt >new file mode 100644 >index 00000000000..fb61e78351a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/transpose-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/transpose.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/transpose.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/transpose.html >new file mode 100644 >index 00000000000..6a23d3cfac6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/transpose.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for transpose.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/transpose.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/transpose.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/transpose.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/trunc-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/trunc-expected.txt >new file mode 100644 >index 00000000000..94f4b5869cb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/trunc-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/trunc.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/trunc.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/trunc.html >new file mode 100644 >index 00000000000..d304e933bfe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/builtinprecision/trunc.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for trunc.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/trunc.html">../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/trunc.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/builtinprecision/trunc.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/clipping-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/clipping-expected.txt >new file mode 100644 >index 00000000000..e7929c7d9a4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/clipping-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/clipping.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/clipping.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/clipping.html >new file mode 100644 >index 00000000000..03964f5eb9a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/clipping.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for clipping.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/clipping.html">../../../resources/webgl_test_files/deqp/functional/gles3/clipping.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/clipping.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/defaultvertexattribute-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/defaultvertexattribute-expected.txt >new file mode 100644 >index 00000000000..185b9a17b1e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/defaultvertexattribute-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/defaultvertexattribute.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/defaultvertexattribute.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/defaultvertexattribute.html >new file mode 100644 >index 00000000000..1c4f4f39adc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/defaultvertexattribute.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for defaultvertexattribute.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/defaultvertexattribute.html">../../../resources/webgl_test_files/deqp/functional/gles3/defaultvertexattribute.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/defaultvertexattribute.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_arrays-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_arrays-expected.txt >new file mode 100644 >index 00000000000..f2753cf4f99 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_arrays-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_arrays.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_arrays.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_arrays.html >new file mode 100644 >index 00000000000..bc9491cb933 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_arrays.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for draw_arrays.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_arrays.html">../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_arrays.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_arrays.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_arrays_instanced-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_arrays_instanced-expected.txt >new file mode 100644 >index 00000000000..b01a0c9b3bd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_arrays_instanced-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_arrays_instanced.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_arrays_instanced.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_arrays_instanced.html >new file mode 100644 >index 00000000000..592d56d652b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_arrays_instanced.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for draw_arrays_instanced.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_arrays_instanced.html">../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_arrays_instanced.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_arrays_instanced.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_elements-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_elements-expected.txt >new file mode 100644 >index 00000000000..4b29df501fa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_elements-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_elements.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_elements.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_elements.html >new file mode 100644 >index 00000000000..5ee02cf1d84 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_elements.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for draw_elements.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_elements.html">../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_elements.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_elements.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_elements_instanced-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_elements_instanced-expected.txt >new file mode 100644 >index 00000000000..d311decf10b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_elements_instanced-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_elements_instanced.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_elements_instanced.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_elements_instanced.html >new file mode 100644 >index 00000000000..aace07ec404 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_elements_instanced.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for draw_elements_instanced.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_elements_instanced.html">../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_elements_instanced.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_elements_instanced.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_range_elements-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_range_elements-expected.txt >new file mode 100644 >index 00000000000..f8f4dce17a4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_range_elements-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_range_elements.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_range_elements.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_range_elements.html >new file mode 100644 >index 00000000000..0c6e8f755a6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/draw_range_elements.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for draw_range_elements.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_range_elements.html">../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_range_elements.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/draw/draw_range_elements.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/instancing-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/instancing-expected.txt >new file mode 100644 >index 00000000000..b99e876a73b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/instancing-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/draw/instancing.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/instancing.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/instancing.html >new file mode 100644 >index 00000000000..dea482584e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/instancing.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for instancing.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/draw/instancing.html">../../../../resources/webgl_test_files/deqp/functional/gles3/draw/instancing.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/draw/instancing.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/random-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/random-expected.txt >new file mode 100644 >index 00000000000..13298950d2f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/random-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/draw/random.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/random.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/random.html >new file mode 100644 >index 00000000000..17683635f4a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/draw/random.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for random.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/draw/random.html">../../../../resources/webgl_test_files/deqp/functional/gles3/draw/random.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/draw/random.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/blend-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/blend-expected.txt >new file mode 100644 >index 00000000000..31c167dec0c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/blend-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/blend.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/blend.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/blend.html >new file mode 100644 >index 00000000000..776a37d70a0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/blend.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for blend.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/blend.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/blend.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/blend.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/clear-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/clear-expected.txt >new file mode 100644 >index 00000000000..0cbcf3cb516 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/clear-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/clear.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/clear.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/clear.html >new file mode 100644 >index 00000000000..d88d1bb2412 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/clear.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for clear.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/clear.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/clear.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/clear.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_00-expected.txt >new file mode 100644 >index 00000000000..56622c78408 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_00.html >new file mode 100644 >index 00000000000..1f981eb5308 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex2d_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_01-expected.txt >new file mode 100644 >index 00000000000..1fc8e130211 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_01.html >new file mode 100644 >index 00000000000..29ef216e5d5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex2d_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_02-expected.txt >new file mode 100644 >index 00000000000..60bec3c6c11 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_02.html >new file mode 100644 >index 00000000000..e2923baf87c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex2d_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_03-expected.txt >new file mode 100644 >index 00000000000..62bfd94a9f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_03.html >new file mode 100644 >index 00000000000..00888f95db0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex2d_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_04-expected.txt >new file mode 100644 >index 00000000000..1927b085647 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_04.html >new file mode 100644 >index 00000000000..a4bb7a6bee4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex2d_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_05-expected.txt >new file mode 100644 >index 00000000000..b7c2e1c8e3f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_05.html >new file mode 100644 >index 00000000000..588f38d8cd3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2d_05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex2d_05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2d_05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_00-expected.txt >new file mode 100644 >index 00000000000..d20e3a8c044 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_00.html >new file mode 100644 >index 00000000000..8c93a203e6b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex2darray_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_01-expected.txt >new file mode 100644 >index 00000000000..17681108dea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_01.html >new file mode 100644 >index 00000000000..e94adeeef66 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex2darray_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_02-expected.txt >new file mode 100644 >index 00000000000..8294c0daf6f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_02.html >new file mode 100644 >index 00000000000..c080e98bf4c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex2darray_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_03-expected.txt >new file mode 100644 >index 00000000000..5a51bbb404e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_03.html >new file mode 100644 >index 00000000000..a7aed844d41 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex2darray_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_04-expected.txt >new file mode 100644 >index 00000000000..fc077d63cf8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_04.html >new file mode 100644 >index 00000000000..2b8eefac18b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex2darray_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_05-expected.txt >new file mode 100644 >index 00000000000..797bc57332f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_05.html >new file mode 100644 >index 00000000000..57583480398 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex2darray_05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex2darray_05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex2darray_05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_00-expected.txt >new file mode 100644 >index 00000000000..a96c651475c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_00.html >new file mode 100644 >index 00000000000..b0fc3b42cb5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex3d_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_01-expected.txt >new file mode 100644 >index 00000000000..b6069de17c6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_01.html >new file mode 100644 >index 00000000000..7499029512c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex3d_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_02-expected.txt >new file mode 100644 >index 00000000000..b3a3e0ac2b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_02.html >new file mode 100644 >index 00000000000..d6e8c156d75 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex3d_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_03-expected.txt >new file mode 100644 >index 00000000000..25d85b25beb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_03.html >new file mode 100644 >index 00000000000..0a59a0a02c7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex3d_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_04-expected.txt >new file mode 100644 >index 00000000000..cf33e94e132 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_04.html >new file mode 100644 >index 00000000000..75fa3c7d23f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex3d_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_05-expected.txt >new file mode 100644 >index 00000000000..62787967612 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_05.html >new file mode 100644 >index 00000000000..14c665e5a66 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/tex3d_05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tex3d_05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/tex3d_05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_00-expected.txt >new file mode 100644 >index 00000000000..d58d0c17e45 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_00.html >new file mode 100644 >index 00000000000..daa19ab9377 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texcube_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_01-expected.txt >new file mode 100644 >index 00000000000..8bd49dc675b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_01.html >new file mode 100644 >index 00000000000..2e18af7ee08 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texcube_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_02-expected.txt >new file mode 100644 >index 00000000000..80b6a59885e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_02.html >new file mode 100644 >index 00000000000..bed8a6f04a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texcube_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_03-expected.txt >new file mode 100644 >index 00000000000..03f3818b8d3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_03.html >new file mode 100644 >index 00000000000..414a4fbf9f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texcube_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_04-expected.txt >new file mode 100644 >index 00000000000..ef266fdf5e3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_04.html >new file mode 100644 >index 00000000000..3bec10999ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texcube_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_05-expected.txt >new file mode 100644 >index 00000000000..34072be99b1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_05.html >new file mode 100644 >index 00000000000..425e6d560ea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocolorbuffer/texcube_05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texcube_05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fbocolorbuffer/texcube_05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocompleteness-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocompleteness-expected.txt >new file mode 100644 >index 00000000000..809cf17ae69 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocompleteness-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/fbocompleteness.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocompleteness.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocompleteness.html >new file mode 100644 >index 00000000000..eca87440902 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbocompleteness.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for fbocompleteness.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/fbocompleteness.html">../../../resources/webgl_test_files/deqp/functional/gles3/fbocompleteness.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/fbocompleteness.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbodepthbuffer-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbodepthbuffer-expected.txt >new file mode 100644 >index 00000000000..3cd1f5c3de9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbodepthbuffer-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/fbodepthbuffer.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbodepthbuffer.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbodepthbuffer.html >new file mode 100644 >index 00000000000..d7b943f6a1b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbodepthbuffer.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for fbodepthbuffer.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/fbodepthbuffer.html">../../../resources/webgl_test_files/deqp/functional/gles3/fbodepthbuffer.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/fbodepthbuffer.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/default-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/default-expected.txt >new file mode 100644 >index 00000000000..c182f27250f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/default-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/default.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/default.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/default.html >new file mode 100644 >index 00000000000..7751c521a68 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/default.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for default.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/default.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/default.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/default.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_00-expected.txt >new file mode 100644 >index 00000000000..477d433c011 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/format_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_00.html >new file mode 100644 >index 00000000000..e2595fac782 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for format_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/format_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/format_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/format_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_01-expected.txt >new file mode 100644 >index 00000000000..2a30efcfd58 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/format_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_01.html >new file mode 100644 >index 00000000000..8c07a791591 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for format_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/format_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/format_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/format_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_02-expected.txt >new file mode 100644 >index 00000000000..8a62e6f5690 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/format_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_02.html >new file mode 100644 >index 00000000000..08ae90903e5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/format_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for format_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/format_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/format_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/format_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/sub-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/sub-expected.txt >new file mode 100644 >index 00000000000..ff05fa2822c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/sub-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/sub.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/sub.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/sub.html >new file mode 100644 >index 00000000000..233bb48ffb8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/sub.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sub.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/sub.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/sub.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/sub.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/target-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/target-expected.txt >new file mode 100644 >index 00000000000..dc170318548 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/target-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/target.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/target.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/target.html >new file mode 100644 >index 00000000000..7e20a7ca6ac >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/target.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for target.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/target.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/target.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/target.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/whole-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/whole-expected.txt >new file mode 100644 >index 00000000000..1658b0d4b5b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/whole-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/whole.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/whole.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/whole.html >new file mode 100644 >index 00000000000..0cb77db6634 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fboinvalidate/whole.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for whole.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/whole.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/whole.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fboinvalidate/whole.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbomultisample.2_samples-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbomultisample.2_samples-expected.txt >new file mode 100644 >index 00000000000..7529c1e04f9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbomultisample.2_samples-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/fbomultisample.2_samples.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbomultisample.2_samples.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbomultisample.2_samples.html >new file mode 100644 >index 00000000000..6906cb97b2a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbomultisample.2_samples.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for fbomultisample.2_samples.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/fbomultisample.2_samples.html">../../../resources/webgl_test_files/deqp/functional/gles3/fbomultisample.2_samples.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/fbomultisample.2_samples.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbomultisample.4_samples-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbomultisample.4_samples-expected.txt >new file mode 100644 >index 00000000000..22621a08e9b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbomultisample.4_samples-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/fbomultisample.4_samples.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbomultisample.4_samples.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbomultisample.4_samples.html >new file mode 100644 >index 00000000000..1e3acf5188a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbomultisample.4_samples.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for fbomultisample.4_samples.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/fbomultisample.4_samples.html">../../../resources/webgl_test_files/deqp/functional/gles3/fbomultisample.4_samples.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/fbomultisample.4_samples.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbomultisample.8_samples-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbomultisample.8_samples-expected.txt >new file mode 100644 >index 00000000000..63018bce65d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbomultisample.8_samples-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/fbomultisample.8_samples.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbomultisample.8_samples.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbomultisample.8_samples.html >new file mode 100644 >index 00000000000..88f495b49f9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbomultisample.8_samples.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for fbomultisample.8_samples.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/fbomultisample.8_samples.html">../../../resources/webgl_test_files/deqp/functional/gles3/fbomultisample.8_samples.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/fbomultisample.8_samples.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_00-expected.txt >new file mode 100644 >index 00000000000..32631b44ae1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_00.html >new file mode 100644 >index 00000000000..f4b547d7c57 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for recreate_color_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_01-expected.txt >new file mode 100644 >index 00000000000..4f8af8c570e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_01.html >new file mode 100644 >index 00000000000..476f0504c0f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for recreate_color_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_02-expected.txt >new file mode 100644 >index 00000000000..07ec9a6dc29 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_02.html >new file mode 100644 >index 00000000000..58089fe3e4f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for recreate_color_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_03-expected.txt >new file mode 100644 >index 00000000000..ae5f1161407 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_03.html >new file mode 100644 >index 00000000000..24e2b1df3b0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for recreate_color_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_04-expected.txt >new file mode 100644 >index 00000000000..b194c401581 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_04.html >new file mode 100644 >index 00000000000..4faf8bf3565 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for recreate_color_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_05-expected.txt >new file mode 100644 >index 00000000000..6c80ce4cc71 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_05.html >new file mode 100644 >index 00000000000..b9f96fba13f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for recreate_color_05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_06-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_06-expected.txt >new file mode 100644 >index 00000000000..5a076263a64 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_06-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_06.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_06.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_06.html >new file mode 100644 >index 00000000000..047d4417708 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_color_06.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for recreate_color_06.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_06.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_06.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_color_06.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_depth_stencil-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_depth_stencil-expected.txt >new file mode 100644 >index 00000000000..f37673a0039 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_depth_stencil-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_depth_stencil.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_depth_stencil.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_depth_stencil.html >new file mode 100644 >index 00000000000..93461037317 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/recreate_depth_stencil.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for recreate_depth_stencil.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_depth_stencil.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_depth_stencil.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/recreate_depth_stencil.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_00-expected.txt >new file mode 100644 >index 00000000000..729d24c603c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/resize_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_00.html >new file mode 100644 >index 00000000000..4a01b932e9f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for resize_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/resize_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/resize_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/resize_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_01-expected.txt >new file mode 100644 >index 00000000000..f3b50127c9e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/resize_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_01.html >new file mode 100644 >index 00000000000..c9989c3675a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for resize_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/resize_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/resize_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/resize_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_02-expected.txt >new file mode 100644 >index 00000000000..ae3dd5667d4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/resize_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_02.html >new file mode 100644 >index 00000000000..7f82375808c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for resize_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/resize_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/resize_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/resize_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_03-expected.txt >new file mode 100644 >index 00000000000..a7e6d81d10d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/resize_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_03.html >new file mode 100644 >index 00000000000..b4743b02415 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/resize_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for resize_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/resize_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/resize_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/resize_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_00-expected.txt >new file mode 100644 >index 00000000000..9f51ec8a374 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_colorbuffer_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_00.html >new file mode 100644 >index 00000000000..44bb5c95ea0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shared_colorbuffer_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_colorbuffer_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_colorbuffer_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_colorbuffer_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_01-expected.txt >new file mode 100644 >index 00000000000..53828c646f5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_colorbuffer_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_01.html >new file mode 100644 >index 00000000000..571a849a00a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shared_colorbuffer_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_colorbuffer_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_colorbuffer_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_colorbuffer_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_02-expected.txt >new file mode 100644 >index 00000000000..0cd8ddabc2d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_colorbuffer_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_02.html >new file mode 100644 >index 00000000000..76f1c919bef >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shared_colorbuffer_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_colorbuffer_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_colorbuffer_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_colorbuffer_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_clear-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_clear-expected.txt >new file mode 100644 >index 00000000000..f7977a2af02 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_clear-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_colorbuffer_clear.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_clear.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_clear.html >new file mode 100644 >index 00000000000..f72b8ac8535 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_colorbuffer_clear.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shared_colorbuffer_clear.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_colorbuffer_clear.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_colorbuffer_clear.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_colorbuffer_clear.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_depth_stencil-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_depth_stencil-expected.txt >new file mode 100644 >index 00000000000..09b37d1fdcb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_depth_stencil-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_depth_stencil.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_depth_stencil.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_depth_stencil.html >new file mode 100644 >index 00000000000..5087cb82f68 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/shared_depth_stencil.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shared_depth_stencil.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_depth_stencil.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_depth_stencil.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/shared_depth_stencil.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/stencil_clear-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/stencil_clear-expected.txt >new file mode 100644 >index 00000000000..dbb485864cb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/stencil_clear-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/stencil_clear.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/stencil_clear.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/stencil_clear.html >new file mode 100644 >index 00000000000..de6f3f54de2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fborender/stencil_clear.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for stencil_clear.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/stencil_clear.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/stencil_clear.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fborender/stencil_clear.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbostatequery-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbostatequery-expected.txt >new file mode 100644 >index 00000000000..a0422da7a0c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbostatequery-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/fbostatequery.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbostatequery.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbostatequery.html >new file mode 100644 >index 00000000000..327593104ef >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbostatequery.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for fbostatequery.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/fbostatequery.html">../../../resources/webgl_test_files/deqp/functional/gles3/fbostatequery.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/fbostatequery.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbostencilbuffer-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbostencilbuffer-expected.txt >new file mode 100644 >index 00000000000..fa5105a336b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbostencilbuffer-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/fbostencilbuffer.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbostencilbuffer.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbostencilbuffer.html >new file mode 100644 >index 00000000000..0083aaf5444 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fbostencilbuffer.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for fbostencilbuffer.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/fbostencilbuffer.html">../../../resources/webgl_test_files/deqp/functional/gles3/fbostencilbuffer.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/fbostencilbuffer.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/floatstatequery-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/floatstatequery-expected.txt >new file mode 100644 >index 00000000000..f4ea04b5591 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/floatstatequery-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/floatstatequery.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/floatstatequery.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/floatstatequery.html >new file mode 100644 >index 00000000000..60f33a2a8e3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/floatstatequery.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for floatstatequery.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/floatstatequery.html">../../../resources/webgl_test_files/deqp/functional/gles3/floatstatequery.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/floatstatequery.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragdepth-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragdepth-expected.txt >new file mode 100644 >index 00000000000..6ca96d2fd5b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragdepth-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/fragdepth.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragdepth.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragdepth.html >new file mode 100644 >index 00000000000..3573b962570 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragdepth.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for fragdepth.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/fragdepth.html">../../../resources/webgl_test_files/deqp/functional/gles3/fragdepth.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/fragdepth.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.fixed-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.fixed-expected.txt >new file mode 100644 >index 00000000000..09c186ba057 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.fixed-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/array.fixed.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.fixed.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.fixed.html >new file mode 100644 >index 00000000000..952df378313 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.fixed.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array.fixed.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/array.fixed.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/array.fixed.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/array.fixed.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.float-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.float-expected.txt >new file mode 100644 >index 00000000000..a6c12407ff3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/array.float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.float.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.float.html >new file mode 100644 >index 00000000000..8ce24031b49 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array.float.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/array.float.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/array.float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/array.float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.int-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.int-expected.txt >new file mode 100644 >index 00000000000..89fd29ac42c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.int-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/array.int.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.int.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.int.html >new file mode 100644 >index 00000000000..a89151bb7da >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.int.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array.int.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/array.int.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/array.int.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/array.int.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.uint-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.uint-expected.txt >new file mode 100644 >index 00000000000..e0d74db9ab7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.uint-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/array.uint.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.uint.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.uint.html >new file mode 100644 >index 00000000000..1be5ec86259 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.uint.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array.uint.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/array.uint.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/array.uint.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/array.uint.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.fixed-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.fixed-expected.txt >new file mode 100644 >index 00000000000..7f7855f56e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.fixed-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/basic.fixed.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.fixed.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.fixed.html >new file mode 100644 >index 00000000000..7f255a4b2c3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.fixed.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic.fixed.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/basic.fixed.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/basic.fixed.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/basic.fixed.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.float-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.float-expected.txt >new file mode 100644 >index 00000000000..c7b604acdd6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/basic.float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.float.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.float.html >new file mode 100644 >index 00000000000..6c5e573e10c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic.float.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/basic.float.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/basic.float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/basic.float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.int-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.int-expected.txt >new file mode 100644 >index 00000000000..40977a77f4d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.int-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/basic.int.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.int.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.int.html >new file mode 100644 >index 00000000000..488087cc0ed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.int.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic.int.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/basic.int.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/basic.int.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/basic.int.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.uint-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.uint-expected.txt >new file mode 100644 >index 00000000000..98fcd4081b8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.uint-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/basic.uint.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.uint.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.uint.html >new file mode 100644 >index 00000000000..4163721b78a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.uint.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic.uint.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/basic.uint.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/basic.uint.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/basic.uint.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_00-expected.txt >new file mode 100644 >index 00000000000..e5925c76301 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/random_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_00.html >new file mode 100644 >index 00000000000..897256ce28c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for random_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/random_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/random_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/random_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_01-expected.txt >new file mode 100644 >index 00000000000..606968f85fa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/random_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_01.html >new file mode 100644 >index 00000000000..fed4d856a41 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for random_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/random_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/random_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/random_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_02-expected.txt >new file mode 100644 >index 00000000000..3245abc2e46 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/random_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_02.html >new file mode 100644 >index 00000000000..fbf59743968 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for random_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/random_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/random_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/fragmentoutput/random_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_00-expected.txt >new file mode 100644 >index 00000000000..dbfacd8c779 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_00.html >new file mode 100644 >index 00000000000..450ca94d0c4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_01-expected.txt >new file mode 100644 >index 00000000000..04faf22371d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_01.html >new file mode 100644 >index 00000000000..f209b08b840 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_02-expected.txt >new file mode 100644 >index 00000000000..fe0b23feec4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_02.html >new file mode 100644 >index 00000000000..67cd021dcd2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_03-expected.txt >new file mode 100644 >index 00000000000..0b921575979 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_03.html >new file mode 100644 >index 00000000000..5872bf35246 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_04-expected.txt >new file mode 100644 >index 00000000000..1dc2c88e0a2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_04.html >new file mode 100644 >index 00000000000..d419ab8260e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_05-expected.txt >new file mode 100644 >index 00000000000..a8dc3512f53 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_05.html >new file mode 100644 >index 00000000000..957b2b053b5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_06-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_06-expected.txt >new file mode 100644 >index 00000000000..15e6afd276a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_06-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_06.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_06.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_06.html >new file mode 100644 >index 00000000000..4f65922b9f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_06.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_06.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_06.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_06.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_06.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_07-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_07-expected.txt >new file mode 100644 >index 00000000000..b88c0800cb9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_07-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_07.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_07.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_07.html >new file mode 100644 >index 00000000000..41b5db94b81 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_07.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_07.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_07.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_07.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_07.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_08-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_08-expected.txt >new file mode 100644 >index 00000000000..f07b3a17a6e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_08-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_08.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_08.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_08.html >new file mode 100644 >index 00000000000..dc7e446d43b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_08.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_08.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_08.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_08.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_08.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_09-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_09-expected.txt >new file mode 100644 >index 00000000000..675e12b3d60 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_09-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_09.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_09.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_09.html >new file mode 100644 >index 00000000000..fc881ba3cce >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_09.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_09.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_09.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_09.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_09.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_10-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_10-expected.txt >new file mode 100644 >index 00000000000..52d5210d415 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_10-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_10.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_10.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_10.html >new file mode 100644 >index 00000000000..7f07f399321 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_10.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_10.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_10.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_10.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_10.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_11-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_11-expected.txt >new file mode 100644 >index 00000000000..98d2ba226b3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_11-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_11.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_11.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_11.html >new file mode 100644 >index 00000000000..0cd97b2cb43 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_11.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_11.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_11.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_11.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_11.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_12-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_12-expected.txt >new file mode 100644 >index 00000000000..d4bfa0ed2bf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_12-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_12.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_12.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_12.html >new file mode 100644 >index 00000000000..779a4a90995 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_12.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_12.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_12.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_12.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_12.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_13-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_13-expected.txt >new file mode 100644 >index 00000000000..78796e21dbd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_13-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_13.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_13.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_13.html >new file mode 100644 >index 00000000000..807564182d3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_13.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_13.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_13.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_13.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_13.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_14-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_14-expected.txt >new file mode 100644 >index 00000000000..dcc1440ed65 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_14-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_14.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_14.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_14.html >new file mode 100644 >index 00000000000..6e3614d9690 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_14.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_14.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_14.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_14.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_14.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_15-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_15-expected.txt >new file mode 100644 >index 00000000000..53da49c8c62 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_15-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_15.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_15.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_15.html >new file mode 100644 >index 00000000000..3ec09a1736a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_15.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_15.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_15.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_15.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_15.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_16-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_16-expected.txt >new file mode 100644 >index 00000000000..aee5a4354d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_16-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_16.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_16.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_16.html >new file mode 100644 >index 00000000000..6f910392fb9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_16.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_16.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_16.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_16.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_16.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_17-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_17-expected.txt >new file mode 100644 >index 00000000000..2747b8f48d5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_17-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_17.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_17.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_17.html >new file mode 100644 >index 00000000000..14911f67672 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_17.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_17.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_17.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_17.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_17.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_18-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_18-expected.txt >new file mode 100644 >index 00000000000..b11229ea538 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_18-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_18.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_18.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_18.html >new file mode 100644 >index 00000000000..36945e9dc97 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_18.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_18.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_18.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_18.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_18.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_19-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_19-expected.txt >new file mode 100644 >index 00000000000..65895337e58 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_19-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_19.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_19.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_19.html >new file mode 100644 >index 00000000000..045b975a972 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_19.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_19.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_19.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_19.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_19.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_20-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_20-expected.txt >new file mode 100644 >index 00000000000..c1c8bc68f7d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_20-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_20.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_20.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_20.html >new file mode 100644 >index 00000000000..0ac16fe38f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_20.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_20.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_20.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_20.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_20.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_21-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_21-expected.txt >new file mode 100644 >index 00000000000..9543294c54a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_21-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_21.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_21.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_21.html >new file mode 100644 >index 00000000000..22b1b8019e6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_21.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_21.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_21.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_21.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_21.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_22-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_22-expected.txt >new file mode 100644 >index 00000000000..061a870278c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_22-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_22.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_22.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_22.html >new file mode 100644 >index 00000000000..80d472c2b34 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_22.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_22.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_22.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_22.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_22.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_23-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_23-expected.txt >new file mode 100644 >index 00000000000..ca03587cd7f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_23-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_23.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_23.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_23.html >new file mode 100644 >index 00000000000..4ecb8f522f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_23.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_23.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_23.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_23.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_23.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_24-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_24-expected.txt >new file mode 100644 >index 00000000000..bcc3ac8fb74 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_24-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_24.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_24.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_24.html >new file mode 100644 >index 00000000000..f4443823b44 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_24.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_24.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_24.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_24.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_24.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_25-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_25-expected.txt >new file mode 100644 >index 00000000000..23c42e09474 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_25-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_25.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_25.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_25.html >new file mode 100644 >index 00000000000..60540c3bdfb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_25.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_25.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_25.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_25.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_25.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_26-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_26-expected.txt >new file mode 100644 >index 00000000000..55e04e1e68f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_26-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_26.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_26.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_26.html >new file mode 100644 >index 00000000000..5e6637707b9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_26.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_26.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_26.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_26.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_26.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_27-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_27-expected.txt >new file mode 100644 >index 00000000000..39c912d60b1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_27-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_27.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_27.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_27.html >new file mode 100644 >index 00000000000..a8a2af55073 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_27.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_27.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_27.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_27.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_27.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_28-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_28-expected.txt >new file mode 100644 >index 00000000000..e57df89e21f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_28-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_28.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_28.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_28.html >new file mode 100644 >index 00000000000..af6d277c794 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_28.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_28.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_28.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_28.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_28.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_29-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_29-expected.txt >new file mode 100644 >index 00000000000..9fd666725c0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_29-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_29.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_29.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_29.html >new file mode 100644 >index 00000000000..e4a2603aec4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_29.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_29.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_29.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_29.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_29.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_30-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_30-expected.txt >new file mode 100644 >index 00000000000..fcacfd8d64d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_30-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_30.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_30.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_30.html >new file mode 100644 >index 00000000000..89a7715ab2c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_30.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_30.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_30.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_30.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_30.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_31-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_31-expected.txt >new file mode 100644 >index 00000000000..9c1906637f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_31-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_31.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_31.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_31.html >new file mode 100644 >index 00000000000..ddf14a7136d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_31.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_31.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_31.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_31.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_31.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_32-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_32-expected.txt >new file mode 100644 >index 00000000000..f2b52ea9d32 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_32-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_32.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_32.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_32.html >new file mode 100644 >index 00000000000..ea22b5d3898 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_32.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_32.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_32.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_32.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_32.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_33-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_33-expected.txt >new file mode 100644 >index 00000000000..bc72a4f1012 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_33-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_33.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_33.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_33.html >new file mode 100644 >index 00000000000..1a21968607b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_33.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_33.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_33.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_33.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_33.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_34-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_34-expected.txt >new file mode 100644 >index 00000000000..a2bc95ca653 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_34-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_34.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_34.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_34.html >new file mode 100644 >index 00000000000..eab53c72a21 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/conversion_34.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for conversion_34.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_34.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_34.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/conversion_34.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_00-expected.txt >new file mode 100644 >index 00000000000..3fac0025793 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_00.html >new file mode 100644 >index 00000000000..b5f0fe0a5b1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for default_framebuffer_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_01-expected.txt >new file mode 100644 >index 00000000000..40633c3ae84 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_01.html >new file mode 100644 >index 00000000000..cb787447f95 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for default_framebuffer_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_02-expected.txt >new file mode 100644 >index 00000000000..d37e7b7546f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_02.html >new file mode 100644 >index 00000000000..17381e14ef4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for default_framebuffer_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_03-expected.txt >new file mode 100644 >index 00000000000..cb3a10e3352 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_03.html >new file mode 100644 >index 00000000000..b82f8cd6ac0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for default_framebuffer_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_04-expected.txt >new file mode 100644 >index 00000000000..8d2a76d51be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_04.html >new file mode 100644 >index 00000000000..c2079c15b65 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for default_framebuffer_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_05-expected.txt >new file mode 100644 >index 00000000000..db24c68527f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_05.html >new file mode 100644 >index 00000000000..77f04ae098e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for default_framebuffer_05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_06-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_06-expected.txt >new file mode 100644 >index 00000000000..750442aaa64 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_06-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_06.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_06.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_06.html >new file mode 100644 >index 00000000000..0e4f94da1da >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/default_framebuffer_06.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for default_framebuffer_06.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_06.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_06.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/default_framebuffer_06.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/depth_stencil-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/depth_stencil-expected.txt >new file mode 100644 >index 00000000000..e2e0d815f5c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/depth_stencil-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/depth_stencil.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/depth_stencil.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/depth_stencil.html >new file mode 100644 >index 00000000000..5ed60dbd1f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/depth_stencil.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for depth_stencil.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/depth_stencil.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/depth_stencil.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/depth_stencil.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_00-expected.txt >new file mode 100644 >index 00000000000..68f1e33f1f3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_00.html >new file mode 100644 >index 00000000000..b0c56179ae8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for rect_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_01-expected.txt >new file mode 100644 >index 00000000000..a25cff665d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_01.html >new file mode 100644 >index 00000000000..eb61bbdf792 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for rect_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_02-expected.txt >new file mode 100644 >index 00000000000..8bddd8ecfdd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_02.html >new file mode 100644 >index 00000000000..eacfd964a81 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for rect_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_03-expected.txt >new file mode 100644 >index 00000000000..f3887859fd8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_03.html >new file mode 100644 >index 00000000000..d5f4e011d99 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for rect_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_04-expected.txt >new file mode 100644 >index 00000000000..10b29d65237 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_04.html >new file mode 100644 >index 00000000000..c1e307aab10 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for rect_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_05-expected.txt >new file mode 100644 >index 00000000000..0bfa047bc23 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_05.html >new file mode 100644 >index 00000000000..f17f4d0ed99 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for rect_05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_06-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_06-expected.txt >new file mode 100644 >index 00000000000..b7ef2bebde5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_06-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_06.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_06.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_06.html >new file mode 100644 >index 00000000000..5d960e11a7f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/framebufferblit/rect_06.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for rect_06.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_06.html">../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_06.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/framebufferblit/rect_06.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/indexedstatequery-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/indexedstatequery-expected.txt >new file mode 100644 >index 00000000000..c7d63b5e0fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/indexedstatequery-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/indexedstatequery.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/indexedstatequery.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/indexedstatequery.html >new file mode 100644 >index 00000000000..6a5a54587e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/indexedstatequery.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for indexedstatequery.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/indexedstatequery.html">../../../resources/webgl_test_files/deqp/functional/gles3/indexedstatequery.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/indexedstatequery.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/instancedrendering-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/instancedrendering-expected.txt >new file mode 100644 >index 00000000000..18fc8f8f7bf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/instancedrendering-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/instancedrendering.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/instancedrendering.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/instancedrendering.html >new file mode 100644 >index 00000000000..cc65986cf21 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/instancedrendering.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for instancedrendering.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/instancedrendering.html">../../../resources/webgl_test_files/deqp/functional/gles3/instancedrendering.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/instancedrendering.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/integerstatequery-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/integerstatequery-expected.txt >new file mode 100644 >index 00000000000..111783135b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/integerstatequery-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/integerstatequery.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/integerstatequery.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/integerstatequery.html >new file mode 100644 >index 00000000000..3eee8a6ad2b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/integerstatequery.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for integerstatequery.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/integerstatequery.html">../../../resources/webgl_test_files/deqp/functional/gles3/integerstatequery.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/integerstatequery.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/internalformatquery-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/internalformatquery-expected.txt >new file mode 100644 >index 00000000000..c1a15b724ad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/internalformatquery-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/internalformatquery.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/internalformatquery.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/internalformatquery.html >new file mode 100644 >index 00000000000..42f2887f3e3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/internalformatquery.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for internalformatquery.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/internalformatquery.html">../../../resources/webgl_test_files/deqp/functional/gles3/internalformatquery.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/internalformatquery.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/lifetime-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/lifetime-expected.txt >new file mode 100644 >index 00000000000..9e5b3e2fc65 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/lifetime-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/lifetime.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/lifetime.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/lifetime.html >new file mode 100644 >index 00000000000..63b0b327557 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/lifetime.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for lifetime.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/lifetime.html">../../../resources/webgl_test_files/deqp/functional/gles3/lifetime.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/lifetime.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/multisample-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/multisample-expected.txt >new file mode 100644 >index 00000000000..d42144fd7fa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/multisample-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/multisample.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/multisample.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/multisample.html >new file mode 100644 >index 00000000000..0a3ebdcbc84 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/multisample.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multisample.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/multisample.html">../../../resources/webgl_test_files/deqp/functional/gles3/multisample.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/multisample.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativebufferapi-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativebufferapi-expected.txt >new file mode 100644 >index 00000000000..fe03692e7e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativebufferapi-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/negativebufferapi.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativebufferapi.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativebufferapi.html >new file mode 100644 >index 00000000000..31989d3766f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativebufferapi.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for negativebufferapi.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/negativebufferapi.html">../../../resources/webgl_test_files/deqp/functional/gles3/negativebufferapi.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/negativebufferapi.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativefragmentapi-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativefragmentapi-expected.txt >new file mode 100644 >index 00000000000..ebb5e427787 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativefragmentapi-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/negativefragmentapi.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativefragmentapi.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativefragmentapi.html >new file mode 100644 >index 00000000000..0dfb47e2c70 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativefragmentapi.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for negativefragmentapi.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/negativefragmentapi.html">../../../resources/webgl_test_files/deqp/functional/gles3/negativefragmentapi.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/negativefragmentapi.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativeshaderapi-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativeshaderapi-expected.txt >new file mode 100644 >index 00000000000..b4ffd21bfa9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativeshaderapi-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/negativeshaderapi.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativeshaderapi.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativeshaderapi.html >new file mode 100644 >index 00000000000..faf5247909e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativeshaderapi.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for negativeshaderapi.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/negativeshaderapi.html">../../../resources/webgl_test_files/deqp/functional/gles3/negativeshaderapi.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/negativeshaderapi.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativestateapi-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativestateapi-expected.txt >new file mode 100644 >index 00000000000..46056875350 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativestateapi-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/negativestateapi.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativestateapi.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativestateapi.html >new file mode 100644 >index 00000000000..2c6c7f8e669 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativestateapi.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for negativestateapi.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/negativestateapi.html">../../../resources/webgl_test_files/deqp/functional/gles3/negativestateapi.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/negativestateapi.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativetextureapi-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativetextureapi-expected.txt >new file mode 100644 >index 00000000000..3892dc6f179 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativetextureapi-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/negativetextureapi.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativetextureapi.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativetextureapi.html >new file mode 100644 >index 00000000000..5d61b1d5ab5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativetextureapi.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for negativetextureapi.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/negativetextureapi.html">../../../resources/webgl_test_files/deqp/functional/gles3/negativetextureapi.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/negativetextureapi.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativevertexarrayapi-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativevertexarrayapi-expected.txt >new file mode 100644 >index 00000000000..29aa23cada6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativevertexarrayapi-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/negativevertexarrayapi.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativevertexarrayapi.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativevertexarrayapi.html >new file mode 100644 >index 00000000000..56384f72b24 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativevertexarrayapi.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for negativevertexarrayapi.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/negativevertexarrayapi.html">../../../resources/webgl_test_files/deqp/functional/gles3/negativevertexarrayapi.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/negativevertexarrayapi.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/occlusionquery_conservative-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/occlusionquery_conservative-expected.txt >new file mode 100644 >index 00000000000..ea19ad8a02f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/occlusionquery_conservative-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/occlusionquery_conservative.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/occlusionquery_conservative.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/occlusionquery_conservative.html >new file mode 100644 >index 00000000000..10c3167be99 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/occlusionquery_conservative.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for occlusionquery_conservative.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/occlusionquery_conservative.html">../../../resources/webgl_test_files/deqp/functional/gles3/occlusionquery_conservative.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/occlusionquery_conservative.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/occlusionquery_strict-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/occlusionquery_strict-expected.txt >new file mode 100644 >index 00000000000..7632a755c5a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/occlusionquery_strict-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/occlusionquery_strict.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/occlusionquery_strict.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/occlusionquery_strict.html >new file mode 100644 >index 00000000000..788d267fe40 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/occlusionquery_strict.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for occlusionquery_strict.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/occlusionquery_strict.html">../../../resources/webgl_test_files/deqp/functional/gles3/occlusionquery_strict.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/occlusionquery_strict.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/pixelbufferobject-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/pixelbufferobject-expected.txt >new file mode 100644 >index 00000000000..4bf9c46abe7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/pixelbufferobject-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/pixelbufferobject.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/pixelbufferobject.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/pixelbufferobject.html >new file mode 100644 >index 00000000000..61b63228d76 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/pixelbufferobject.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for pixelbufferobject.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/pixelbufferobject.html">../../../resources/webgl_test_files/deqp/functional/gles3/pixelbufferobject.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/pixelbufferobject.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/00-expected.txt >new file mode 100644 >index 00000000000..0e13535db4e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/00.html >new file mode 100644 >index 00000000000..e86b1686dce >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/01-expected.txt >new file mode 100644 >index 00000000000..f41a6416bba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/01.html >new file mode 100644 >index 00000000000..caf5d3bc703 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/02-expected.txt >new file mode 100644 >index 00000000000..f1c327ef4d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/02.html >new file mode 100644 >index 00000000000..a677369425b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/03-expected.txt >new file mode 100644 >index 00000000000..db51e70dec0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/03.html >new file mode 100644 >index 00000000000..d788ab64f82 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/04-expected.txt >new file mode 100644 >index 00000000000..0357553848d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/04.html >new file mode 100644 >index 00000000000..dae678b384e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/05-expected.txt >new file mode 100644 >index 00000000000..34a4ba55e9a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/05.html >new file mode 100644 >index 00000000000..adff7c01c52 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/06-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/06-expected.txt >new file mode 100644 >index 00000000000..bc920de1a43 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/06-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/06.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/06.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/06.html >new file mode 100644 >index 00000000000..b43c37b2925 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/06.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 06.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/06.html">../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/06.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/06.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/07-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/07-expected.txt >new file mode 100644 >index 00000000000..4ed843c41d5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/07-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/07.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/07.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/07.html >new file mode 100644 >index 00000000000..74a3c340299 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/primitiverestart/07.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 07.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/07.html">../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/07.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/primitiverestart/07.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/rasterizerdiscard-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/rasterizerdiscard-expected.txt >new file mode 100644 >index 00000000000..9683eb03dec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/rasterizerdiscard-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/rasterizerdiscard.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/rasterizerdiscard.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/rasterizerdiscard.html >new file mode 100644 >index 00000000000..476ae4a7a76 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/rasterizerdiscard.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for rasterizerdiscard.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/rasterizerdiscard.html">../../../resources/webgl_test_files/deqp/functional/gles3/rasterizerdiscard.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/rasterizerdiscard.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/rbostatequery-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/rbostatequery-expected.txt >new file mode 100644 >index 00000000000..dad42396565 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/rbostatequery-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/rbostatequery.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/rbostatequery.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/rbostatequery.html >new file mode 100644 >index 00000000000..e89221fbc9e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/rbostatequery.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for rbostatequery.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/rbostatequery.html">../../../resources/webgl_test_files/deqp/functional/gles3/rbostatequery.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/rbostatequery.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/readpixel-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/readpixel-expected.txt >new file mode 100644 >index 00000000000..0e97a8df005 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/readpixel-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/readpixel.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/readpixel.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/readpixel.html >new file mode 100644 >index 00000000000..4f239c3d347 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/readpixel.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for readpixel.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/readpixel.html">../../../resources/webgl_test_files/deqp/functional/gles3/readpixel.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/readpixel.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/samplerobject-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/samplerobject-expected.txt >new file mode 100644 >index 00000000000..404d496920c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/samplerobject-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/samplerobject.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/samplerobject.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/samplerobject.html >new file mode 100644 >index 00000000000..7629cd07a12 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/samplerobject.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for samplerobject.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/samplerobject.html">../../../resources/webgl_test_files/deqp/functional/gles3/samplerobject.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/samplerobject.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/samplerstatequery-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/samplerstatequery-expected.txt >new file mode 100644 >index 00000000000..bd691438959 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/samplerstatequery-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/samplerstatequery.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/samplerstatequery.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/samplerstatequery.html >new file mode 100644 >index 00000000000..34691d311da >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/samplerstatequery.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for samplerstatequery.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/samplerstatequery.html">../../../resources/webgl_test_files/deqp/functional/gles3/samplerstatequery.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/samplerstatequery.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderapi-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderapi-expected.txt >new file mode 100644 >index 00000000000..f758a9ce181 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderapi-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/shaderapi.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderapi.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderapi.html >new file mode 100644 >index 00000000000..a04a0b0833c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderapi.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaderapi.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/shaderapi.html">../../../resources/webgl_test_files/deqp/functional/gles3/shaderapi.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/shaderapi.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderbuiltinvar-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderbuiltinvar-expected.txt >new file mode 100644 >index 00000000000..0a4cf563a62 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderbuiltinvar-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/shaderbuiltinvar.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderbuiltinvar.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderbuiltinvar.html >new file mode 100644 >index 00000000000..d957db89f4a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderbuiltinvar.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaderbuiltinvar.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/shaderbuiltinvar.html">../../../resources/webgl_test_files/deqp/functional/gles3/shaderbuiltinvar.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/shaderbuiltinvar.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadercommonfunction-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadercommonfunction-expected.txt >new file mode 100644 >index 00000000000..9ef97a4dfc6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadercommonfunction-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/shadercommonfunction.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadercommonfunction.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadercommonfunction.html >new file mode 100644 >index 00000000000..ace1b25a99c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadercommonfunction.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shadercommonfunction.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/shadercommonfunction.html">../../../resources/webgl_test_files/deqp/functional/gles3/shadercommonfunction.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/shadercommonfunction.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderderivate_dfdx-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderderivate_dfdx-expected.txt >new file mode 100644 >index 00000000000..575fb4d4b1b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderderivate_dfdx-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/shaderderivate_dfdx.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderderivate_dfdx.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderderivate_dfdx.html >new file mode 100644 >index 00000000000..c03384c6d15 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderderivate_dfdx.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaderderivate_dfdx.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/shaderderivate_dfdx.html">../../../resources/webgl_test_files/deqp/functional/gles3/shaderderivate_dfdx.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/shaderderivate_dfdx.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderderivate_dfdy-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderderivate_dfdy-expected.txt >new file mode 100644 >index 00000000000..3be35f59e94 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderderivate_dfdy-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/shaderderivate_dfdy.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderderivate_dfdy.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderderivate_dfdy.html >new file mode 100644 >index 00000000000..7cc1015fcf8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderderivate_dfdy.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaderderivate_dfdy.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/shaderderivate_dfdy.html">../../../resources/webgl_test_files/deqp/functional/gles3/shaderderivate_dfdy.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/shaderderivate_dfdy.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderderivate_fwidth-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderderivate_fwidth-expected.txt >new file mode 100644 >index 00000000000..5ca9e4e4b00 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderderivate_fwidth-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/shaderderivate_fwidth.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderderivate_fwidth.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderderivate_fwidth.html >new file mode 100644 >index 00000000000..69f5149e660 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderderivate_fwidth.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaderderivate_fwidth.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/shaderderivate_fwidth.html">../../../resources/webgl_test_files/deqp/functional/gles3/shaderderivate_fwidth.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/shaderderivate_fwidth.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/mat_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/mat_00-expected.txt >new file mode 100644 >index 00000000000..255edca37c4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/mat_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/mat_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/mat_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/mat_00.html >new file mode 100644 >index 00000000000..ce53f528205 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/mat_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mat_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/mat_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/mat_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/mat_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/mat_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/mat_01-expected.txt >new file mode 100644 >index 00000000000..efcccda084f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/mat_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/mat_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/mat_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/mat_01.html >new file mode 100644 >index 00000000000..007de1b3fe2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/mat_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mat_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/mat_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/mat_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/mat_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/mat_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/mat_02-expected.txt >new file mode 100644 >index 00000000000..f0bab9f748b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/mat_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/mat_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/mat_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/mat_02.html >new file mode 100644 >index 00000000000..59e9dc5723a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/mat_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mat_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/mat_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/mat_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/mat_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/tmp-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/tmp-expected.txt >new file mode 100644 >index 00000000000..7cafcbf52f3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/tmp-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/tmp.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/tmp.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/tmp.html >new file mode 100644 >index 00000000000..6f94aba1157 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/tmp.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for tmp.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/tmp.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/tmp.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/tmp.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/uniform-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/uniform-expected.txt >new file mode 100644 >index 00000000000..f20ad168c4e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/uniform-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/uniform.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/uniform.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/uniform.html >new file mode 100644 >index 00000000000..a85df2bb58d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/uniform.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for uniform.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/uniform.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/uniform.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/uniform.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/varying-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/varying-expected.txt >new file mode 100644 >index 00000000000..86bc1f0352c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/varying-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/varying.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/varying.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/varying.html >new file mode 100644 >index 00000000000..76a962abf7c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/varying.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for varying.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/varying.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/varying.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/varying.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/vec2-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/vec2-expected.txt >new file mode 100644 >index 00000000000..d51b933d6ad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/vec2-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/vec2.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/vec2.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/vec2.html >new file mode 100644 >index 00000000000..18bffb68170 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/vec2.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for vec2.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/vec2.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/vec2.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/vec2.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/vec3-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/vec3-expected.txt >new file mode 100644 >index 00000000000..94781f2f733 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/vec3-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/vec3.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/vec3.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/vec3.html >new file mode 100644 >index 00000000000..30093e3fab5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/vec3.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for vec3.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/vec3.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/vec3.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/vec3.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/vec4-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/vec4-expected.txt >new file mode 100644 >index 00000000000..6c906318c35 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/vec4-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/vec4.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/vec4.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/vec4.html >new file mode 100644 >index 00000000000..50841abaf20 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderindexing/vec4.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for vec4.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/vec4.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/vec4.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderindexing/vec4.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderloop_do_while-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderloop_do_while-expected.txt >new file mode 100644 >index 00000000000..146b7b89803 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderloop_do_while-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/shaderloop_do_while.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderloop_do_while.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderloop_do_while.html >new file mode 100644 >index 00000000000..0bf7b067005 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderloop_do_while.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaderloop_do_while.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/shaderloop_do_while.html">../../../resources/webgl_test_files/deqp/functional/gles3/shaderloop_do_while.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/shaderloop_do_while.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderloop_for-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderloop_for-expected.txt >new file mode 100644 >index 00000000000..802fca8810c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderloop_for-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/shaderloop_for.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderloop_for.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderloop_for.html >new file mode 100644 >index 00000000000..883590dfc98 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderloop_for.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaderloop_for.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/shaderloop_for.html">../../../resources/webgl_test_files/deqp/functional/gles3/shaderloop_for.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/shaderloop_for.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderloop_while-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderloop_while-expected.txt >new file mode 100644 >index 00000000000..e8c3ec5c3a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderloop_while-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/shaderloop_while.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderloop_while.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderloop_while.html >new file mode 100644 >index 00000000000..1e7f3617d00 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderloop_while.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaderloop_while.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/shaderloop_while.html">../../../resources/webgl_test_files/deqp/functional/gles3/shaderloop_while.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/shaderloop_while.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_assign-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_assign-expected.txt >new file mode 100644 >index 00000000000..3b4e6de544c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_assign-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/add_assign.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_assign.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_assign.html >new file mode 100644 >index 00000000000..a225c7ab41b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_assign.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for add_assign.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/add_assign.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/add_assign.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/add_assign.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_const-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_const-expected.txt >new file mode 100644 >index 00000000000..34ff6535349 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_const-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/add_const.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_const.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_const.html >new file mode 100644 >index 00000000000..955c1cf96f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_const.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for add_const.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/add_const.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/add_const.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/add_const.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_dynamic-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_dynamic-expected.txt >new file mode 100644 >index 00000000000..c9cd9315347 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_dynamic-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/add_dynamic.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_dynamic.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_dynamic.html >new file mode 100644 >index 00000000000..d16e94dd00e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_dynamic.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for add_dynamic.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/add_dynamic.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/add_dynamic.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/add_dynamic.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_uniform-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_uniform-expected.txt >new file mode 100644 >index 00000000000..5a356bf8bc2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_uniform-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/add_uniform.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_uniform.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_uniform.html >new file mode 100644 >index 00000000000..422e423b1d5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/add_uniform.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for add_uniform.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/add_uniform.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/add_uniform.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/add_uniform.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/determinant-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/determinant-expected.txt >new file mode 100644 >index 00000000000..f22b6a8cbe1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/determinant-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/determinant.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/determinant.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/determinant.html >new file mode 100644 >index 00000000000..872b05f8f96 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/determinant.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for determinant.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/determinant.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/determinant.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/determinant.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_assign-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_assign-expected.txt >new file mode 100644 >index 00000000000..841298c0509 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_assign-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/div_assign.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_assign.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_assign.html >new file mode 100644 >index 00000000000..db6f920ebd1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_assign.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for div_assign.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/div_assign.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/div_assign.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/div_assign.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_const-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_const-expected.txt >new file mode 100644 >index 00000000000..fb90227fd90 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_const-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/div_const.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_const.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_const.html >new file mode 100644 >index 00000000000..9a558387348 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_const.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for div_const.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/div_const.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/div_const.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/div_const.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_dynamic-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_dynamic-expected.txt >new file mode 100644 >index 00000000000..78206802d77 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_dynamic-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/div_dynamic.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_dynamic.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_dynamic.html >new file mode 100644 >index 00000000000..108479bc811 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_dynamic.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for div_dynamic.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/div_dynamic.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/div_dynamic.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/div_dynamic.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_uniform-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_uniform-expected.txt >new file mode 100644 >index 00000000000..2ae7968c47f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_uniform-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/div_uniform.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_uniform.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_uniform.html >new file mode 100644 >index 00000000000..7fd36ca0ef3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/div_uniform.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for div_uniform.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/div_uniform.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/div_uniform.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/div_uniform.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/inverse-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/inverse-expected.txt >new file mode 100644 >index 00000000000..e3aa4cd9a22 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/inverse-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/inverse.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/inverse.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/inverse.html >new file mode 100644 >index 00000000000..2b3212bd607 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/inverse.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for inverse.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/inverse.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/inverse.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/inverse.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/matrixcompmult-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/matrixcompmult-expected.txt >new file mode 100644 >index 00000000000..57730937c5e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/matrixcompmult-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/matrixcompmult.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/matrixcompmult.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/matrixcompmult.html >new file mode 100644 >index 00000000000..a451ca09274 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/matrixcompmult.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for matrixcompmult.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/matrixcompmult.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/matrixcompmult.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/matrixcompmult.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_assign-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_assign-expected.txt >new file mode 100644 >index 00000000000..909950ead81 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_assign-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_assign.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_assign.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_assign.html >new file mode 100644 >index 00000000000..52fc9368ec5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_assign.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mul_assign.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_assign.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_assign.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_assign.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_const_highp-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_const_highp-expected.txt >new file mode 100644 >index 00000000000..da134e81be5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_const_highp-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_const_highp.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_const_highp.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_const_highp.html >new file mode 100644 >index 00000000000..9d1370d552b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_const_highp.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mul_const_highp.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_const_highp.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_const_highp.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_const_highp.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_const_lowp-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_const_lowp-expected.txt >new file mode 100644 >index 00000000000..657803c9e93 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_const_lowp-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_const_lowp.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_const_lowp.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_const_lowp.html >new file mode 100644 >index 00000000000..9b0c6e3bf51 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_const_lowp.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mul_const_lowp.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_const_lowp.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_const_lowp.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_const_lowp.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_const_mediump-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_const_mediump-expected.txt >new file mode 100644 >index 00000000000..8a0f31dead0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_const_mediump-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_const_mediump.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_const_mediump.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_const_mediump.html >new file mode 100644 >index 00000000000..bc620f63340 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_const_mediump.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mul_const_mediump.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_const_mediump.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_const_mediump.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_const_mediump.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_dynamic_highp-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_dynamic_highp-expected.txt >new file mode 100644 >index 00000000000..285489f59ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_dynamic_highp-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_dynamic_highp.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_dynamic_highp.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_dynamic_highp.html >new file mode 100644 >index 00000000000..06897840155 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_dynamic_highp.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mul_dynamic_highp.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_dynamic_highp.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_dynamic_highp.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_dynamic_highp.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_dynamic_lowp-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_dynamic_lowp-expected.txt >new file mode 100644 >index 00000000000..087961efefa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_dynamic_lowp-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_dynamic_lowp.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_dynamic_lowp.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_dynamic_lowp.html >new file mode 100644 >index 00000000000..1e35864f8d8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_dynamic_lowp.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mul_dynamic_lowp.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_dynamic_lowp.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_dynamic_lowp.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_dynamic_lowp.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_dynamic_mediump-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_dynamic_mediump-expected.txt >new file mode 100644 >index 00000000000..42c8a8ff292 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_dynamic_mediump-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_dynamic_mediump.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_dynamic_mediump.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_dynamic_mediump.html >new file mode 100644 >index 00000000000..5525b564547 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_dynamic_mediump.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mul_dynamic_mediump.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_dynamic_mediump.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_dynamic_mediump.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_dynamic_mediump.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_uniform_highp-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_uniform_highp-expected.txt >new file mode 100644 >index 00000000000..e3507e53163 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_uniform_highp-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_uniform_highp.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_uniform_highp.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_uniform_highp.html >new file mode 100644 >index 00000000000..6e90a10df86 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_uniform_highp.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mul_uniform_highp.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_uniform_highp.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_uniform_highp.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_uniform_highp.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_uniform_lowp-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_uniform_lowp-expected.txt >new file mode 100644 >index 00000000000..d4d54687f17 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_uniform_lowp-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_uniform_lowp.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_uniform_lowp.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_uniform_lowp.html >new file mode 100644 >index 00000000000..da950bee450 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_uniform_lowp.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mul_uniform_lowp.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_uniform_lowp.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_uniform_lowp.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_uniform_lowp.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_uniform_mediump-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_uniform_mediump-expected.txt >new file mode 100644 >index 00000000000..894d900182e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_uniform_mediump-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_uniform_mediump.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_uniform_mediump.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_uniform_mediump.html >new file mode 100644 >index 00000000000..9e3bbd12914 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/mul_uniform_mediump.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for mul_uniform_mediump.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_uniform_mediump.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_uniform_mediump.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/mul_uniform_mediump.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/negation-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/negation-expected.txt >new file mode 100644 >index 00000000000..a76774464a0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/negation-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/negation.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/negation.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/negation.html >new file mode 100644 >index 00000000000..9c8b2e0566b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/negation.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for negation.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/negation.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/negation.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/negation.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/outerproduct-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/outerproduct-expected.txt >new file mode 100644 >index 00000000000..97246049fc2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/outerproduct-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/outerproduct.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/outerproduct.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/outerproduct.html >new file mode 100644 >index 00000000000..08e0d771ab0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/outerproduct.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for outerproduct.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/outerproduct.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/outerproduct.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/outerproduct.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/post_decrement-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/post_decrement-expected.txt >new file mode 100644 >index 00000000000..4439646ebaf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/post_decrement-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/post_decrement.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/post_decrement.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/post_decrement.html >new file mode 100644 >index 00000000000..812f1e16de6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/post_decrement.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for post_decrement.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/post_decrement.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/post_decrement.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/post_decrement.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/post_increment-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/post_increment-expected.txt >new file mode 100644 >index 00000000000..5241c10d248 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/post_increment-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/post_increment.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/post_increment.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/post_increment.html >new file mode 100644 >index 00000000000..02eb0602102 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/post_increment.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for post_increment.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/post_increment.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/post_increment.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/post_increment.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/pre_decrement-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/pre_decrement-expected.txt >new file mode 100644 >index 00000000000..bbd0be69ce0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/pre_decrement-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/pre_decrement.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/pre_decrement.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/pre_decrement.html >new file mode 100644 >index 00000000000..3cc377cfda7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/pre_decrement.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for pre_decrement.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/pre_decrement.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/pre_decrement.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/pre_decrement.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/pre_increment-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/pre_increment-expected.txt >new file mode 100644 >index 00000000000..4753a28fe27 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/pre_increment-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/pre_increment.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/pre_increment.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/pre_increment.html >new file mode 100644 >index 00000000000..7b3e578bb4b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/pre_increment.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for pre_increment.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/pre_increment.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/pre_increment.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/pre_increment.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_assign-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_assign-expected.txt >new file mode 100644 >index 00000000000..72b9172463a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_assign-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/sub_assign.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_assign.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_assign.html >new file mode 100644 >index 00000000000..20839e20eab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_assign.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sub_assign.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/sub_assign.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/sub_assign.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/sub_assign.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_const-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_const-expected.txt >new file mode 100644 >index 00000000000..5bf10a51fc2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_const-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/sub_const.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_const.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_const.html >new file mode 100644 >index 00000000000..cfcf938a811 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_const.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sub_const.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/sub_const.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/sub_const.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/sub_const.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_dynamic-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_dynamic-expected.txt >new file mode 100644 >index 00000000000..1229e62fef6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_dynamic-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/sub_dynamic.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_dynamic.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_dynamic.html >new file mode 100644 >index 00000000000..e2d2ba5be1f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_dynamic.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sub_dynamic.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/sub_dynamic.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/sub_dynamic.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/sub_dynamic.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_uniform-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_uniform-expected.txt >new file mode 100644 >index 00000000000..a64dfe44a5a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_uniform-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/sub_uniform.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_uniform.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_uniform.html >new file mode 100644 >index 00000000000..48bd78c1c7c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/sub_uniform.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sub_uniform.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/sub_uniform.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/sub_uniform.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/sub_uniform.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/transpose-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/transpose-expected.txt >new file mode 100644 >index 00000000000..1d4af90b98b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/transpose-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/transpose.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/transpose.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/transpose.html >new file mode 100644 >index 00000000000..9196598da64 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/transpose.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for transpose.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/transpose.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/transpose.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/transpose.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/unary_addition-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/unary_addition-expected.txt >new file mode 100644 >index 00000000000..9f876db1a61 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/unary_addition-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/unary_addition.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/unary_addition.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/unary_addition.html >new file mode 100644 >index 00000000000..4fadda310fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadermatrix/unary_addition.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for unary_addition.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/unary_addition.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/unary_addition.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadermatrix/unary_addition.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_00-expected.txt >new file mode 100644 >index 00000000000..accefc57552 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_00.html >new file mode 100644 >index 00000000000..a0e82851c08 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for angle_and_trigonometry_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_01-expected.txt >new file mode 100644 >index 00000000000..295d2027e91 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_01.html >new file mode 100644 >index 00000000000..ba72f303071 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for angle_and_trigonometry_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_02-expected.txt >new file mode 100644 >index 00000000000..e9e5c5bbb15 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_02.html >new file mode 100644 >index 00000000000..9e3b8bbed30 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for angle_and_trigonometry_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_03-expected.txt >new file mode 100644 >index 00000000000..6a21308b241 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_03.html >new file mode 100644 >index 00000000000..07bb43000b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for angle_and_trigonometry_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/angle_and_trigonometry_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_00-expected.txt >new file mode 100644 >index 00000000000..af501f17e78 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_00.html >new file mode 100644 >index 00000000000..97da8a96478 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for binary_operator_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_01-expected.txt >new file mode 100644 >index 00000000000..8cb15b02f10 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_01.html >new file mode 100644 >index 00000000000..0972fa324ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for binary_operator_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_02-expected.txt >new file mode 100644 >index 00000000000..34d4856f3f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_02.html >new file mode 100644 >index 00000000000..1420386a375 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for binary_operator_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_03-expected.txt >new file mode 100644 >index 00000000000..d5cd92b757b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_03.html >new file mode 100644 >index 00000000000..464e41b358a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for binary_operator_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_04-expected.txt >new file mode 100644 >index 00000000000..4f5f91828ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_04.html >new file mode 100644 >index 00000000000..d91f97d4c4c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for binary_operator_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_05-expected.txt >new file mode 100644 >index 00000000000..67d4d6256f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_05.html >new file mode 100644 >index 00000000000..a4196f0b5ad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for binary_operator_05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_06-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_06-expected.txt >new file mode 100644 >index 00000000000..9a25d6322e7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_06-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_06.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_06.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_06.html >new file mode 100644 >index 00000000000..f37c50f6306 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_06.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for binary_operator_06.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_06.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_06.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_06.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_07-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_07-expected.txt >new file mode 100644 >index 00000000000..5a5a4f8f418 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_07-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_07.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_07.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_07.html >new file mode 100644 >index 00000000000..3b3f72318a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_07.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for binary_operator_07.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_07.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_07.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_07.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_08-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_08-expected.txt >new file mode 100644 >index 00000000000..7ae7c24cc8b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_08-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_08.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_08.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_08.html >new file mode 100644 >index 00000000000..51ead09b8a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_08.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for binary_operator_08.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_08.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_08.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_08.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_09-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_09-expected.txt >new file mode 100644 >index 00000000000..dad30c7c91d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_09-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_09.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_09.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_09.html >new file mode 100644 >index 00000000000..ef6b6b7d94b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_09.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for binary_operator_09.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_09.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_09.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_09.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_10-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_10-expected.txt >new file mode 100644 >index 00000000000..7f0d747a25b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_10-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_10.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_10.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_10.html >new file mode 100644 >index 00000000000..0031ea55b82 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_10.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for binary_operator_10.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_10.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_10.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_10.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_11-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_11-expected.txt >new file mode 100644 >index 00000000000..78792b56de9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_11-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_11.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_11.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_11.html >new file mode 100644 >index 00000000000..3fc16e3456a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_11.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for binary_operator_11.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_11.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_11.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_11.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_12-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_12-expected.txt >new file mode 100644 >index 00000000000..411b4fef3af >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_12-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_12.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_12.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_12.html >new file mode 100644 >index 00000000000..ab760262d68 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_12.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for binary_operator_12.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_12.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_12.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_12.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_13-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_13-expected.txt >new file mode 100644 >index 00000000000..d85ec1276aa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_13-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_13.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_13.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_13.html >new file mode 100644 >index 00000000000..3dea310519f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_13.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for binary_operator_13.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_13.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_13.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_13.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_14-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_14-expected.txt >new file mode 100644 >index 00000000000..d83befc3e0f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_14-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_14.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_14.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_14.html >new file mode 100644 >index 00000000000..3601006b9a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_14.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for binary_operator_14.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_14.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_14.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_14.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_15-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_15-expected.txt >new file mode 100644 >index 00000000000..e1d603d0db8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_15-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_15.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_15.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_15.html >new file mode 100644 >index 00000000000..cb203ae7fad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/binary_operator_15.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for binary_operator_15.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_15.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_15.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/binary_operator_15.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/bool_compare-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/bool_compare-expected.txt >new file mode 100644 >index 00000000000..46813428ee5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/bool_compare-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/bool_compare.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/bool_compare.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/bool_compare.html >new file mode 100644 >index 00000000000..00e04590ca6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/bool_compare.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for bool_compare.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/bool_compare.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/bool_compare.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/bool_compare.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/common_functions-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/common_functions-expected.txt >new file mode 100644 >index 00000000000..ad33b1dfc59 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/common_functions-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/common_functions.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/common_functions.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/common_functions.html >new file mode 100644 >index 00000000000..e28787cbbf6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/common_functions.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for common_functions.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/common_functions.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/common_functions.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/common_functions.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/exponential-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/exponential-expected.txt >new file mode 100644 >index 00000000000..3e79caacf78 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/exponential-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/exponential.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/exponential.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/exponential.html >new file mode 100644 >index 00000000000..2876bddcaf0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/exponential.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for exponential.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/exponential.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/exponential.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/exponential.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/float_compare-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/float_compare-expected.txt >new file mode 100644 >index 00000000000..021e55f1123 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/float_compare-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/float_compare.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/float_compare.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/float_compare.html >new file mode 100644 >index 00000000000..53f147aa4d1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/float_compare.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for float_compare.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/float_compare.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/float_compare.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/float_compare.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/geometric-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/geometric-expected.txt >new file mode 100644 >index 00000000000..8b94a2238d3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/geometric-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/geometric.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/geometric.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/geometric.html >new file mode 100644 >index 00000000000..aa6ea8dfc1b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/geometric.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for geometric.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/geometric.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/geometric.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/geometric.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/int_compare-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/int_compare-expected.txt >new file mode 100644 >index 00000000000..df899563cf9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/int_compare-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/int_compare.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/int_compare.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/int_compare.html >new file mode 100644 >index 00000000000..b00b86339ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/int_compare.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for int_compare.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/int_compare.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/int_compare.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/int_compare.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/selection-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/selection-expected.txt >new file mode 100644 >index 00000000000..208851cef1c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/selection-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/selection.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/selection.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/selection.html >new file mode 100644 >index 00000000000..b86f57ee601 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/selection.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for selection.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/selection.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/selection.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/selection.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/sequence-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/sequence-expected.txt >new file mode 100644 >index 00000000000..a93982c35d8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/sequence-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/sequence.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/sequence.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/sequence.html >new file mode 100644 >index 00000000000..d76d35b84d1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/sequence.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sequence.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/sequence.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/sequence.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/sequence.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/unary_operator_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/unary_operator_00-expected.txt >new file mode 100644 >index 00000000000..bf678e17908 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/unary_operator_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/unary_operator_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/unary_operator_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/unary_operator_00.html >new file mode 100644 >index 00000000000..f4f48b5a69b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/unary_operator_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for unary_operator_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/unary_operator_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/unary_operator_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/unary_operator_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/unary_operator_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/unary_operator_01-expected.txt >new file mode 100644 >index 00000000000..d17a8f40c23 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/unary_operator_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/unary_operator_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/unary_operator_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/unary_operator_01.html >new file mode 100644 >index 00000000000..a3a9c168acd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/unary_operator_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for unary_operator_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/unary_operator_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/unary_operator_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/unary_operator_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/unary_operator_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/unary_operator_02-expected.txt >new file mode 100644 >index 00000000000..5bcdf18c7fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/unary_operator_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/unary_operator_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/unary_operator_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/unary_operator_02.html >new file mode 100644 >index 00000000000..3698e09bc74 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderoperator/unary_operator_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for unary_operator_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/unary_operator_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/unary_operator_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shaderoperator/unary_operator_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderpackingfunction-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderpackingfunction-expected.txt >new file mode 100644 >index 00000000000..36c8194f2df >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderpackingfunction-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/shaderpackingfunction.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderpackingfunction.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderpackingfunction.html >new file mode 100644 >index 00000000000..b712e6ca14e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderpackingfunction.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaderpackingfunction.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/shaderpackingfunction.html">../../../resources/webgl_test_files/deqp/functional/gles3/shaderpackingfunction.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/shaderpackingfunction.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderprecision_float-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderprecision_float-expected.txt >new file mode 100644 >index 00000000000..061c080da0d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderprecision_float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/shaderprecision_float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderprecision_float.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderprecision_float.html >new file mode 100644 >index 00000000000..a75559d8a3a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderprecision_float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaderprecision_float.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/shaderprecision_float.html">../../../resources/webgl_test_files/deqp/functional/gles3/shaderprecision_float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/shaderprecision_float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderprecision_int-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderprecision_int-expected.txt >new file mode 100644 >index 00000000000..3dc19173592 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderprecision_int-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/shaderprecision_int.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderprecision_int.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderprecision_int.html >new file mode 100644 >index 00000000000..59f1beb8fbb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderprecision_int.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaderprecision_int.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/shaderprecision_int.html">../../../resources/webgl_test_files/deqp/functional/gles3/shaderprecision_int.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/shaderprecision_int.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderprecision_uint-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderprecision_uint-expected.txt >new file mode 100644 >index 00000000000..636ddac2641 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderprecision_uint-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/shaderprecision_uint.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderprecision_uint.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderprecision_uint.html >new file mode 100644 >index 00000000000..f185b0f863e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderprecision_uint.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaderprecision_uint.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/shaderprecision_uint.html">../../../resources/webgl_test_files/deqp/functional/gles3/shaderprecision_uint.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/shaderprecision_uint.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderstatequery-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderstatequery-expected.txt >new file mode 100644 >index 00000000000..94493d046f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderstatequery-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/shaderstatequery.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderstatequery.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderstatequery.html >new file mode 100644 >index 00000000000..c99268b10e4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderstatequery.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaderstatequery.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/shaderstatequery.html">../../../resources/webgl_test_files/deqp/functional/gles3/shaderstatequery.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/shaderstatequery.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderstruct-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderstruct-expected.txt >new file mode 100644 >index 00000000000..0ac883aae18 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderstruct-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/shaderstruct.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderstruct.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderstruct.html >new file mode 100644 >index 00000000000..b0567190f91 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderstruct.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaderstruct.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/shaderstruct.html">../../../resources/webgl_test_files/deqp/functional/gles3/shaderstruct.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/shaderstruct.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderswitch-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderswitch-expected.txt >new file mode 100644 >index 00000000000..642ad9d0bd2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderswitch-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/shaderswitch.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderswitch.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderswitch.html >new file mode 100644 >index 00000000000..bd111a4789f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shaderswitch.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for shaderswitch.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/shaderswitch.html">../../../resources/webgl_test_files/deqp/functional/gles3/shaderswitch.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/shaderswitch.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texelfetch-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texelfetch-expected.txt >new file mode 100644 >index 00000000000..387c9bff71a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texelfetch-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texelfetch.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texelfetch.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texelfetch.html >new file mode 100644 >index 00000000000..298e5338acd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texelfetch.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texelfetch.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texelfetch.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texelfetch.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texelfetch.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texelfetchoffset-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texelfetchoffset-expected.txt >new file mode 100644 >index 00000000000..2256e92f92e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texelfetchoffset-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texelfetchoffset.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texelfetchoffset.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texelfetchoffset.html >new file mode 100644 >index 00000000000..1383440ef1c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texelfetchoffset.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texelfetchoffset.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texelfetchoffset.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texelfetchoffset.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texelfetchoffset.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texture-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texture-expected.txt >new file mode 100644 >index 00000000000..4b73d8f56e6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texture-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texture.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texture.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texture.html >new file mode 100644 >index 00000000000..d893154514d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texture.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texture.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texture.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texture.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texture.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturegrad-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturegrad-expected.txt >new file mode 100644 >index 00000000000..1c3e4901631 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturegrad-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturegrad.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturegrad.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturegrad.html >new file mode 100644 >index 00000000000..659a79d2c2a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturegrad.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texturegrad.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturegrad.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturegrad.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturegrad.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturegradoffset-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturegradoffset-expected.txt >new file mode 100644 >index 00000000000..7eaf248fae0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturegradoffset-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturegradoffset.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturegradoffset.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturegradoffset.html >new file mode 100644 >index 00000000000..d57e11f1c75 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturegradoffset.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texturegradoffset.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturegradoffset.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturegradoffset.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturegradoffset.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturelod-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturelod-expected.txt >new file mode 100644 >index 00000000000..99b2953f7ba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturelod-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturelod.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturelod.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturelod.html >new file mode 100644 >index 00000000000..db1209a3ec4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturelod.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texturelod.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturelod.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturelod.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturelod.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturelodoffset-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturelodoffset-expected.txt >new file mode 100644 >index 00000000000..8dd8d73f099 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturelodoffset-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturelodoffset.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturelodoffset.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturelodoffset.html >new file mode 100644 >index 00000000000..c16c03e8216 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturelodoffset.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texturelodoffset.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturelodoffset.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturelodoffset.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturelodoffset.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureoffset-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureoffset-expected.txt >new file mode 100644 >index 00000000000..c34e0cf07dd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureoffset-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureoffset.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureoffset.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureoffset.html >new file mode 100644 >index 00000000000..a9cca48cb44 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureoffset.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for textureoffset.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureoffset.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureoffset.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureoffset.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureproj-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureproj-expected.txt >new file mode 100644 >index 00000000000..6678d436eb4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureproj-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureproj.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureproj.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureproj.html >new file mode 100644 >index 00000000000..6882f5d8483 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureproj.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for textureproj.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureproj.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureproj.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureproj.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojgrad-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojgrad-expected.txt >new file mode 100644 >index 00000000000..f5d3635ef14 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojgrad-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojgrad.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojgrad.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojgrad.html >new file mode 100644 >index 00000000000..cab6202e238 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojgrad.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for textureprojgrad.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojgrad.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojgrad.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojgrad.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojgradoffset-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojgradoffset-expected.txt >new file mode 100644 >index 00000000000..369f08409fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojgradoffset-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojgradoffset.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojgradoffset.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojgradoffset.html >new file mode 100644 >index 00000000000..8dbaa52d41b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojgradoffset.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for textureprojgradoffset.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojgradoffset.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojgradoffset.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojgradoffset.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojlod-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojlod-expected.txt >new file mode 100644 >index 00000000000..c465a3ef79b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojlod-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojlod.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojlod.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojlod.html >new file mode 100644 >index 00000000000..ce1df786872 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojlod.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for textureprojlod.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojlod.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojlod.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojlod.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojlodoffset-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojlodoffset-expected.txt >new file mode 100644 >index 00000000000..d5a3a8db45e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojlodoffset-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojlodoffset.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojlodoffset.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojlodoffset.html >new file mode 100644 >index 00000000000..63964e83bb6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojlodoffset.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for textureprojlodoffset.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojlodoffset.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojlodoffset.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojlodoffset.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojoffset-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojoffset-expected.txt >new file mode 100644 >index 00000000000..01bcc8ca7b5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojoffset-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojoffset.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojoffset.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojoffset.html >new file mode 100644 >index 00000000000..22d1178a278 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojoffset.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for textureprojoffset.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojoffset.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojoffset.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/textureprojoffset.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturesize-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturesize-expected.txt >new file mode 100644 >index 00000000000..760fb08c0aa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturesize-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturesize.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturesize.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturesize.html >new file mode 100644 >index 00000000000..d35fb35a323 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texturesize.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texturesize.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturesize.html">../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturesize.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/shadertexturefunction/texturesize.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/stringquery-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/stringquery-expected.txt >new file mode 100644 >index 00000000000..90c92e7e623 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/stringquery-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/stringquery.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/stringquery.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/stringquery.html >new file mode 100644 >index 00000000000..a43a1630991 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/stringquery.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for stringquery.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/stringquery.html">../../../resources/webgl_test_files/deqp/functional/gles3/stringquery.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/stringquery.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/sync-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/sync-expected.txt >new file mode 100644 >index 00000000000..a904256f329 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/sync-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/sync.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/sync.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/sync.html >new file mode 100644 >index 00000000000..a9420aed56b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/sync.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sync.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/sync.html">../../../resources/webgl_test_files/deqp/functional/gles3/sync.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/sync.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_00-expected.txt >new file mode 100644 >index 00000000000..617239860d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_00.html >new file mode 100644 >index 00000000000..3c9194740d1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_combinations_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_01-expected.txt >new file mode 100644 >index 00000000000..0e58f1a65d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_01.html >new file mode 100644 >index 00000000000..3fad99bbe6d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_combinations_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_02-expected.txt >new file mode 100644 >index 00000000000..30d2e4862be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_02.html >new file mode 100644 >index 00000000000..403d00c4b16 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_combinations_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_03-expected.txt >new file mode 100644 >index 00000000000..a5ea5b22bca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_03.html >new file mode 100644 >index 00000000000..c7e7badc4ac >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_combinations_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_04-expected.txt >new file mode 100644 >index 00000000000..536163191e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_04.html >new file mode 100644 >index 00000000000..d25ca3ed521 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_combinations_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_05-expected.txt >new file mode 100644 >index 00000000000..49946cd1764 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_05.html >new file mode 100644 >index 00000000000..2d2fd3c69df >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_combinations_05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_combinations_05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_combinations_05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_00-expected.txt >new file mode 100644 >index 00000000000..90c0e3415f0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_00.html >new file mode 100644 >index 00000000000..1db5e02ca1f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_formats_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_01-expected.txt >new file mode 100644 >index 00000000000..c12ac42e45b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_01.html >new file mode 100644 >index 00000000000..a80137855ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_formats_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_02-expected.txt >new file mode 100644 >index 00000000000..baa631066ab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_02.html >new file mode 100644 >index 00000000000..4cef1bb3109 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_formats_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_03-expected.txt >new file mode 100644 >index 00000000000..761e1a4ca43 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_03.html >new file mode 100644 >index 00000000000..22f69c9a8f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_formats_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_04-expected.txt >new file mode 100644 >index 00000000000..f234caba3b6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_04.html >new file mode 100644 >index 00000000000..3886f70c501 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_formats_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_05-expected.txt >new file mode 100644 >index 00000000000..e55dcda623e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_05.html >new file mode 100644 >index 00000000000..941975a732c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_formats_05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_06-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_06-expected.txt >new file mode 100644 >index 00000000000..fc0e377b7dc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_06-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_06.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_06.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_06.html >new file mode 100644 >index 00000000000..5ab8eed8733 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_06.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_formats_06.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_06.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_06.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_06.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_07-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_07-expected.txt >new file mode 100644 >index 00000000000..08640ee9454 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_07-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_07.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_07.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_07.html >new file mode 100644 >index 00000000000..b2b14d00978 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_07.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_formats_07.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_07.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_07.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_07.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_08-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_08-expected.txt >new file mode 100644 >index 00000000000..1f7c913438d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_08-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_08.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_08.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_08.html >new file mode 100644 >index 00000000000..c17f1a37dc9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_08.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_formats_08.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_08.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_08.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_08.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_09-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_09-expected.txt >new file mode 100644 >index 00000000000..b18503180fa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_09-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_09.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_09.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_09.html >new file mode 100644 >index 00000000000..b5834ea863e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_formats_09.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_formats_09.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_09.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_09.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_formats_09.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_00-expected.txt >new file mode 100644 >index 00000000000..e8d77998c33 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_00.html >new file mode 100644 >index 00000000000..c2a84605ee5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_sizes_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_01-expected.txt >new file mode 100644 >index 00000000000..078af5308d8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_01.html >new file mode 100644 >index 00000000000..299b79dbe74 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_sizes_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_02-expected.txt >new file mode 100644 >index 00000000000..227cea0e99e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_02.html >new file mode 100644 >index 00000000000..f3e3f8e9b54 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_sizes_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_03-expected.txt >new file mode 100644 >index 00000000000..7235bfc16d4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_03.html >new file mode 100644 >index 00000000000..f103eb09cd6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_sizes_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_04-expected.txt >new file mode 100644 >index 00000000000..c6bf6c0ef62 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_04.html >new file mode 100644 >index 00000000000..919aefbd441 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_array_sizes_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_sizes_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_array_sizes_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_00-expected.txt >new file mode 100644 >index 00000000000..b570dd4b72f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_00.html >new file mode 100644 >index 00000000000..a6a5993f47c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_combinations_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_01-expected.txt >new file mode 100644 >index 00000000000..654ece271b6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_01.html >new file mode 100644 >index 00000000000..2e6beb7b4f1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_combinations_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_02-expected.txt >new file mode 100644 >index 00000000000..a4224b51cb9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_02.html >new file mode 100644 >index 00000000000..bebc7cfd024 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_combinations_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_03-expected.txt >new file mode 100644 >index 00000000000..ff5c4c64d50 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_03.html >new file mode 100644 >index 00000000000..b5247c6b2ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_combinations_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_04-expected.txt >new file mode 100644 >index 00000000000..a405a6e00be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_04.html >new file mode 100644 >index 00000000000..4cc7f0003bf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_combinations_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_05-expected.txt >new file mode 100644 >index 00000000000..d9c0e9de447 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_05.html >new file mode 100644 >index 00000000000..6161e6da32d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_combinations_05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_combinations_05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_combinations_05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_00-expected.txt >new file mode 100644 >index 00000000000..a774a1a5cc3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_00.html >new file mode 100644 >index 00000000000..d59a6ec1996 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_formats_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_01-expected.txt >new file mode 100644 >index 00000000000..f7d49157949 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_01.html >new file mode 100644 >index 00000000000..a7f671cf3aa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_formats_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_02-expected.txt >new file mode 100644 >index 00000000000..348a6ed4e05 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_02.html >new file mode 100644 >index 00000000000..3f8581c6cc1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_formats_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_03-expected.txt >new file mode 100644 >index 00000000000..a5525ba05fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_03.html >new file mode 100644 >index 00000000000..c1baa6cc45b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_formats_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_04-expected.txt >new file mode 100644 >index 00000000000..8f0bb961caf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_04.html >new file mode 100644 >index 00000000000..f47b2f1de1d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_formats_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_05-expected.txt >new file mode 100644 >index 00000000000..42b4d859bd8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_05.html >new file mode 100644 >index 00000000000..e63fbb34d7b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_formats_05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_06-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_06-expected.txt >new file mode 100644 >index 00000000000..29c1ed296f1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_06-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_06.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_06.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_06.html >new file mode 100644 >index 00000000000..66c3e69d3b3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_06.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_formats_06.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_06.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_06.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_06.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_07-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_07-expected.txt >new file mode 100644 >index 00000000000..330c013c95b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_07-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_07.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_07.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_07.html >new file mode 100644 >index 00000000000..debf5af8a7b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_07.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_formats_07.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_07.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_07.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_07.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_08-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_08-expected.txt >new file mode 100644 >index 00000000000..106e4e58001 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_08-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_08.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_08.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_08.html >new file mode 100644 >index 00000000000..451925c5527 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_08.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_formats_08.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_08.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_08.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_08.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_09-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_09-expected.txt >new file mode 100644 >index 00000000000..78a4d7f4a8b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_09-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_09.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_09.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_09.html >new file mode 100644 >index 00000000000..10458956fd9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_formats_09.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_formats_09.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_09.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_09.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_formats_09.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_00-expected.txt >new file mode 100644 >index 00000000000..0c18629633e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_00.html >new file mode 100644 >index 00000000000..80ed03f48de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_sizes_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_01-expected.txt >new file mode 100644 >index 00000000000..43a5d12cf23 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_01.html >new file mode 100644 >index 00000000000..b26f1a0109d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_sizes_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_02-expected.txt >new file mode 100644 >index 00000000000..28acfede582 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_02.html >new file mode 100644 >index 00000000000..51e112b6c2d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_sizes_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_03-expected.txt >new file mode 100644 >index 00000000000..30f7ab4f689 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_03.html >new file mode 100644 >index 00000000000..0cc2c9d53a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_sizes_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_04-expected.txt >new file mode 100644 >index 00000000000..6640b98b61a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_04.html >new file mode 100644 >index 00000000000..ddbd7f8e9ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_sizes_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_05-expected.txt >new file mode 100644 >index 00000000000..29b8abce338 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_05.html >new file mode 100644 >index 00000000000..99b907baf4b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/2d_sizes_05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_sizes_05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/2d_sizes_05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_00-expected.txt >new file mode 100644 >index 00000000000..d6e662d1d21 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_00.html >new file mode 100644 >index 00000000000..ea35998a763 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_01-expected.txt >new file mode 100644 >index 00000000000..55bb46a8914 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_01.html >new file mode 100644 >index 00000000000..5390c032268 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_02-expected.txt >new file mode 100644 >index 00000000000..afe84c9dfa5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_02.html >new file mode 100644 >index 00000000000..1c5e9103680 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_03-expected.txt >new file mode 100644 >index 00000000000..c556994ac33 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_03.html >new file mode 100644 >index 00000000000..ba8eb061d55 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_04-expected.txt >new file mode 100644 >index 00000000000..c21390d2bb4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_04.html >new file mode 100644 >index 00000000000..7de6220f01a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_05-expected.txt >new file mode 100644 >index 00000000000..66878c12f67 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_05.html >new file mode 100644 >index 00000000000..68d14d36943 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_06-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_06-expected.txt >new file mode 100644 >index 00000000000..7ea63ea1901 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_06-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_06.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_06.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_06.html >new file mode 100644 >index 00000000000..98c0a7794ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_06.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_06.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_06.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_06.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_06.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_07-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_07-expected.txt >new file mode 100644 >index 00000000000..f2fb2ee2f01 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_07-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_07.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_07.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_07.html >new file mode 100644 >index 00000000000..f23366b60f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_07.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_07.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_07.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_07.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_07.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_08-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_08-expected.txt >new file mode 100644 >index 00000000000..0e63ba048e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_08-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_08.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_08.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_08.html >new file mode 100644 >index 00000000000..dc85e7c0330 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_08.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_08.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_08.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_08.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_08.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_09-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_09-expected.txt >new file mode 100644 >index 00000000000..b24253aa87b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_09-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_09.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_09.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_09.html >new file mode 100644 >index 00000000000..cb8d74b0f94 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_09.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_09.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_09.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_09.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_09.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_10-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_10-expected.txt >new file mode 100644 >index 00000000000..a905eec5465 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_10-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_10.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_10.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_10.html >new file mode 100644 >index 00000000000..116c92d6f81 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_10.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_10.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_10.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_10.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_10.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_11-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_11-expected.txt >new file mode 100644 >index 00000000000..62fc5f04434 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_11-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_11.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_11.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_11.html >new file mode 100644 >index 00000000000..bd24b420c3b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_11.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_11.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_11.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_11.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_11.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_12-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_12-expected.txt >new file mode 100644 >index 00000000000..3d9b6e16710 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_12-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_12.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_12.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_12.html >new file mode 100644 >index 00000000000..d77c0441746 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_12.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_12.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_12.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_12.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_12.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_13-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_13-expected.txt >new file mode 100644 >index 00000000000..fbe08e681e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_13-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_13.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_13.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_13.html >new file mode 100644 >index 00000000000..e691de29a27 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_13.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_13.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_13.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_13.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_13.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_14-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_14-expected.txt >new file mode 100644 >index 00000000000..5747a4e513a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_14-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_14.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_14.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_14.html >new file mode 100644 >index 00000000000..eb998c7d5ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_14.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_14.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_14.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_14.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_14.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_15-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_15-expected.txt >new file mode 100644 >index 00000000000..62002f1b541 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_15-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_15.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_15.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_15.html >new file mode 100644 >index 00000000000..12d712b89ac >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_15.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_15.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_15.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_15.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_15.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_16-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_16-expected.txt >new file mode 100644 >index 00000000000..40192a128bf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_16-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_16.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_16.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_16.html >new file mode 100644 >index 00000000000..2a9e47c24d2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_16.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_16.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_16.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_16.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_16.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_17-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_17-expected.txt >new file mode 100644 >index 00000000000..682bec9fba6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_17-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_17.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_17.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_17.html >new file mode 100644 >index 00000000000..89d8d1c6a94 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_17.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_17.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_17.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_17.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_17.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_18-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_18-expected.txt >new file mode 100644 >index 00000000000..3ed7f4864a4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_18-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_18.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_18.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_18.html >new file mode 100644 >index 00000000000..b72a16801a0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_18.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_18.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_18.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_18.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_18.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_19-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_19-expected.txt >new file mode 100644 >index 00000000000..16be953d77e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_19-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_19.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_19.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_19.html >new file mode 100644 >index 00000000000..6ab0db15f39 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_19.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_19.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_19.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_19.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_19.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_20-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_20-expected.txt >new file mode 100644 >index 00000000000..96e8b37fc66 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_20-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_20.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_20.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_20.html >new file mode 100644 >index 00000000000..e76a0015d6c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_20.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_20.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_20.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_20.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_20.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_21-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_21-expected.txt >new file mode 100644 >index 00000000000..ac3765dcd77 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_21-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_21.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_21.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_21.html >new file mode 100644 >index 00000000000..470a36c02c5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_21.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_21.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_21.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_21.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_21.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_22-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_22-expected.txt >new file mode 100644 >index 00000000000..2109fa763f0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_22-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_22.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_22.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_22.html >new file mode 100644 >index 00000000000..47f42366cc7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_22.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_22.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_22.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_22.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_22.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_23-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_23-expected.txt >new file mode 100644 >index 00000000000..6f31b7cadca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_23-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_23.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_23.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_23.html >new file mode 100644 >index 00000000000..e4e880b9521 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_23.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_23.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_23.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_23.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_23.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_24-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_24-expected.txt >new file mode 100644 >index 00000000000..9413f8774e7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_24-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_24.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_24.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_24.html >new file mode 100644 >index 00000000000..86479063bc6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_24.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_24.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_24.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_24.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_24.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_25-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_25-expected.txt >new file mode 100644 >index 00000000000..9bfb52c044f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_25-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_25.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_25.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_25.html >new file mode 100644 >index 00000000000..23152da9d08 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_25.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_25.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_25.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_25.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_25.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_26-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_26-expected.txt >new file mode 100644 >index 00000000000..b889b8784d0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_26-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_26.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_26.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_26.html >new file mode 100644 >index 00000000000..a0f859da425 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_26.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_26.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_26.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_26.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_26.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_27-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_27-expected.txt >new file mode 100644 >index 00000000000..78fb9c533a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_27-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_27.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_27.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_27.html >new file mode 100644 >index 00000000000..ce658355686 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_27.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_27.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_27.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_27.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_27.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_28-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_28-expected.txt >new file mode 100644 >index 00000000000..05d8b5f881b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_28-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_28.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_28.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_28.html >new file mode 100644 >index 00000000000..5ef92abefc7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_28.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_28.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_28.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_28.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_28.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_29-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_29-expected.txt >new file mode 100644 >index 00000000000..f32a31e8427 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_29-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_29.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_29.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_29.html >new file mode 100644 >index 00000000000..3f7626308f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_29.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_29.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_29.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_29.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_29.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_30-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_30-expected.txt >new file mode 100644 >index 00000000000..2c708f8c71e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_30-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_30.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_30.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_30.html >new file mode 100644 >index 00000000000..d28bdd0b80f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_30.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_30.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_30.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_30.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_30.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_31-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_31-expected.txt >new file mode 100644 >index 00000000000..745a071e460 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_31-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_31.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_31.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_31.html >new file mode 100644 >index 00000000000..221dae844b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_31.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_31.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_31.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_31.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_31.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_32-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_32-expected.txt >new file mode 100644 >index 00000000000..e052de0a127 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_32-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_32.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_32.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_32.html >new file mode 100644 >index 00000000000..8cb7814d37a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_32.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_32.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_32.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_32.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_32.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_33-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_33-expected.txt >new file mode 100644 >index 00000000000..9dbab53a76a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_33-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_33.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_33.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_33.html >new file mode 100644 >index 00000000000..3d340797365 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_33.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_33.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_33.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_33.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_33.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_34-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_34-expected.txt >new file mode 100644 >index 00000000000..a6dd05de958 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_34-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_34.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_34.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_34.html >new file mode 100644 >index 00000000000..fe037b4dba6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_34.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_34.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_34.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_34.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_34.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_35-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_35-expected.txt >new file mode 100644 >index 00000000000..1536f35dbe7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_35-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_35.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_35.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_35.html >new file mode 100644 >index 00000000000..8dc638c9212 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_combinations_35.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_combinations_35.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_35.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_35.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_combinations_35.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_00-expected.txt >new file mode 100644 >index 00000000000..0d6b8ee228a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_00.html >new file mode 100644 >index 00000000000..0fd92048f0e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_formats_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_01-expected.txt >new file mode 100644 >index 00000000000..3f85d307da5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_01.html >new file mode 100644 >index 00000000000..4ae715fefe6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_formats_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_02-expected.txt >new file mode 100644 >index 00000000000..b41f5d780e8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_02.html >new file mode 100644 >index 00000000000..b0e57bac30c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_formats_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_03-expected.txt >new file mode 100644 >index 00000000000..5b3eb74c797 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_03.html >new file mode 100644 >index 00000000000..820ca139742 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_formats_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_04-expected.txt >new file mode 100644 >index 00000000000..5e0cb88b44c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_04.html >new file mode 100644 >index 00000000000..6b08a68a1ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_formats_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_05-expected.txt >new file mode 100644 >index 00000000000..1cb4965e916 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_05.html >new file mode 100644 >index 00000000000..4efea9cf03c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_formats_05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_06-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_06-expected.txt >new file mode 100644 >index 00000000000..ae92c30ffba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_06-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_06.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_06.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_06.html >new file mode 100644 >index 00000000000..1bada072ab4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_06.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_formats_06.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_06.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_06.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_06.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_07-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_07-expected.txt >new file mode 100644 >index 00000000000..3949d3de41d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_07-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_07.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_07.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_07.html >new file mode 100644 >index 00000000000..73b10d8a592 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_07.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_formats_07.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_07.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_07.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_07.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_08-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_08-expected.txt >new file mode 100644 >index 00000000000..e9996d490a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_08-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_08.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_08.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_08.html >new file mode 100644 >index 00000000000..103a9a679b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_08.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_formats_08.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_08.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_08.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_08.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_09-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_09-expected.txt >new file mode 100644 >index 00000000000..85f71ab2288 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_09-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_09.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_09.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_09.html >new file mode 100644 >index 00000000000..9f7a8a3c4fb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_formats_09.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_formats_09.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_09.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_09.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_formats_09.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_00-expected.txt >new file mode 100644 >index 00000000000..33d17c987f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_00.html >new file mode 100644 >index 00000000000..73a56d21785 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_sizes_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_01-expected.txt >new file mode 100644 >index 00000000000..1a226181aa3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_01.html >new file mode 100644 >index 00000000000..d48e84bf1ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_sizes_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_02-expected.txt >new file mode 100644 >index 00000000000..22cd59745fe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_02.html >new file mode 100644 >index 00000000000..5277f8f4a9a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_sizes_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_03-expected.txt >new file mode 100644 >index 00000000000..8b37dd4257c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_03.html >new file mode 100644 >index 00000000000..1ee6df07c2d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_sizes_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_04-expected.txt >new file mode 100644 >index 00000000000..9af434ad14b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_04.html >new file mode 100644 >index 00000000000..8367b76369e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/3d_sizes_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 3d_sizes_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/3d_sizes_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_00-expected.txt >new file mode 100644 >index 00000000000..7219042353e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_00.html >new file mode 100644 >index 00000000000..e67b83ee987 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_combinations_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_01-expected.txt >new file mode 100644 >index 00000000000..2233cf05a09 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_01.html >new file mode 100644 >index 00000000000..66ef1b1da5b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_combinations_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_02-expected.txt >new file mode 100644 >index 00000000000..3ab5205dedd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_02.html >new file mode 100644 >index 00000000000..6915d0b46ad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_combinations_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_03-expected.txt >new file mode 100644 >index 00000000000..9240706bb7e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_03.html >new file mode 100644 >index 00000000000..2c4e32c034e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_combinations_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_04-expected.txt >new file mode 100644 >index 00000000000..d5a78a191f3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_04.html >new file mode 100644 >index 00000000000..14d2b28c416 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_combinations_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_05-expected.txt >new file mode 100644 >index 00000000000..ede75d922ac >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_05.html >new file mode 100644 >index 00000000000..26aa66df720 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_combinations_05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_combinations_05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_combinations_05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_00-expected.txt >new file mode 100644 >index 00000000000..0bdb06a9dcb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_00.html >new file mode 100644 >index 00000000000..3390b2359a1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_formats_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_01-expected.txt >new file mode 100644 >index 00000000000..063ba7e0761 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_01.html >new file mode 100644 >index 00000000000..5ea1c30fcf7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_formats_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_02-expected.txt >new file mode 100644 >index 00000000000..3f26a3b772b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_02.html >new file mode 100644 >index 00000000000..30912f80501 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_formats_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_03-expected.txt >new file mode 100644 >index 00000000000..a6b927c23ed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_03.html >new file mode 100644 >index 00000000000..17d5090a4f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_formats_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_04-expected.txt >new file mode 100644 >index 00000000000..dfaed5a1e69 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_04.html >new file mode 100644 >index 00000000000..dd0b43b9432 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_formats_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_05-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_05-expected.txt >new file mode 100644 >index 00000000000..a39adf38530 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_05-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_05.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_05.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_05.html >new file mode 100644 >index 00000000000..03ee7d6d5dd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_05.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_formats_05.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_05.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_05.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_05.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_06-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_06-expected.txt >new file mode 100644 >index 00000000000..5aa9f79f9e0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_06-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_06.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_06.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_06.html >new file mode 100644 >index 00000000000..b581621c254 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_06.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_formats_06.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_06.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_06.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_06.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_07-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_07-expected.txt >new file mode 100644 >index 00000000000..71a0fd5c968 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_07-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_07.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_07.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_07.html >new file mode 100644 >index 00000000000..d568df793ec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_07.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_formats_07.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_07.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_07.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_07.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_08-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_08-expected.txt >new file mode 100644 >index 00000000000..ff6c2c11b63 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_08-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_08.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_08.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_08.html >new file mode 100644 >index 00000000000..801d4667abb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_08.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_formats_08.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_08.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_08.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_08.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_09-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_09-expected.txt >new file mode 100644 >index 00000000000..46f4cc5c417 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_09-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_09.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_09.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_09.html >new file mode 100644 >index 00000000000..2731601505c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_formats_09.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_formats_09.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_09.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_09.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_formats_09.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_no_edges_visible-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_no_edges_visible-expected.txt >new file mode 100644 >index 00000000000..af10f9f09b9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_no_edges_visible-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_no_edges_visible.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_no_edges_visible.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_no_edges_visible.html >new file mode 100644 >index 00000000000..c969be3417f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_no_edges_visible.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_no_edges_visible.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_no_edges_visible.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_no_edges_visible.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_no_edges_visible.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_00-expected.txt >new file mode 100644 >index 00000000000..3f7f2245e2a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_00.html >new file mode 100644 >index 00000000000..e7f52195003 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_sizes_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_01-expected.txt >new file mode 100644 >index 00000000000..88887cbbd31 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_01.html >new file mode 100644 >index 00000000000..319155fa6ec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_sizes_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_02-expected.txt >new file mode 100644 >index 00000000000..f5c179aaaca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_02.html >new file mode 100644 >index 00000000000..72ae894281d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_sizes_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_03-expected.txt >new file mode 100644 >index 00000000000..cbd4745ea15 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_03.html >new file mode 100644 >index 00000000000..b992ff10014 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_sizes_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_04-expected.txt >new file mode 100644 >index 00000000000..f7473c8ffd8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_04.html >new file mode 100644 >index 00000000000..68594904a99 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturefiltering/cube_sizes_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_sizes_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturefiltering/cube_sizes_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/compressed_2d-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/compressed_2d-expected.txt >new file mode 100644 >index 00000000000..89973f73f4b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/compressed_2d-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/compressed_2d.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/compressed_2d.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/compressed_2d.html >new file mode 100644 >index 00000000000..d28afc4aefe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/compressed_2d.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for compressed_2d.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/compressed_2d.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/compressed_2d.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/compressed_2d.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/compressed_cube-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/compressed_cube-expected.txt >new file mode 100644 >index 00000000000..addfd7643e2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/compressed_cube-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/compressed_cube.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/compressed_cube.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/compressed_cube.html >new file mode 100644 >index 00000000000..1d5b9493260 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/compressed_cube.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for compressed_cube.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/compressed_cube.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/compressed_cube.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/compressed_cube.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_00-expected.txt >new file mode 100644 >index 00000000000..5c6426d22d5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_00.html >new file mode 100644 >index 00000000000..50ad283905f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_2d_array_npot_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_01-expected.txt >new file mode 100644 >index 00000000000..9a1192fa1fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_01.html >new file mode 100644 >index 00000000000..224ab4bf8cd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_2d_array_npot_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_02-expected.txt >new file mode 100644 >index 00000000000..7e81cb26718 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_02.html >new file mode 100644 >index 00000000000..7d64f642213 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_2d_array_npot_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_03-expected.txt >new file mode 100644 >index 00000000000..98555bebe0b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_03.html >new file mode 100644 >index 00000000000..26d83e6d1da >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_2d_array_npot_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_npot_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_00-expected.txt >new file mode 100644 >index 00000000000..8d5d6eb17b1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_00.html >new file mode 100644 >index 00000000000..cb96afd91f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_2d_array_pot_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_01-expected.txt >new file mode 100644 >index 00000000000..a05ef275b81 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_01.html >new file mode 100644 >index 00000000000..466e1746c5c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_2d_array_pot_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_02-expected.txt >new file mode 100644 >index 00000000000..390d9993d59 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_02.html >new file mode 100644 >index 00000000000..89d1b900cba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_2d_array_pot_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_03-expected.txt >new file mode 100644 >index 00000000000..d294c0c38be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_03.html >new file mode 100644 >index 00000000000..3ce01c30346 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_2d_array_pot_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_array_pot_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_00-expected.txt >new file mode 100644 >index 00000000000..4370266cb91 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_npot_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_00.html >new file mode 100644 >index 00000000000..05ce3733634 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_2d_npot_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_npot_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_npot_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_npot_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_01-expected.txt >new file mode 100644 >index 00000000000..5ed1104473e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_npot_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_01.html >new file mode 100644 >index 00000000000..948567a3c6c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_2d_npot_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_npot_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_npot_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_npot_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_02-expected.txt >new file mode 100644 >index 00000000000..4976f7b3da6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_npot_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_02.html >new file mode 100644 >index 00000000000..c21e0930e42 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_2d_npot_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_npot_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_npot_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_npot_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_03-expected.txt >new file mode 100644 >index 00000000000..5ba24da07e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_npot_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_03.html >new file mode 100644 >index 00000000000..646b27e5310 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_npot_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_2d_npot_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_npot_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_npot_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_npot_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_00-expected.txt >new file mode 100644 >index 00000000000..5a64bdc03cd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_pot_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_00.html >new file mode 100644 >index 00000000000..1c9679b528d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_2d_pot_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_pot_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_pot_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_pot_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_01-expected.txt >new file mode 100644 >index 00000000000..ee73ee1337e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_pot_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_01.html >new file mode 100644 >index 00000000000..3ed6328d5eb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_2d_pot_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_pot_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_pot_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_pot_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_02-expected.txt >new file mode 100644 >index 00000000000..2b5bdca110e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_pot_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_02.html >new file mode 100644 >index 00000000000..cded30ae589 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_2d_pot_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_pot_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_pot_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_pot_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_03-expected.txt >new file mode 100644 >index 00000000000..c52255e02e8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_pot_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_03.html >new file mode 100644 >index 00000000000..57466f2b1d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_2d_pot_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_2d_pot_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_pot_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_pot_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_2d_pot_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_00-expected.txt >new file mode 100644 >index 00000000000..770b4758189 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_npot_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_00.html >new file mode 100644 >index 00000000000..15082e40d48 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_3d_npot_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_npot_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_npot_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_npot_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_01-expected.txt >new file mode 100644 >index 00000000000..6049d4fcb8f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_npot_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_01.html >new file mode 100644 >index 00000000000..923b62c1d16 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_3d_npot_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_npot_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_npot_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_npot_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_02-expected.txt >new file mode 100644 >index 00000000000..b75e0c012db >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_npot_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_02.html >new file mode 100644 >index 00000000000..bf4abc83a5e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_3d_npot_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_npot_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_npot_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_npot_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_03-expected.txt >new file mode 100644 >index 00000000000..1c34a07a68f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_npot_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_03.html >new file mode 100644 >index 00000000000..bb4d71d133d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_npot_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_3d_npot_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_npot_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_npot_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_npot_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_00-expected.txt >new file mode 100644 >index 00000000000..fbe7c9a4cf3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_pot_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_00.html >new file mode 100644 >index 00000000000..1d01f8c0057 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_3d_pot_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_pot_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_pot_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_pot_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_01-expected.txt >new file mode 100644 >index 00000000000..faecfb77772 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_pot_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_01.html >new file mode 100644 >index 00000000000..6dbb59b7db6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_3d_pot_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_pot_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_pot_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_pot_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_02-expected.txt >new file mode 100644 >index 00000000000..0a55d7c1142 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_pot_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_02.html >new file mode 100644 >index 00000000000..f71ca2e8cbb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_3d_pot_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_pot_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_pot_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_pot_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_03-expected.txt >new file mode 100644 >index 00000000000..bb425c06ca1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_pot_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_03.html >new file mode 100644 >index 00000000000..b92f2b5c877 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_3d_pot_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_3d_pot_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_pot_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_pot_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_3d_pot_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_00-expected.txt >new file mode 100644 >index 00000000000..ec294e5165c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_npot_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_00.html >new file mode 100644 >index 00000000000..f0390970968 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_cube_npot_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_npot_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_npot_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_npot_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_01-expected.txt >new file mode 100644 >index 00000000000..4935b6e0ee5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_npot_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_01.html >new file mode 100644 >index 00000000000..298470d0be0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_cube_npot_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_npot_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_npot_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_npot_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_02-expected.txt >new file mode 100644 >index 00000000000..200c9976d28 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_npot_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_02.html >new file mode 100644 >index 00000000000..1cccfc34275 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_cube_npot_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_npot_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_npot_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_npot_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_03-expected.txt >new file mode 100644 >index 00000000000..9c94f3ddda8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_npot_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_03.html >new file mode 100644 >index 00000000000..de56b797779 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_npot_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_cube_npot_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_npot_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_npot_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_npot_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_00-expected.txt >new file mode 100644 >index 00000000000..abeafec84bd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_pot_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_00.html >new file mode 100644 >index 00000000000..d8a540534fb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_cube_pot_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_pot_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_pot_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_pot_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_01-expected.txt >new file mode 100644 >index 00000000000..4f573abb035 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_pot_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_01.html >new file mode 100644 >index 00000000000..7e7502893f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_cube_pot_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_pot_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_pot_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_pot_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_02-expected.txt >new file mode 100644 >index 00000000000..c7f71bd00f1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_pot_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_02.html >new file mode 100644 >index 00000000000..ebf69c2b8b5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_cube_pot_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_pot_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_pot_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_pot_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_03-expected.txt >new file mode 100644 >index 00000000000..c71bdde9a3d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_pot_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_03.html >new file mode 100644 >index 00000000000..79182333ae4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_color_cube_pot_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_color_cube_pot_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_pot_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_pot_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_color_cube_pot_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_depth_stencil-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_depth_stencil-expected.txt >new file mode 100644 >index 00000000000..7b855c9b79b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_depth_stencil-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_depth_stencil.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_depth_stencil.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_depth_stencil.html >new file mode 100644 >index 00000000000..83937f33400 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/sized_depth_stencil.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for sized_depth_stencil.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_depth_stencil.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_depth_stencil.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/sized_depth_stencil.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_2d-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_2d-expected.txt >new file mode 100644 >index 00000000000..2900edae47a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_2d-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/unsized_2d.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_2d.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_2d.html >new file mode 100644 >index 00000000000..7572bfe1df0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_2d.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for unsized_2d.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/unsized_2d.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/unsized_2d.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/unsized_2d.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_2d_array-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_2d_array-expected.txt >new file mode 100644 >index 00000000000..d60aa1f6a7c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_2d_array-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/unsized_2d_array.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_2d_array.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_2d_array.html >new file mode 100644 >index 00000000000..63a6e1330ef >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_2d_array.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for unsized_2d_array.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/unsized_2d_array.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/unsized_2d_array.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/unsized_2d_array.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_3d-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_3d-expected.txt >new file mode 100644 >index 00000000000..c6068a04077 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_3d-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/unsized_3d.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_3d.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_3d.html >new file mode 100644 >index 00000000000..552de869e89 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureformat/unsized_3d.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for unsized_3d.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/unsized_3d.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/unsized_3d.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureformat/unsized_3d.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_always-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_always-expected.txt >new file mode 100644 >index 00000000000..7910a3745b5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_always-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_always.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_always.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_always.html >new file mode 100644 >index 00000000000..e1696bafd06 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_always.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_always.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_always.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_always.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_always.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_equal-expected.txt >new file mode 100644 >index 00000000000..5d64f68429f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_equal.html >new file mode 100644 >index 00000000000..e30b5dcbcd8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_greater-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_greater-expected.txt >new file mode 100644 >index 00000000000..0510faddd3a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_greater-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_greater.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_greater.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_greater.html >new file mode 100644 >index 00000000000..c96fd647f13 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_greater.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_greater.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_greater.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_greater.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_greater.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_greater_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_greater_or_equal-expected.txt >new file mode 100644 >index 00000000000..0c2b81d7a34 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_greater_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_greater_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_greater_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_greater_or_equal.html >new file mode 100644 >index 00000000000..b93f4a4467c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_greater_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_greater_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_greater_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_greater_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_greater_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_less-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_less-expected.txt >new file mode 100644 >index 00000000000..6e870c9341b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_less-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_less.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_less.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_less.html >new file mode 100644 >index 00000000000..b3ff30a4209 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_less.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_less.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_less.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_less.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_less.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_less_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_less_or_equal-expected.txt >new file mode 100644 >index 00000000000..888ab423f4c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_less_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_less_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_less_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_less_or_equal.html >new file mode 100644 >index 00000000000..d9beaea396e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_less_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_less_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_less_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_less_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_less_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_always-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_always-expected.txt >new file mode 100644 >index 00000000000..327bb41a6d4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_always-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_always.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_always.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_always.html >new file mode 100644 >index 00000000000..f6a8b15e501 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_always.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_mipmap_linear_always.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_always.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_always.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_always.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_equal-expected.txt >new file mode 100644 >index 00000000000..28d79061fcf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_equal.html >new file mode 100644 >index 00000000000..28c23da14d0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_mipmap_linear_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater-expected.txt >new file mode 100644 >index 00000000000..8fe0cf6031e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater.html >new file mode 100644 >index 00000000000..8417a84fba6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_mipmap_linear_greater.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater_or_equal-expected.txt >new file mode 100644 >index 00000000000..4395d27fe54 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater_or_equal.html >new file mode 100644 >index 00000000000..73d9e9ac492 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_mipmap_linear_greater_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less-expected.txt >new file mode 100644 >index 00000000000..380e030c93e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less.html >new file mode 100644 >index 00000000000..2aff84bbb27 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_mipmap_linear_less.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less_or_equal-expected.txt >new file mode 100644 >index 00000000000..707e8b9b734 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less_or_equal.html >new file mode 100644 >index 00000000000..2c77f63c705 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_mipmap_linear_less_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_never-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_never-expected.txt >new file mode 100644 >index 00000000000..683a3bac5d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_never-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_never.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_never.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_never.html >new file mode 100644 >index 00000000000..41bc1dd1b67 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_never.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_mipmap_linear_never.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_never.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_never.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_never.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_not_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_not_equal-expected.txt >new file mode 100644 >index 00000000000..d6b5710ec0d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_not_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_not_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_not_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_not_equal.html >new file mode 100644 >index 00000000000..5d40bd0bdcd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_not_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_mipmap_linear_not_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_not_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_not_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_not_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_always-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_always-expected.txt >new file mode 100644 >index 00000000000..d0cb7151403 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_always-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_always.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_always.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_always.html >new file mode 100644 >index 00000000000..4e223292778 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_always.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_mipmap_nearest_always.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_always.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_always.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_always.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_equal-expected.txt >new file mode 100644 >index 00000000000..78185b7b35a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_equal.html >new file mode 100644 >index 00000000000..30f8939f573 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_mipmap_nearest_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater-expected.txt >new file mode 100644 >index 00000000000..7fd99ff37c2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater.html >new file mode 100644 >index 00000000000..f58dda1be14 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_mipmap_nearest_greater.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater_or_equal-expected.txt >new file mode 100644 >index 00000000000..8f80e238c9e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater_or_equal.html >new file mode 100644 >index 00000000000..6015becb825 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_mipmap_nearest_greater_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less-expected.txt >new file mode 100644 >index 00000000000..0b78a33d664 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less.html >new file mode 100644 >index 00000000000..8a25b72c2c9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_mipmap_nearest_less.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less_or_equal-expected.txt >new file mode 100644 >index 00000000000..5f7bca24a7a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less_or_equal.html >new file mode 100644 >index 00000000000..edf27831b3a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_mipmap_nearest_less_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_never-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_never-expected.txt >new file mode 100644 >index 00000000000..bf59c5dca6a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_never-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_never.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_never.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_never.html >new file mode 100644 >index 00000000000..6badf6e8ee6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_never.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_mipmap_nearest_never.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_never.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_never.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_never.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_not_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_not_equal-expected.txt >new file mode 100644 >index 00000000000..c091b7c2e10 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_not_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_not_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_not_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_not_equal.html >new file mode 100644 >index 00000000000..e516d703822 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_not_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_mipmap_nearest_not_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_not_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_not_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_not_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_never-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_never-expected.txt >new file mode 100644 >index 00000000000..80686bb910a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_never-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_never.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_never.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_never.html >new file mode 100644 >index 00000000000..33455fa2075 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_never.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_never.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_never.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_never.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_never.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_not_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_not_equal-expected.txt >new file mode 100644 >index 00000000000..a855d4024d8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_not_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_not_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_not_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_not_equal.html >new file mode 100644 >index 00000000000..630a67b81a4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_not_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_linear_not_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_not_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_not_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_linear_not_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_always-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_always-expected.txt >new file mode 100644 >index 00000000000..d7d450091b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_always-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_always.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_always.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_always.html >new file mode 100644 >index 00000000000..a90ba19e7b6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_always.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_always.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_always.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_always.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_always.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_equal-expected.txt >new file mode 100644 >index 00000000000..8db40c0b689 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_equal.html >new file mode 100644 >index 00000000000..881875852b6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_greater-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_greater-expected.txt >new file mode 100644 >index 00000000000..d04b37069b4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_greater-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_greater.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_greater.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_greater.html >new file mode 100644 >index 00000000000..9b6f5817bfe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_greater.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_greater.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_greater.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_greater.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_greater.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_greater_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_greater_or_equal-expected.txt >new file mode 100644 >index 00000000000..2eaab7581c4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_greater_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_greater_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_greater_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_greater_or_equal.html >new file mode 100644 >index 00000000000..94c63b6ead9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_greater_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_greater_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_greater_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_greater_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_greater_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_less-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_less-expected.txt >new file mode 100644 >index 00000000000..e2f0124d8d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_less-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_less.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_less.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_less.html >new file mode 100644 >index 00000000000..b8699562402 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_less.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_less.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_less.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_less.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_less.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_less_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_less_or_equal-expected.txt >new file mode 100644 >index 00000000000..f426283362c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_less_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_less_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_less_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_less_or_equal.html >new file mode 100644 >index 00000000000..c81cf07bb5b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_less_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_less_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_less_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_less_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_less_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_always-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_always-expected.txt >new file mode 100644 >index 00000000000..61d85cee4fa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_always-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_always.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_always.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_always.html >new file mode 100644 >index 00000000000..affd75305b0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_always.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_mipmap_linear_always.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_always.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_always.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_always.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_equal-expected.txt >new file mode 100644 >index 00000000000..3c09dfd3360 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_equal.html >new file mode 100644 >index 00000000000..0c09384c370 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_mipmap_linear_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater-expected.txt >new file mode 100644 >index 00000000000..468f37c5d7a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater.html >new file mode 100644 >index 00000000000..f7b8c2c9e75 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_mipmap_linear_greater.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater_or_equal-expected.txt >new file mode 100644 >index 00000000000..19d963cc072 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater_or_equal.html >new file mode 100644 >index 00000000000..b081fe755ea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_mipmap_linear_greater_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less-expected.txt >new file mode 100644 >index 00000000000..a484a8b5ae8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less.html >new file mode 100644 >index 00000000000..2166b6d110a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_mipmap_linear_less.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less_or_equal-expected.txt >new file mode 100644 >index 00000000000..c05e1cd8cea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less_or_equal.html >new file mode 100644 >index 00000000000..5adf8815382 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_mipmap_linear_less_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_never-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_never-expected.txt >new file mode 100644 >index 00000000000..829e61044ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_never-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_never.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_never.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_never.html >new file mode 100644 >index 00000000000..ac61bfcb484 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_never.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_mipmap_linear_never.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_never.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_never.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_never.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_not_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_not_equal-expected.txt >new file mode 100644 >index 00000000000..663e5e18866 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_not_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_not_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_not_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_not_equal.html >new file mode 100644 >index 00000000000..6067e5b1ab9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_not_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_mipmap_linear_not_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_not_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_not_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_not_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_always-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_always-expected.txt >new file mode 100644 >index 00000000000..96faabbe289 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_always-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_always.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_always.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_always.html >new file mode 100644 >index 00000000000..ef8ce20a526 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_always.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_mipmap_nearest_always.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_always.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_always.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_always.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_equal-expected.txt >new file mode 100644 >index 00000000000..fd02380a0bb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_equal.html >new file mode 100644 >index 00000000000..92cb7065677 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_mipmap_nearest_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater-expected.txt >new file mode 100644 >index 00000000000..c4d557e3a6c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater.html >new file mode 100644 >index 00000000000..89a047d8504 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_mipmap_nearest_greater.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater_or_equal-expected.txt >new file mode 100644 >index 00000000000..3db29896b46 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater_or_equal.html >new file mode 100644 >index 00000000000..57c151439b3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_mipmap_nearest_greater_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less-expected.txt >new file mode 100644 >index 00000000000..5a14f3b1629 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less.html >new file mode 100644 >index 00000000000..f1285bab355 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_mipmap_nearest_less.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less_or_equal-expected.txt >new file mode 100644 >index 00000000000..5b9ded2cde9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less_or_equal.html >new file mode 100644 >index 00000000000..a0605694ae5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_mipmap_nearest_less_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_never-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_never-expected.txt >new file mode 100644 >index 00000000000..db746d78fcb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_never-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_never.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_never.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_never.html >new file mode 100644 >index 00000000000..359798dfdfb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_never.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_mipmap_nearest_never.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_never.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_never.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_never.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_not_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_not_equal-expected.txt >new file mode 100644 >index 00000000000..3596e607992 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_not_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_not_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_not_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_not_equal.html >new file mode 100644 >index 00000000000..b6fca8d1d85 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_not_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_mipmap_nearest_not_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_not_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_not_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_not_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_never-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_never-expected.txt >new file mode 100644 >index 00000000000..fe1e63880ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_never-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_never.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_never.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_never.html >new file mode 100644 >index 00000000000..12764477d36 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_never.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_never.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_never.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_never.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_never.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_not_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_not_equal-expected.txt >new file mode 100644 >index 00000000000..39c89b61a7c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_not_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_not_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_not_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_not_equal.html >new file mode 100644 >index 00000000000..35976d6501b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_not_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_array_nearest_not_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_not_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_not_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_array_nearest_not_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_always-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_always-expected.txt >new file mode 100644 >index 00000000000..8180a0f744e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_always-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_always.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_always.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_always.html >new file mode 100644 >index 00000000000..52070f336cf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_always.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_always.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_always.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_always.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_always.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_equal-expected.txt >new file mode 100644 >index 00000000000..d9d906d4b8f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_equal.html >new file mode 100644 >index 00000000000..9bfc389b6a9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_greater-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_greater-expected.txt >new file mode 100644 >index 00000000000..c686ac4012a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_greater-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_greater.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_greater.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_greater.html >new file mode 100644 >index 00000000000..147dc51d370 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_greater.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_greater.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_greater.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_greater.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_greater.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_greater_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_greater_or_equal-expected.txt >new file mode 100644 >index 00000000000..c797bd3df27 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_greater_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_greater_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_greater_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_greater_or_equal.html >new file mode 100644 >index 00000000000..248c780103a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_greater_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_greater_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_greater_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_greater_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_greater_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_less-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_less-expected.txt >new file mode 100644 >index 00000000000..fcc4ce057ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_less-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_less.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_less.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_less.html >new file mode 100644 >index 00000000000..ad06a43d46a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_less.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_less.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_less.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_less.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_less.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_less_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_less_or_equal-expected.txt >new file mode 100644 >index 00000000000..6dc67322835 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_less_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_less_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_less_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_less_or_equal.html >new file mode 100644 >index 00000000000..030b8cd7ac9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_less_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_less_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_less_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_less_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_less_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_always-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_always-expected.txt >new file mode 100644 >index 00000000000..cca8d91a2c9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_always-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_always.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_always.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_always.html >new file mode 100644 >index 00000000000..5b52567614e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_always.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_mipmap_linear_always.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_always.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_always.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_always.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_equal-expected.txt >new file mode 100644 >index 00000000000..c7278fc52d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_equal.html >new file mode 100644 >index 00000000000..4ab19851d94 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_mipmap_linear_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater-expected.txt >new file mode 100644 >index 00000000000..6b35e9a2361 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater.html >new file mode 100644 >index 00000000000..593c32b6eee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_mipmap_linear_greater.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater_or_equal-expected.txt >new file mode 100644 >index 00000000000..765e9c11c56 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater_or_equal.html >new file mode 100644 >index 00000000000..14618dec822 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_mipmap_linear_greater_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less-expected.txt >new file mode 100644 >index 00000000000..31025d05c65 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less.html >new file mode 100644 >index 00000000000..a3c567bd601 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_mipmap_linear_less.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less_or_equal-expected.txt >new file mode 100644 >index 00000000000..80a24636228 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less_or_equal.html >new file mode 100644 >index 00000000000..13ee175a795 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_mipmap_linear_less_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_never-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_never-expected.txt >new file mode 100644 >index 00000000000..b185d35dd3b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_never-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_never.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_never.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_never.html >new file mode 100644 >index 00000000000..b55d0843d08 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_never.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_mipmap_linear_never.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_never.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_never.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_never.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_not_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_not_equal-expected.txt >new file mode 100644 >index 00000000000..c8eafccfb7b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_not_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_not_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_not_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_not_equal.html >new file mode 100644 >index 00000000000..09c47f315f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_not_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_mipmap_linear_not_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_not_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_not_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_not_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_always-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_always-expected.txt >new file mode 100644 >index 00000000000..3d89e0dafb4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_always-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_always.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_always.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_always.html >new file mode 100644 >index 00000000000..ff5a3773a74 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_always.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_mipmap_nearest_always.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_always.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_always.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_always.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_equal-expected.txt >new file mode 100644 >index 00000000000..33f595495bc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_equal.html >new file mode 100644 >index 00000000000..9afeab6cf17 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_mipmap_nearest_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater-expected.txt >new file mode 100644 >index 00000000000..ea436e9fdea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater.html >new file mode 100644 >index 00000000000..45f04d64ef5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_mipmap_nearest_greater.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater_or_equal-expected.txt >new file mode 100644 >index 00000000000..72e6bd54372 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater_or_equal.html >new file mode 100644 >index 00000000000..805257f6aeb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_mipmap_nearest_greater_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less-expected.txt >new file mode 100644 >index 00000000000..d45be13411c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less.html >new file mode 100644 >index 00000000000..50329848bdb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_mipmap_nearest_less.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less_or_equal-expected.txt >new file mode 100644 >index 00000000000..2cfc5de394e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less_or_equal.html >new file mode 100644 >index 00000000000..d679b3a50b4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_mipmap_nearest_less_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_never-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_never-expected.txt >new file mode 100644 >index 00000000000..4ee75bd483c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_never-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_never.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_never.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_never.html >new file mode 100644 >index 00000000000..5f8b67dcf7b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_never.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_mipmap_nearest_never.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_never.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_never.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_never.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_not_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_not_equal-expected.txt >new file mode 100644 >index 00000000000..5185d145ff4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_not_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_not_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_not_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_not_equal.html >new file mode 100644 >index 00000000000..e8604b1935a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_not_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_mipmap_nearest_not_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_not_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_not_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_not_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_never-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_never-expected.txt >new file mode 100644 >index 00000000000..dfd12a83db8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_never-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_never.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_never.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_never.html >new file mode 100644 >index 00000000000..a91c996313c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_never.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_never.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_never.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_never.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_never.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_not_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_not_equal-expected.txt >new file mode 100644 >index 00000000000..be6d453af48 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_not_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_not_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_not_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_not_equal.html >new file mode 100644 >index 00000000000..569bd1b18ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_not_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_linear_not_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_not_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_not_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_linear_not_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_always-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_always-expected.txt >new file mode 100644 >index 00000000000..95607edfb87 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_always-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_always.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_always.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_always.html >new file mode 100644 >index 00000000000..d0798e1105c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_always.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_always.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_always.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_always.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_always.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_equal-expected.txt >new file mode 100644 >index 00000000000..93522747649 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_equal.html >new file mode 100644 >index 00000000000..074affeb644 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_greater-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_greater-expected.txt >new file mode 100644 >index 00000000000..cf9408775df >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_greater-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_greater.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_greater.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_greater.html >new file mode 100644 >index 00000000000..f227c5037c9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_greater.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_greater.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_greater.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_greater.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_greater.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_greater_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_greater_or_equal-expected.txt >new file mode 100644 >index 00000000000..d9ba0d12590 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_greater_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_greater_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_greater_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_greater_or_equal.html >new file mode 100644 >index 00000000000..8e3082a2e0f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_greater_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_greater_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_greater_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_greater_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_greater_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_less-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_less-expected.txt >new file mode 100644 >index 00000000000..404473aa8d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_less-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_less.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_less.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_less.html >new file mode 100644 >index 00000000000..b62a25e2292 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_less.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_less.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_less.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_less.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_less.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_less_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_less_or_equal-expected.txt >new file mode 100644 >index 00000000000..181bff3dfe2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_less_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_less_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_less_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_less_or_equal.html >new file mode 100644 >index 00000000000..ec84716cdd0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_less_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_less_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_less_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_less_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_less_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_always-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_always-expected.txt >new file mode 100644 >index 00000000000..794c529de0d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_always-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_always.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_always.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_always.html >new file mode 100644 >index 00000000000..a27f7087200 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_always.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_mipmap_linear_always.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_always.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_always.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_always.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_equal-expected.txt >new file mode 100644 >index 00000000000..17695d12725 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_equal.html >new file mode 100644 >index 00000000000..c8c39749086 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_mipmap_linear_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater-expected.txt >new file mode 100644 >index 00000000000..d52f889aae5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater.html >new file mode 100644 >index 00000000000..cf01a666626 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_mipmap_linear_greater.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater_or_equal-expected.txt >new file mode 100644 >index 00000000000..5326686c645 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater_or_equal.html >new file mode 100644 >index 00000000000..1f9efd52a1b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_mipmap_linear_greater_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less-expected.txt >new file mode 100644 >index 00000000000..42b1ae7b86d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less.html >new file mode 100644 >index 00000000000..cdd4058c66e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_mipmap_linear_less.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less_or_equal-expected.txt >new file mode 100644 >index 00000000000..32425d13025 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less_or_equal.html >new file mode 100644 >index 00000000000..e992b99c514 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_mipmap_linear_less_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_never-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_never-expected.txt >new file mode 100644 >index 00000000000..48bc5599330 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_never-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_never.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_never.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_never.html >new file mode 100644 >index 00000000000..aa82e8f44a9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_never.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_mipmap_linear_never.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_never.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_never.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_never.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_not_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_not_equal-expected.txt >new file mode 100644 >index 00000000000..98cc30e434b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_not_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_not_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_not_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_not_equal.html >new file mode 100644 >index 00000000000..9b56aa073c0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_not_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_mipmap_linear_not_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_not_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_not_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_not_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_always-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_always-expected.txt >new file mode 100644 >index 00000000000..8032ede2e45 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_always-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_always.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_always.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_always.html >new file mode 100644 >index 00000000000..450d86162c1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_always.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_mipmap_nearest_always.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_always.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_always.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_always.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_equal-expected.txt >new file mode 100644 >index 00000000000..c77929f69d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_equal.html >new file mode 100644 >index 00000000000..fcc98961296 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_mipmap_nearest_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater-expected.txt >new file mode 100644 >index 00000000000..6af134e147e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater.html >new file mode 100644 >index 00000000000..93c4baabd2d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_mipmap_nearest_greater.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater_or_equal-expected.txt >new file mode 100644 >index 00000000000..b14f3d1381a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater_or_equal.html >new file mode 100644 >index 00000000000..326dd87cf7c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_mipmap_nearest_greater_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less-expected.txt >new file mode 100644 >index 00000000000..92c5a2e5865 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less.html >new file mode 100644 >index 00000000000..0d3448154aa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_mipmap_nearest_less.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less_or_equal-expected.txt >new file mode 100644 >index 00000000000..00b23839a06 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less_or_equal.html >new file mode 100644 >index 00000000000..ff37b3899f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_mipmap_nearest_less_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_never-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_never-expected.txt >new file mode 100644 >index 00000000000..b85b0099546 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_never-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_never.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_never.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_never.html >new file mode 100644 >index 00000000000..12bfa811848 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_never.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_mipmap_nearest_never.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_never.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_never.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_never.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_not_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_not_equal-expected.txt >new file mode 100644 >index 00000000000..d7c015ffb93 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_not_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_not_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_not_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_not_equal.html >new file mode 100644 >index 00000000000..7029091ea8b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_not_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_mipmap_nearest_not_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_not_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_not_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_not_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_never-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_never-expected.txt >new file mode 100644 >index 00000000000..abf1ea5135f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_never-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_never.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_never.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_never.html >new file mode 100644 >index 00000000000..b1d596c80d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_never.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_never.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_never.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_never.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_never.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_not_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_not_equal-expected.txt >new file mode 100644 >index 00000000000..1ee018cc4d1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_not_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_not_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_not_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_not_equal.html >new file mode 100644 >index 00000000000..d1e16da5ab9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_not_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for 2d_nearest_not_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_not_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_not_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/2d_nearest_not_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_always-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_always-expected.txt >new file mode 100644 >index 00000000000..157fa211077 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_always-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_always.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_always.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_always.html >new file mode 100644 >index 00000000000..118b7e0a5a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_always.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_always.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_always.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_always.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_always.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_equal-expected.txt >new file mode 100644 >index 00000000000..a2215bdae65 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_equal.html >new file mode 100644 >index 00000000000..aadbb5881dd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_greater-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_greater-expected.txt >new file mode 100644 >index 00000000000..3f35eb79f54 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_greater-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_greater.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_greater.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_greater.html >new file mode 100644 >index 00000000000..a826442e537 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_greater.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_greater.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_greater.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_greater.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_greater.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_greater_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_greater_or_equal-expected.txt >new file mode 100644 >index 00000000000..0438012f46d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_greater_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_greater_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_greater_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_greater_or_equal.html >new file mode 100644 >index 00000000000..b605fa71c2a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_greater_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_greater_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_greater_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_greater_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_greater_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_less-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_less-expected.txt >new file mode 100644 >index 00000000000..4745fe177ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_less-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_less.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_less.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_less.html >new file mode 100644 >index 00000000000..153efff7fe7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_less.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_less.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_less.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_less.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_less.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_less_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_less_or_equal-expected.txt >new file mode 100644 >index 00000000000..ca127fa4dc2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_less_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_less_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_less_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_less_or_equal.html >new file mode 100644 >index 00000000000..d0b74d91464 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_less_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_less_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_less_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_less_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_less_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_always-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_always-expected.txt >new file mode 100644 >index 00000000000..032e0a2124b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_always-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_always.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_always.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_always.html >new file mode 100644 >index 00000000000..030eca0d7a1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_always.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_mipmap_linear_always.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_always.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_always.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_always.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_equal-expected.txt >new file mode 100644 >index 00000000000..019aa1c9944 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_equal.html >new file mode 100644 >index 00000000000..15a4a5420a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_mipmap_linear_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater-expected.txt >new file mode 100644 >index 00000000000..f98cf9c0ad3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater.html >new file mode 100644 >index 00000000000..4b6f0aa1108 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_mipmap_linear_greater.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater_or_equal-expected.txt >new file mode 100644 >index 00000000000..d0be783c25c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater_or_equal.html >new file mode 100644 >index 00000000000..df7a99993f0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_mipmap_linear_greater_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less-expected.txt >new file mode 100644 >index 00000000000..7033887aef9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less.html >new file mode 100644 >index 00000000000..77b28679b1f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_mipmap_linear_less.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less_or_equal-expected.txt >new file mode 100644 >index 00000000000..4b23e07e1e7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less_or_equal.html >new file mode 100644 >index 00000000000..dd441596c33 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_mipmap_linear_less_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_never-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_never-expected.txt >new file mode 100644 >index 00000000000..a21bcd42ae8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_never-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_never.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_never.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_never.html >new file mode 100644 >index 00000000000..f9d3dc86de2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_never.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_mipmap_linear_never.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_never.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_never.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_never.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_not_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_not_equal-expected.txt >new file mode 100644 >index 00000000000..4a2ed20140f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_not_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_not_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_not_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_not_equal.html >new file mode 100644 >index 00000000000..0b6a384ca98 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_not_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_mipmap_linear_not_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_not_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_not_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_not_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_always-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_always-expected.txt >new file mode 100644 >index 00000000000..c5417b22e36 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_always-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_always.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_always.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_always.html >new file mode 100644 >index 00000000000..5e303d29abc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_always.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_mipmap_nearest_always.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_always.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_always.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_always.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_equal-expected.txt >new file mode 100644 >index 00000000000..7f3985f7514 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_equal.html >new file mode 100644 >index 00000000000..263d913695f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_mipmap_nearest_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater-expected.txt >new file mode 100644 >index 00000000000..451ebdb97fb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater.html >new file mode 100644 >index 00000000000..f700dee0f11 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_mipmap_nearest_greater.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater_or_equal-expected.txt >new file mode 100644 >index 00000000000..17d6cc13e0d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater_or_equal.html >new file mode 100644 >index 00000000000..f1581773958 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_mipmap_nearest_greater_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less-expected.txt >new file mode 100644 >index 00000000000..032dc7d2521 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less.html >new file mode 100644 >index 00000000000..d9bc2de9435 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_mipmap_nearest_less.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less_or_equal-expected.txt >new file mode 100644 >index 00000000000..9a3bec41fb8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less_or_equal.html >new file mode 100644 >index 00000000000..927def56d04 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_mipmap_nearest_less_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_never-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_never-expected.txt >new file mode 100644 >index 00000000000..3407e0d3ec6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_never-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_never.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_never.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_never.html >new file mode 100644 >index 00000000000..0d033823e06 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_never.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_mipmap_nearest_never.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_never.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_never.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_never.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_not_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_not_equal-expected.txt >new file mode 100644 >index 00000000000..4e9b96e3a73 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_not_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_not_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_not_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_not_equal.html >new file mode 100644 >index 00000000000..9be57facd0b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_not_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_mipmap_nearest_not_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_not_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_not_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_not_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_never-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_never-expected.txt >new file mode 100644 >index 00000000000..5f22cc9d7cc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_never-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_never.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_never.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_never.html >new file mode 100644 >index 00000000000..b3ca75034a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_never.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_never.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_never.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_never.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_never.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_not_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_not_equal-expected.txt >new file mode 100644 >index 00000000000..02e18ccb853 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_not_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_not_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_not_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_not_equal.html >new file mode 100644 >index 00000000000..c33f62140de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_not_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_linear_not_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_not_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_not_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_linear_not_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_always-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_always-expected.txt >new file mode 100644 >index 00000000000..11979049a12 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_always-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_always.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_always.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_always.html >new file mode 100644 >index 00000000000..de20de1d4fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_always.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_always.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_always.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_always.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_always.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_equal-expected.txt >new file mode 100644 >index 00000000000..d9cd835955a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_equal.html >new file mode 100644 >index 00000000000..599c4011be8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_greater-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_greater-expected.txt >new file mode 100644 >index 00000000000..3b8ed7449f0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_greater-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_greater.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_greater.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_greater.html >new file mode 100644 >index 00000000000..1a33862f786 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_greater.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_greater.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_greater.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_greater.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_greater.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_greater_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_greater_or_equal-expected.txt >new file mode 100644 >index 00000000000..53159bc8c8c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_greater_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_greater_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_greater_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_greater_or_equal.html >new file mode 100644 >index 00000000000..76aeffaeb25 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_greater_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_greater_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_greater_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_greater_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_greater_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_less-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_less-expected.txt >new file mode 100644 >index 00000000000..7201e95777b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_less-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_less.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_less.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_less.html >new file mode 100644 >index 00000000000..a44b564239e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_less.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_less.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_less.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_less.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_less.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_less_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_less_or_equal-expected.txt >new file mode 100644 >index 00000000000..68fb6d52014 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_less_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_less_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_less_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_less_or_equal.html >new file mode 100644 >index 00000000000..c0857469044 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_less_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_less_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_less_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_less_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_less_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_always-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_always-expected.txt >new file mode 100644 >index 00000000000..654b9395978 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_always-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_always.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_always.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_always.html >new file mode 100644 >index 00000000000..7b8afd7cb20 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_always.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_mipmap_linear_always.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_always.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_always.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_always.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_equal-expected.txt >new file mode 100644 >index 00000000000..c217e0ce744 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_equal.html >new file mode 100644 >index 00000000000..567495dee9a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_mipmap_linear_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater-expected.txt >new file mode 100644 >index 00000000000..b4a36b1ac02 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater.html >new file mode 100644 >index 00000000000..256414c34ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_mipmap_linear_greater.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater_or_equal-expected.txt >new file mode 100644 >index 00000000000..37b7bb1aaf5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater_or_equal.html >new file mode 100644 >index 00000000000..3af68464319 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_mipmap_linear_greater_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less-expected.txt >new file mode 100644 >index 00000000000..f9e44e54bc9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less.html >new file mode 100644 >index 00000000000..24daf5f5af7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_mipmap_linear_less.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less_or_equal-expected.txt >new file mode 100644 >index 00000000000..d3066f24458 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less_or_equal.html >new file mode 100644 >index 00000000000..701c2b814eb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_mipmap_linear_less_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_never-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_never-expected.txt >new file mode 100644 >index 00000000000..58c95f833cb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_never-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_never.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_never.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_never.html >new file mode 100644 >index 00000000000..ecdd02ef7d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_never.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_mipmap_linear_never.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_never.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_never.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_never.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_not_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_not_equal-expected.txt >new file mode 100644 >index 00000000000..254867e9cdd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_not_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_not_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_not_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_not_equal.html >new file mode 100644 >index 00000000000..0834e68a9de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_not_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_mipmap_linear_not_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_not_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_not_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_not_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_always-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_always-expected.txt >new file mode 100644 >index 00000000000..7a8915209f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_always-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_always.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_always.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_always.html >new file mode 100644 >index 00000000000..88cebc84d5d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_always.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_mipmap_nearest_always.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_always.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_always.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_always.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_equal-expected.txt >new file mode 100644 >index 00000000000..9bfd0117fb8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_equal.html >new file mode 100644 >index 00000000000..bd0d1027c02 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_mipmap_nearest_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater-expected.txt >new file mode 100644 >index 00000000000..e5dc82808b4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater.html >new file mode 100644 >index 00000000000..5644501d9a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_mipmap_nearest_greater.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater_or_equal-expected.txt >new file mode 100644 >index 00000000000..9244c565165 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater_or_equal.html >new file mode 100644 >index 00000000000..1d26c057447 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_mipmap_nearest_greater_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less-expected.txt >new file mode 100644 >index 00000000000..95458eb523d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less.html >new file mode 100644 >index 00000000000..3b0c6e522f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_mipmap_nearest_less.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less_or_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less_or_equal-expected.txt >new file mode 100644 >index 00000000000..eeb0cada3ab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less_or_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less_or_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less_or_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less_or_equal.html >new file mode 100644 >index 00000000000..3000ad972d5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less_or_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_mipmap_nearest_less_or_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less_or_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less_or_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less_or_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_never-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_never-expected.txt >new file mode 100644 >index 00000000000..e5d8ef64c4d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_never-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_never.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_never.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_never.html >new file mode 100644 >index 00000000000..36e31a2e527 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_never.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_mipmap_nearest_never.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_never.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_never.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_never.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_not_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_not_equal-expected.txt >new file mode 100644 >index 00000000000..115af26c8ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_not_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_not_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_not_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_not_equal.html >new file mode 100644 >index 00000000000..cb54fc7241f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_not_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_mipmap_nearest_not_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_not_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_not_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_not_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_never-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_never-expected.txt >new file mode 100644 >index 00000000000..224b1786e66 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_never-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_never.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_never.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_never.html >new file mode 100644 >index 00000000000..5ab75d97ba1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_never.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_never.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_never.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_never.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_never.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_not_equal-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_not_equal-expected.txt >new file mode 100644 >index 00000000000..67a5d97a209 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_not_equal-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_not_equal.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_not_equal.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_not_equal.html >new file mode 100644 >index 00000000000..37fa01a3903 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_not_equal.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for cube_nearest_not_equal.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_not_equal.html">../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_not_equal.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/textureshadow/cube_nearest_not_equal.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_copyteximage2d-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_copyteximage2d-expected.txt >new file mode 100644 >index 00000000000..152836ae478 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_copyteximage2d-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_copyteximage2d.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_copyteximage2d.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_copyteximage2d.html >new file mode 100644 >index 00000000000..27bb28fca01 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_copyteximage2d.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_copyteximage2d.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_copyteximage2d.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_copyteximage2d.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_copyteximage2d.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_copytexsubimage2d-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_copytexsubimage2d-expected.txt >new file mode 100644 >index 00000000000..98c3f56e4d4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_copytexsubimage2d-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_copytexsubimage2d.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_copytexsubimage2d.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_copytexsubimage2d.html >new file mode 100644 >index 00000000000..b7eb254ed38 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_copytexsubimage2d.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_copytexsubimage2d.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_copytexsubimage2d.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_copytexsubimage2d.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_copytexsubimage2d.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_00-expected.txt >new file mode 100644 >index 00000000000..e92a593e331 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_00.html >new file mode 100644 >index 00000000000..0e17fef94f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_teximage2d_2d_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_01-expected.txt >new file mode 100644 >index 00000000000..47795ad1f96 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_01.html >new file mode 100644 >index 00000000000..203a1972408 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_teximage2d_2d_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_2d_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_00-expected.txt >new file mode 100644 >index 00000000000..7bf98e8adfe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_00.html >new file mode 100644 >index 00000000000..eb75111b640 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_teximage2d_cube_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_01-expected.txt >new file mode 100644 >index 00000000000..7b327113378 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_01.html >new file mode 100644 >index 00000000000..f1a338e9ce2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_teximage2d_cube_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_02-expected.txt >new file mode 100644 >index 00000000000..f603e8fd970 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_02.html >new file mode 100644 >index 00000000000..801b6acb93f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_teximage2d_cube_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_03-expected.txt >new file mode 100644 >index 00000000000..182c3b6ff83 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_03.html >new file mode 100644 >index 00000000000..7634fec7878 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_teximage2d_cube_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_04-expected.txt >new file mode 100644 >index 00000000000..ab4ef8b5c49 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_04.html >new file mode 100644 >index 00000000000..c99febc4c36 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_teximage2d_cube_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage2d_cube_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_00-expected.txt >new file mode 100644 >index 00000000000..94bc3b64908 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_00.html >new file mode 100644 >index 00000000000..2670a48e2b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_teximage3d_2d_array_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_01-expected.txt >new file mode 100644 >index 00000000000..497d33ea119 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_01.html >new file mode 100644 >index 00000000000..4bf9d98c465 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_teximage3d_2d_array_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_02-expected.txt >new file mode 100644 >index 00000000000..6304d4403c9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_02.html >new file mode 100644 >index 00000000000..f81eeb65857 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_teximage3d_2d_array_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_2d_array_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_00-expected.txt >new file mode 100644 >index 00000000000..94b0ae1e9f5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_00.html >new file mode 100644 >index 00000000000..b2961e5f07f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_teximage3d_3d_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_01-expected.txt >new file mode 100644 >index 00000000000..284851ec489 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_01.html >new file mode 100644 >index 00000000000..afbd19ce797 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_teximage3d_3d_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_02-expected.txt >new file mode 100644 >index 00000000000..bd72593a266 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_02.html >new file mode 100644 >index 00000000000..3444949fe06 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_teximage3d_3d_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_03-expected.txt >new file mode 100644 >index 00000000000..8ee28af159e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_03.html >new file mode 100644 >index 00000000000..9a52cb47981 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_teximage3d_3d_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_04-expected.txt >new file mode 100644 >index 00000000000..72986755033 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_04.html >new file mode 100644 >index 00000000000..070d83f3727 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_teximage3d_3d_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_teximage3d_3d_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_00-expected.txt >new file mode 100644 >index 00000000000..df8d6d8a855 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_00.html >new file mode 100644 >index 00000000000..1ea531b6f6b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_texsubimage2d_2d_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_01-expected.txt >new file mode 100644 >index 00000000000..2f1c0073023 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_01.html >new file mode 100644 >index 00000000000..38bb7b452b9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_texsubimage2d_2d_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_02-expected.txt >new file mode 100644 >index 00000000000..c6e4ce6abea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_02.html >new file mode 100644 >index 00000000000..cf9870cb80e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_texsubimage2d_2d_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_2d_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_00-expected.txt >new file mode 100644 >index 00000000000..1e37334f208 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_00.html >new file mode 100644 >index 00000000000..ce23939c61d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_texsubimage2d_cube_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_01-expected.txt >new file mode 100644 >index 00000000000..5ab42be1127 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_01.html >new file mode 100644 >index 00000000000..077a63fdaf3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_texsubimage2d_cube_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_02-expected.txt >new file mode 100644 >index 00000000000..1f149e8698d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_02.html >new file mode 100644 >index 00000000000..117521fce32 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_texsubimage2d_cube_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_03-expected.txt >new file mode 100644 >index 00000000000..c325856a398 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_03.html >new file mode 100644 >index 00000000000..f8d094d6849 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_texsubimage2d_cube_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_04-expected.txt >new file mode 100644 >index 00000000000..8d1b4ff50ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_04.html >new file mode 100644 >index 00000000000..17628ad02f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_texsubimage2d_cube_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage2d_cube_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_00-expected.txt >new file mode 100644 >index 00000000000..0390edb2b25 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_00.html >new file mode 100644 >index 00000000000..38ce0e7a485 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_texsubimage3d_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_01-expected.txt >new file mode 100644 >index 00000000000..fae7977dcf6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_01.html >new file mode 100644 >index 00000000000..a9d1af0dc20 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_texsubimage3d_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_02-expected.txt >new file mode 100644 >index 00000000000..409b753aea2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_02.html >new file mode 100644 >index 00000000000..b87584217d8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_texsubimage3d_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_03-expected.txt >new file mode 100644 >index 00000000000..8b2805d4096 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_03.html >new file mode 100644 >index 00000000000..732a9f15729 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_texsubimage3d_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_04-expected.txt >new file mode 100644 >index 00000000000..348e61592e3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_04.html >new file mode 100644 >index 00000000000..e2d222f4e07 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/basic_texsubimage3d_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_texsubimage3d_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/basic_texsubimage3d_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/random_teximage2d_2d-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/random_teximage2d_2d-expected.txt >new file mode 100644 >index 00000000000..0a986b16585 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/random_teximage2d_2d-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/random_teximage2d_2d.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/random_teximage2d_2d.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/random_teximage2d_2d.html >new file mode 100644 >index 00000000000..8c8f46c4739 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/random_teximage2d_2d.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for random_teximage2d_2d.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/random_teximage2d_2d.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/random_teximage2d_2d.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/random_teximage2d_2d.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/random_teximage2d_cube-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/random_teximage2d_cube-expected.txt >new file mode 100644 >index 00000000000..6c849c8d313 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/random_teximage2d_cube-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/random_teximage2d_cube.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/random_teximage2d_cube.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/random_teximage2d_cube.html >new file mode 100644 >index 00000000000..fae12dc7a68 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/random_teximage2d_cube.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for random_teximage2d_cube.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/random_teximage2d_cube.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/random_teximage2d_cube.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/random_teximage2d_cube.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_align-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_align-expected.txt >new file mode 100644 >index 00000000000..8b6169405ba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_align-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_align.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_align.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_align.html >new file mode 100644 >index 00000000000..8084c9e7b02 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_align.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage2d_align.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_align.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_align.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_align.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_depth-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_depth-expected.txt >new file mode 100644 >index 00000000000..f73518537e2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_depth-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_depth.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_depth.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_depth.html >new file mode 100644 >index 00000000000..8d9c58efd61 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_depth.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage2d_depth.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_depth.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_depth.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_depth.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_depth_pbo-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_depth_pbo-expected.txt >new file mode 100644 >index 00000000000..d9f7920f6e8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_depth_pbo-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_depth_pbo.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_depth_pbo.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_depth_pbo.html >new file mode 100644 >index 00000000000..ab064da50c6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_depth_pbo.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage2d_depth_pbo.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_depth_pbo.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_depth_pbo.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_depth_pbo.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_00-expected.txt >new file mode 100644 >index 00000000000..875efd78844 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_00.html >new file mode 100644 >index 00000000000..d34b99e0f8c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage2d_pbo_2d_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_01-expected.txt >new file mode 100644 >index 00000000000..04522780485 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_01.html >new file mode 100644 >index 00000000000..0e6b9a82801 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage2d_pbo_2d_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_2d_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_00-expected.txt >new file mode 100644 >index 00000000000..f68e2a52386 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_00.html >new file mode 100644 >index 00000000000..cf96b2f69f1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage2d_pbo_cube_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_01-expected.txt >new file mode 100644 >index 00000000000..4306e81e813 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_01.html >new file mode 100644 >index 00000000000..d8c095ccdac >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage2d_pbo_cube_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_02-expected.txt >new file mode 100644 >index 00000000000..018f0db7ff5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_02.html >new file mode 100644 >index 00000000000..a2eff6b76a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage2d_pbo_cube_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_03-expected.txt >new file mode 100644 >index 00000000000..09a1affaec0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_03.html >new file mode 100644 >index 00000000000..a18a647cc1a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage2d_pbo_cube_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_04-expected.txt >new file mode 100644 >index 00000000000..3956798506e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_04.html >new file mode 100644 >index 00000000000..b37aae7e20e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage2d_pbo_cube_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_cube_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_params-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_params-expected.txt >new file mode 100644 >index 00000000000..89a616ace80 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_params-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_params.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_params.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_params.html >new file mode 100644 >index 00000000000..19367e97de8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_pbo_params.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage2d_pbo_params.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_params.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_params.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_pbo_params.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_unpack_params-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_unpack_params-expected.txt >new file mode 100644 >index 00000000000..b51f362182c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_unpack_params-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_unpack_params.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_unpack_params.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_unpack_params.html >new file mode 100644 >index 00000000000..ecb4a8febee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage2d_unpack_params.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage2d_unpack_params.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_unpack_params.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_unpack_params.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage2d_unpack_params.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_depth-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_depth-expected.txt >new file mode 100644 >index 00000000000..15c432dd0d1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_depth-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_depth.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_depth.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_depth.html >new file mode 100644 >index 00000000000..2cd5ac1e926 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_depth.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage3d_depth.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_depth.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_depth.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_depth.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_depth_pbo-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_depth_pbo-expected.txt >new file mode 100644 >index 00000000000..e83c38bf438 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_depth_pbo-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_depth_pbo.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_depth_pbo.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_depth_pbo.html >new file mode 100644 >index 00000000000..20d09f0ce70 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_depth_pbo.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage3d_depth_pbo.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_depth_pbo.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_depth_pbo.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_depth_pbo.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_00-expected.txt >new file mode 100644 >index 00000000000..538fa1a3140 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_00.html >new file mode 100644 >index 00000000000..5eb9623941b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage3d_pbo_2d_array_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_01-expected.txt >new file mode 100644 >index 00000000000..69b84334577 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_01.html >new file mode 100644 >index 00000000000..19e754e350e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage3d_pbo_2d_array_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_2d_array_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_00-expected.txt >new file mode 100644 >index 00000000000..d5fd2d0605a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_00.html >new file mode 100644 >index 00000000000..759ebd6da57 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage3d_pbo_3d_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_01-expected.txt >new file mode 100644 >index 00000000000..574d7949727 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_01.html >new file mode 100644 >index 00000000000..27fe8e23986 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage3d_pbo_3d_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_3d_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_params-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_params-expected.txt >new file mode 100644 >index 00000000000..aa910a1ebac >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_params-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_params.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_params.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_params.html >new file mode 100644 >index 00000000000..18ff0606433 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_pbo_params.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage3d_pbo_params.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_params.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_params.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_pbo_params.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_unpack_params-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_unpack_params-expected.txt >new file mode 100644 >index 00000000000..81f0336cf8a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_unpack_params-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_unpack_params.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_unpack_params.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_unpack_params.html >new file mode 100644 >index 00000000000..7f2c785609d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/teximage3d_unpack_params.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for teximage3d_unpack_params.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_unpack_params.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_unpack_params.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/teximage3d_unpack_params.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_00-expected.txt >new file mode 100644 >index 00000000000..bf2958e2ba4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_00.html >new file mode 100644 >index 00000000000..bb7f2b7f904 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage2d_format_2d_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_01-expected.txt >new file mode 100644 >index 00000000000..e3215539fb7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_01.html >new file mode 100644 >index 00000000000..5a6e6bb0beb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage2d_format_2d_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_02-expected.txt >new file mode 100644 >index 00000000000..e9c25c4c48e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_02.html >new file mode 100644 >index 00000000000..9f461239acb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage2d_format_2d_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_2d_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_00-expected.txt >new file mode 100644 >index 00000000000..909a750ac1d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_00.html >new file mode 100644 >index 00000000000..e548fc01947 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage2d_format_cube_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_01-expected.txt >new file mode 100644 >index 00000000000..e9997c2bafd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_01.html >new file mode 100644 >index 00000000000..3fadf74d887 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage2d_format_cube_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_02-expected.txt >new file mode 100644 >index 00000000000..7582b91fda7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_02.html >new file mode 100644 >index 00000000000..10fb8488df4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage2d_format_cube_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_03-expected.txt >new file mode 100644 >index 00000000000..b72fa04ddb7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_03.html >new file mode 100644 >index 00000000000..d60e0a8ba89 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage2d_format_cube_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_04-expected.txt >new file mode 100644 >index 00000000000..d98563eaec8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_04.html >new file mode 100644 >index 00000000000..788043e515b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage2d_format_cube_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_cube_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_depth_stencil-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_depth_stencil-expected.txt >new file mode 100644 >index 00000000000..5d2433a40b4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_depth_stencil-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_depth_stencil.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_depth_stencil.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_depth_stencil.html >new file mode 100644 >index 00000000000..e2376f6c3d0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_depth_stencil.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage2d_format_depth_stencil.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_depth_stencil.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_depth_stencil.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_depth_stencil.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_size-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_size-expected.txt >new file mode 100644 >index 00000000000..bf988b74c6f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_size-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_size.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_size.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_size.html >new file mode 100644 >index 00000000000..b7e473e746d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_size.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage2d_format_size.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_size.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_size.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage2d_format_size.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_00-expected.txt >new file mode 100644 >index 00000000000..f9c0c15d505 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_00.html >new file mode 100644 >index 00000000000..c5b63a6199f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage3d_format_2d_array_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_01-expected.txt >new file mode 100644 >index 00000000000..2b9f1eb40d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_01.html >new file mode 100644 >index 00000000000..1850270a039 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage3d_format_2d_array_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_02-expected.txt >new file mode 100644 >index 00000000000..396ea0661a0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_02.html >new file mode 100644 >index 00000000000..204bb4bb18e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage3d_format_2d_array_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_2d_array_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_00-expected.txt >new file mode 100644 >index 00000000000..87901891490 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_00.html >new file mode 100644 >index 00000000000..87054632d7b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage3d_format_3d_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_01-expected.txt >new file mode 100644 >index 00000000000..1763029e9ba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_01.html >new file mode 100644 >index 00000000000..122941eaad0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage3d_format_3d_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_02-expected.txt >new file mode 100644 >index 00000000000..aca2839aeb4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_02.html >new file mode 100644 >index 00000000000..cce24c8c8d2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage3d_format_3d_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_03-expected.txt >new file mode 100644 >index 00000000000..28694209842 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_03.html >new file mode 100644 >index 00000000000..d0bd6e94cd0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage3d_format_3d_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_3d_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_depth_stencil-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_depth_stencil-expected.txt >new file mode 100644 >index 00000000000..b75075a7c91 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_depth_stencil-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_depth_stencil.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_depth_stencil.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_depth_stencil.html >new file mode 100644 >index 00000000000..3c4e45f374a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_depth_stencil.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage3d_format_depth_stencil.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_depth_stencil.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_depth_stencil.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_depth_stencil.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_size-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_size-expected.txt >new file mode 100644 >index 00000000000..099aa40638a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_size-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_size.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_size.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_size.html >new file mode 100644 >index 00000000000..6c090e982d5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_size.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texstorage3d_format_size.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_size.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_size.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texstorage3d_format_size.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_align-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_align-expected.txt >new file mode 100644 >index 00000000000..ab2b778393e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_align-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_align.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_align.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_align.html >new file mode 100644 >index 00000000000..0ab42fb9b21 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_align.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage2d_align.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_align.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_align.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_align.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_depth-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_depth-expected.txt >new file mode 100644 >index 00000000000..b52e9c7480e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_depth-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_depth.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_depth.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_depth.html >new file mode 100644 >index 00000000000..5d8aef4116f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_depth.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage2d_depth.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_depth.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_depth.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_depth.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_empty_tex-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_empty_tex-expected.txt >new file mode 100644 >index 00000000000..36b19a49cac >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_empty_tex-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_empty_tex.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_empty_tex.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_empty_tex.html >new file mode 100644 >index 00000000000..2a24d19669a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_empty_tex.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage2d_empty_tex.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_empty_tex.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_empty_tex.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_empty_tex.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_00-expected.txt >new file mode 100644 >index 00000000000..bd9d58c6d3f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_00.html >new file mode 100644 >index 00000000000..f38d3dbc3bd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage2d_pbo_2d_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_01-expected.txt >new file mode 100644 >index 00000000000..89e2f528dbe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_01.html >new file mode 100644 >index 00000000000..bd294fd800e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage2d_pbo_2d_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_2d_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_00-expected.txt >new file mode 100644 >index 00000000000..920aa37be88 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_00.html >new file mode 100644 >index 00000000000..1a3153984a4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage2d_pbo_cube_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_01-expected.txt >new file mode 100644 >index 00000000000..65c2f120b77 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_01.html >new file mode 100644 >index 00000000000..c2f667dc774 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage2d_pbo_cube_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_02-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_02-expected.txt >new file mode 100644 >index 00000000000..d542b7169d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_02-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_02.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_02.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_02.html >new file mode 100644 >index 00000000000..7703e73fbfc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_02.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage2d_pbo_cube_02.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_02.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_02.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_02.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_03-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_03-expected.txt >new file mode 100644 >index 00000000000..a2fa03120e8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_03-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_03.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_03.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_03.html >new file mode 100644 >index 00000000000..9ca2cd0aacf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_03.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage2d_pbo_cube_03.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_03.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_03.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_03.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_04-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_04-expected.txt >new file mode 100644 >index 00000000000..0d5031fa8dd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_04-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_04.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_04.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_04.html >new file mode 100644 >index 00000000000..4633f36760b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_04.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage2d_pbo_cube_04.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_04.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_04.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_cube_04.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_params-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_params-expected.txt >new file mode 100644 >index 00000000000..de506ef1123 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_params-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_params.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_params.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_params.html >new file mode 100644 >index 00000000000..7922e4c32e5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_params.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage2d_pbo_params.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_params.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_params.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_pbo_params.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_unpack_params-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_unpack_params-expected.txt >new file mode 100644 >index 00000000000..a67540dc3b3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_unpack_params-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_unpack_params.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_unpack_params.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_unpack_params.html >new file mode 100644 >index 00000000000..6a6b0af8fc8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage2d_unpack_params.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage2d_unpack_params.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_unpack_params.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_unpack_params.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage2d_unpack_params.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_depth-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_depth-expected.txt >new file mode 100644 >index 00000000000..90e11b352c8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_depth-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_depth.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_depth.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_depth.html >new file mode 100644 >index 00000000000..f4fa807682c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_depth.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage3d_depth.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_depth.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_depth.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_depth.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_00-expected.txt >new file mode 100644 >index 00000000000..4e9c991ed49 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_00.html >new file mode 100644 >index 00000000000..fcb5b7abe9f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage3d_pbo_2d_array_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_01-expected.txt >new file mode 100644 >index 00000000000..474b8bdb2ac >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_01.html >new file mode 100644 >index 00000000000..ea7822e8f33 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage3d_pbo_2d_array_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_2d_array_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_00-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_00-expected.txt >new file mode 100644 >index 00000000000..be51277051d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_00-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_00.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_00.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_00.html >new file mode 100644 >index 00000000000..e257903bd3f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_00.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage3d_pbo_3d_00.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_00.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_00.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_00.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_01-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_01-expected.txt >new file mode 100644 >index 00000000000..e4d5a00f7e7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_01-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_01.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_01.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_01.html >new file mode 100644 >index 00000000000..5e2671dcbe4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_01.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage3d_pbo_3d_01.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_01.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_01.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_3d_01.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_params-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_params-expected.txt >new file mode 100644 >index 00000000000..ea9e2a02e21 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_params-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_params.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_params.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_params.html >new file mode 100644 >index 00000000000..db62a48c91d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_params.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage3d_pbo_params.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_params.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_params.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_pbo_params.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_unpack_params-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_unpack_params-expected.txt >new file mode 100644 >index 00000000000..6f1ce195373 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_unpack_params-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_unpack_params.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_unpack_params.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_unpack_params.html >new file mode 100644 >index 00000000000..0711b878ee8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturespecification/texsubimage3d_unpack_params.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texsubimage3d_unpack_params.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_unpack_params.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_unpack_params.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturespecification/texsubimage3d_unpack_params.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturestatequery-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturestatequery-expected.txt >new file mode 100644 >index 00000000000..4f6927f3c07 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturestatequery-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/texturestatequery.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturestatequery.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturestatequery.html >new file mode 100644 >index 00000000000..0d716778a0e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturestatequery.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for texturestatequery.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/texturestatequery.html">../../../resources/webgl_test_files/deqp/functional/gles3/texturestatequery.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/texturestatequery.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_r11_npot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_r11_npot-expected.txt >new file mode 100644 >index 00000000000..53694a10523 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_r11_npot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_r11_npot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_r11_npot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_r11_npot.html >new file mode 100644 >index 00000000000..f68c2badfb0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_r11_npot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for eac_r11_npot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_r11_npot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_r11_npot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_r11_npot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_r11_pot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_r11_pot-expected.txt >new file mode 100644 >index 00000000000..9f5da9d22cd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_r11_pot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_r11_pot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_r11_pot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_r11_pot.html >new file mode 100644 >index 00000000000..f3f995d6b60 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_r11_pot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for eac_r11_pot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_r11_pot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_r11_pot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_r11_pot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_rg11_npot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_rg11_npot-expected.txt >new file mode 100644 >index 00000000000..479a878183c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_rg11_npot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_rg11_npot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_rg11_npot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_rg11_npot.html >new file mode 100644 >index 00000000000..7d100aa0ee0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_rg11_npot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for eac_rg11_npot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_rg11_npot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_rg11_npot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_rg11_npot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_rg11_pot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_rg11_pot-expected.txt >new file mode 100644 >index 00000000000..2494fc7559d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_rg11_pot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_rg11_pot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_rg11_pot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_rg11_pot.html >new file mode 100644 >index 00000000000..9d9bb7c1490 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_rg11_pot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for eac_rg11_pot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_rg11_pot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_rg11_pot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_rg11_pot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_r11_npot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_r11_npot-expected.txt >new file mode 100644 >index 00000000000..bc42149ea3d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_r11_npot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_signed_r11_npot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_r11_npot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_r11_npot.html >new file mode 100644 >index 00000000000..5726668c47d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_r11_npot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for eac_signed_r11_npot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_signed_r11_npot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_signed_r11_npot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_signed_r11_npot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_r11_pot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_r11_pot-expected.txt >new file mode 100644 >index 00000000000..1543aac8fc0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_r11_pot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_signed_r11_pot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_r11_pot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_r11_pot.html >new file mode 100644 >index 00000000000..c02d6a8ed4d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_r11_pot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for eac_signed_r11_pot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_signed_r11_pot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_signed_r11_pot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_signed_r11_pot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_rg11_npot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_rg11_npot-expected.txt >new file mode 100644 >index 00000000000..67aabc757d5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_rg11_npot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_signed_rg11_npot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_rg11_npot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_rg11_npot.html >new file mode 100644 >index 00000000000..9646165247f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_rg11_npot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for eac_signed_rg11_npot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_signed_rg11_npot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_signed_rg11_npot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_signed_rg11_npot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_rg11_pot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_rg11_pot-expected.txt >new file mode 100644 >index 00000000000..3591b8ac383 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_rg11_pot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_signed_rg11_pot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_rg11_pot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_rg11_pot.html >new file mode 100644 >index 00000000000..2f6e69a2928 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/eac_signed_rg11_pot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for eac_signed_rg11_pot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_signed_rg11_pot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_signed_rg11_pot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/eac_signed_rg11_pot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_npot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_npot-expected.txt >new file mode 100644 >index 00000000000..9d4d11ee447 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_npot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_npot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_npot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_npot.html >new file mode 100644 >index 00000000000..a07458b897c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_npot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for etc2_eac_rgba8_npot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_npot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_npot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_npot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_pot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_pot-expected.txt >new file mode 100644 >index 00000000000..37942f45ef8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_pot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_pot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_pot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_pot.html >new file mode 100644 >index 00000000000..11a29ac12cb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_pot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for etc2_eac_rgba8_pot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_pot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_pot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_eac_rgba8_pot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_npot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_npot-expected.txt >new file mode 100644 >index 00000000000..62e6636e8ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_npot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_npot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_npot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_npot.html >new file mode 100644 >index 00000000000..c0c2ae6b4f9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_npot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for etc2_eac_srgb8_alpha8_npot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_npot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_npot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_npot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_pot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_pot-expected.txt >new file mode 100644 >index 00000000000..6052322ffe8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_pot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_pot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_pot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_pot.html >new file mode 100644 >index 00000000000..9f01b64d88e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_pot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for etc2_eac_srgb8_alpha8_pot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_pot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_pot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_eac_srgb8_alpha8_pot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_npot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_npot-expected.txt >new file mode 100644 >index 00000000000..5d11266fb8c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_npot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_rgb8_npot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_npot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_npot.html >new file mode 100644 >index 00000000000..75fea4a459e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_npot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for etc2_rgb8_npot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_rgb8_npot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_rgb8_npot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_rgb8_npot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_pot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_pot-expected.txt >new file mode 100644 >index 00000000000..935186b9f6d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_pot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_rgb8_pot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_pot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_pot.html >new file mode 100644 >index 00000000000..8d2f3cfcf23 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_pot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for etc2_rgb8_pot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_rgb8_pot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_rgb8_pot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_rgb8_pot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_npot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_npot-expected.txt >new file mode 100644 >index 00000000000..d1a8f2d4d68 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_npot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_npot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_npot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_npot.html >new file mode 100644 >index 00000000000..44f424d5d1f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_npot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for etc2_rgb8_punchthrough_alpha1_npot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_npot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_npot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_npot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_pot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_pot-expected.txt >new file mode 100644 >index 00000000000..8f3ad88b1df >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_pot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_pot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_pot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_pot.html >new file mode 100644 >index 00000000000..dd8f835c49d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_pot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for etc2_rgb8_punchthrough_alpha1_pot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_pot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_pot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_rgb8_punchthrough_alpha1_pot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_npot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_npot-expected.txt >new file mode 100644 >index 00000000000..f635eb054d3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_npot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_srgb8_npot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_npot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_npot.html >new file mode 100644 >index 00000000000..4b160fa3c8b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_npot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for etc2_srgb8_npot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_srgb8_npot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_srgb8_npot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_srgb8_npot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_pot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_pot-expected.txt >new file mode 100644 >index 00000000000..0998318e94c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_pot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_srgb8_pot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_pot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_pot.html >new file mode 100644 >index 00000000000..41c68372e0a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_pot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for etc2_srgb8_pot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_srgb8_pot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_srgb8_pot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_srgb8_pot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_npot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_npot-expected.txt >new file mode 100644 >index 00000000000..f72a0c633f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_npot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_npot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_npot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_npot.html >new file mode 100644 >index 00000000000..da8cf3638e4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_npot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for etc2_srgb8_punchthrough_alpha1_npot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_npot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_npot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_npot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_pot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_pot-expected.txt >new file mode 100644 >index 00000000000..7cadb8387ba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_pot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_pot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_pot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_pot.html >new file mode 100644 >index 00000000000..937401c043c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_pot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for etc2_srgb8_punchthrough_alpha1_pot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_pot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_pot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/etc2_srgb8_punchthrough_alpha1_pot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/rgba8_npot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/rgba8_npot-expected.txt >new file mode 100644 >index 00000000000..fa5f2d545e3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/rgba8_npot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/rgba8_npot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/rgba8_npot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/rgba8_npot.html >new file mode 100644 >index 00000000000..74e62e36d18 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/rgba8_npot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for rgba8_npot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/rgba8_npot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/rgba8_npot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/rgba8_npot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/rgba8_pot-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/rgba8_pot-expected.txt >new file mode 100644 >index 00000000000..dfbb0ca0bd3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/rgba8_pot-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/rgba8_pot.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/rgba8_pot.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/rgba8_pot.html >new file mode 100644 >index 00000000000..bc1fe3664e4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/texturewrap/rgba8_pot.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for rgba8_pot.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/rgba8_pot.html">../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/rgba8_pot.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/texturewrap/rgba8_pot.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_lines-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_lines-expected.txt >new file mode 100644 >index 00000000000..b8d07b3c336 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_lines-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_interleaved_lines.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_lines.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_lines.html >new file mode 100644 >index 00000000000..698fbdb2a4a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_lines.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array_element_interleaved_lines.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_interleaved_lines.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_interleaved_lines.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_interleaved_lines.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_points-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_points-expected.txt >new file mode 100644 >index 00000000000..4a38bf24753 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_points-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_interleaved_points.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_points.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_points.html >new file mode 100644 >index 00000000000..67e108b11ab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_points.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array_element_interleaved_points.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_interleaved_points.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_interleaved_points.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_interleaved_points.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_triangles-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_triangles-expected.txt >new file mode 100644 >index 00000000000..c7ccf331f56 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_triangles-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_interleaved_triangles.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_triangles.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_triangles.html >new file mode 100644 >index 00000000000..b19eeaac24a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_interleaved_triangles.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array_element_interleaved_triangles.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_interleaved_triangles.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_interleaved_triangles.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_interleaved_triangles.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_lines-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_lines-expected.txt >new file mode 100644 >index 00000000000..040d1e1c90f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_lines-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_separate_lines.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_lines.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_lines.html >new file mode 100644 >index 00000000000..0c5c91b8100 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_lines.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array_element_separate_lines.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_separate_lines.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_separate_lines.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_separate_lines.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_points-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_points-expected.txt >new file mode 100644 >index 00000000000..c9fcef48f8b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_points-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_separate_points.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_points.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_points.html >new file mode 100644 >index 00000000000..e1d98d52edd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_points.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array_element_separate_points.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_separate_points.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_separate_points.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_separate_points.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_triangles-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_triangles-expected.txt >new file mode 100644 >index 00000000000..bef03416dc1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_triangles-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_separate_triangles.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_triangles.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_triangles.html >new file mode 100644 >index 00000000000..f63bcf1aa0d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_element_separate_triangles.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array_element_separate_triangles.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_separate_triangles.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_separate_triangles.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_element_separate_triangles.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_lines-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_lines-expected.txt >new file mode 100644 >index 00000000000..4fd888185b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_lines-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_interleaved_lines.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_lines.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_lines.html >new file mode 100644 >index 00000000000..3c7ba1b8022 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_lines.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array_interleaved_lines.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_interleaved_lines.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_interleaved_lines.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_interleaved_lines.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_points-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_points-expected.txt >new file mode 100644 >index 00000000000..75e06cbc469 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_points-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_interleaved_points.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_points.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_points.html >new file mode 100644 >index 00000000000..82c316f687e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_points.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array_interleaved_points.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_interleaved_points.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_interleaved_points.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_interleaved_points.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_triangles-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_triangles-expected.txt >new file mode 100644 >index 00000000000..165aa3a46a0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_triangles-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_interleaved_triangles.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_triangles.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_triangles.html >new file mode 100644 >index 00000000000..e514380a7ad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_interleaved_triangles.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array_interleaved_triangles.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_interleaved_triangles.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_interleaved_triangles.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_interleaved_triangles.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_lines-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_lines-expected.txt >new file mode 100644 >index 00000000000..0fe59cd26bf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_lines-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_separate_lines.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_lines.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_lines.html >new file mode 100644 >index 00000000000..c486447770c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_lines.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array_separate_lines.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_separate_lines.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_separate_lines.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_separate_lines.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_points-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_points-expected.txt >new file mode 100644 >index 00000000000..266a10095ea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_points-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_separate_points.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_points.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_points.html >new file mode 100644 >index 00000000000..c240b6a5e03 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_points.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array_separate_points.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_separate_points.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_separate_points.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_separate_points.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_triangles-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_triangles-expected.txt >new file mode 100644 >index 00000000000..2ff716a273e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_triangles-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_separate_triangles.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_triangles.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_triangles.html >new file mode 100644 >index 00000000000..58198a19e42 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/array_separate_triangles.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for array_separate_triangles.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_separate_triangles.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_separate_triangles.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/array_separate_triangles.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_lines-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_lines-expected.txt >new file mode 100644 >index 00000000000..26828564bd6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_lines-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_interleaved_lines.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_lines.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_lines.html >new file mode 100644 >index 00000000000..eca26e9120b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_lines.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_types_interleaved_lines.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_interleaved_lines.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_interleaved_lines.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_interleaved_lines.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_points-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_points-expected.txt >new file mode 100644 >index 00000000000..466cbf5081c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_points-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_interleaved_points.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_points.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_points.html >new file mode 100644 >index 00000000000..924087f6ccc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_points.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_types_interleaved_points.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_interleaved_points.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_interleaved_points.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_interleaved_points.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_triangles-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_triangles-expected.txt >new file mode 100644 >index 00000000000..aaf842b73cf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_triangles-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_interleaved_triangles.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_triangles.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_triangles.html >new file mode 100644 >index 00000000000..6d146d6010e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_interleaved_triangles.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_types_interleaved_triangles.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_interleaved_triangles.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_interleaved_triangles.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_interleaved_triangles.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_lines-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_lines-expected.txt >new file mode 100644 >index 00000000000..0868497317f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_lines-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_separate_lines.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_lines.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_lines.html >new file mode 100644 >index 00000000000..64188740cc8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_lines.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_types_separate_lines.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_separate_lines.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_separate_lines.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_separate_lines.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_points-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_points-expected.txt >new file mode 100644 >index 00000000000..ace4b2f5d55 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_points-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_separate_points.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_points.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_points.html >new file mode 100644 >index 00000000000..70f5d1c42b8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_points.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_types_separate_points.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_separate_points.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_separate_points.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_separate_points.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_triangles-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_triangles-expected.txt >new file mode 100644 >index 00000000000..b7075859644 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_triangles-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_separate_triangles.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_triangles.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_triangles.html >new file mode 100644 >index 00000000000..596ab7cc50f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/basic_types_separate_triangles.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for basic_types_separate_triangles.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_separate_triangles.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_separate_triangles.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/basic_types_separate_triangles.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_centroid-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_centroid-expected.txt >new file mode 100644 >index 00000000000..5ddfcaacdc4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_centroid-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/interpolation_centroid.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_centroid.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_centroid.html >new file mode 100644 >index 00000000000..68742619b4b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_centroid.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for interpolation_centroid.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/interpolation_centroid.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/interpolation_centroid.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/interpolation_centroid.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_flat-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_flat-expected.txt >new file mode 100644 >index 00000000000..d8788e5672a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_flat-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/interpolation_flat.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_flat.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_flat.html >new file mode 100644 >index 00000000000..b17342e922e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_flat.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for interpolation_flat.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/interpolation_flat.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/interpolation_flat.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/interpolation_flat.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_smooth-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_smooth-expected.txt >new file mode 100644 >index 00000000000..96bba2c5197 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_smooth-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/interpolation_smooth.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_smooth.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_smooth.html >new file mode 100644 >index 00000000000..3a91d390e4e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/interpolation_smooth.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for interpolation_smooth.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/interpolation_smooth.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/interpolation_smooth.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/interpolation_smooth.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/point_size-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/point_size-expected.txt >new file mode 100644 >index 00000000000..81714e95c53 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/point_size-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/point_size.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/point_size.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/point_size.html >new file mode 100644 >index 00000000000..e01773a2b67 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/point_size.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for point_size.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/point_size.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/point_size.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/point_size.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/position-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/position-expected.txt >new file mode 100644 >index 00000000000..b89fcdd8957 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/position-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/position.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/position.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/position.html >new file mode 100644 >index 00000000000..fb3a3118a60 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/position.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for position.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/position.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/position.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/position.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_lines-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_lines-expected.txt >new file mode 100644 >index 00000000000..0c2a475d18c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_lines-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_interleaved_lines.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_lines.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_lines.html >new file mode 100644 >index 00000000000..1d59fdff5c9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_lines.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for random_interleaved_lines.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_interleaved_lines.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_interleaved_lines.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_interleaved_lines.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_points-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_points-expected.txt >new file mode 100644 >index 00000000000..e8f8b0a10a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_points-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_interleaved_points.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_points.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_points.html >new file mode 100644 >index 00000000000..35ff2aa33df >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_points.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for random_interleaved_points.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_interleaved_points.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_interleaved_points.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_interleaved_points.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_triangles-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_triangles-expected.txt >new file mode 100644 >index 00000000000..d4007995e13 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_triangles-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_interleaved_triangles.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_triangles.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_triangles.html >new file mode 100644 >index 00000000000..96c06d61efb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_interleaved_triangles.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for random_interleaved_triangles.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_interleaved_triangles.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_interleaved_triangles.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_interleaved_triangles.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_lines-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_lines-expected.txt >new file mode 100644 >index 00000000000..35ce93eb33d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_lines-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_separate_lines.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_lines.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_lines.html >new file mode 100644 >index 00000000000..51d220e3a8b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_lines.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for random_separate_lines.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_separate_lines.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_separate_lines.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_separate_lines.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_points-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_points-expected.txt >new file mode 100644 >index 00000000000..006a95b7cff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_points-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_separate_points.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_points.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_points.html >new file mode 100644 >index 00000000000..e7048fc6f60 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_points.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for random_separate_points.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_separate_points.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_separate_points.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_separate_points.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_triangles-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_triangles-expected.txt >new file mode 100644 >index 00000000000..473e8a987bd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_triangles-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_separate_triangles.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_triangles.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_triangles.html >new file mode 100644 >index 00000000000..89c9e76cac1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/transformfeedback/random_separate_triangles.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for random_separate_triangles.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_separate_triangles.html">../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_separate_triangles.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/transformfeedback/random_separate_triangles.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/info_query-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/info_query-expected.txt >new file mode 100644 >index 00000000000..6dd2ff88d63 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/info_query-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/uniformapi/info_query.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/info_query.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/info_query.html >new file mode 100644 >index 00000000000..0d898a62e2b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/info_query.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for info_query.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformapi/info_query.html">../../../../resources/webgl_test_files/deqp/functional/gles3/uniformapi/info_query.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformapi/info_query.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/random-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/random-expected.txt >new file mode 100644 >index 00000000000..62f91413914 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/random-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/uniformapi/random.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/random.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/random.html >new file mode 100644 >index 00000000000..ac0503d6d14 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/random.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for random.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformapi/random.html">../../../../resources/webgl_test_files/deqp/functional/gles3/uniformapi/random.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformapi/random.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/value_assigned-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/value_assigned-expected.txt >new file mode 100644 >index 00000000000..8c7d02806a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/value_assigned-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/uniformapi/value_assigned.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/value_assigned.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/value_assigned.html >new file mode 100644 >index 00000000000..492a45c0e79 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/value_assigned.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for value_assigned.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformapi/value_assigned.html">../../../../resources/webgl_test_files/deqp/functional/gles3/uniformapi/value_assigned.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformapi/value_assigned.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/value_initial-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/value_initial-expected.txt >new file mode 100644 >index 00000000000..4f774d75b58 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/value_initial-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/uniformapi/value_initial.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/value_initial.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/value_initial.html >new file mode 100644 >index 00000000000..1aa4a82c9ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformapi/value_initial.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for value_initial.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformapi/value_initial.html">../../../../resources/webgl_test_files/deqp/functional/gles3/uniformapi/value_initial.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformapi/value_initial.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/instance_array_basic_type-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/instance_array_basic_type-expected.txt >new file mode 100644 >index 00000000000..7cfc39d26ab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/instance_array_basic_type-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/instance_array_basic_type.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/instance_array_basic_type.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/instance_array_basic_type.html >new file mode 100644 >index 00000000000..6a4b7633dd0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/instance_array_basic_type.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for instance_array_basic_type.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/instance_array_basic_type.html">../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/instance_array_basic_type.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/instance_array_basic_type.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/multi_basic_types-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/multi_basic_types-expected.txt >new file mode 100644 >index 00000000000..33092e95e20 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/multi_basic_types-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/multi_basic_types.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/multi_basic_types.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/multi_basic_types.html >new file mode 100644 >index 00000000000..bc3e15084ad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/multi_basic_types.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multi_basic_types.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/multi_basic_types.html">../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/multi_basic_types.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/multi_basic_types.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/multi_nested_struct-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/multi_nested_struct-expected.txt >new file mode 100644 >index 00000000000..c9176b6a9d0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/multi_nested_struct-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/multi_nested_struct.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/multi_nested_struct.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/multi_nested_struct.html >new file mode 100644 >index 00000000000..0866aa3cdab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/multi_nested_struct.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multi_nested_struct.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/multi_nested_struct.html">../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/multi_nested_struct.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/multi_nested_struct.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/random-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/random-expected.txt >new file mode 100644 >index 00000000000..23169760f51 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/random-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/random.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/random.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/random.html >new file mode 100644 >index 00000000000..39e6e9c5602 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/random.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for random.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/random.html">../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/random.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/random.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_basic_array-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_basic_array-expected.txt >new file mode 100644 >index 00000000000..4ac7f4cbaea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_basic_array-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_basic_array.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_basic_array.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_basic_array.html >new file mode 100644 >index 00000000000..cdb342e1e78 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_basic_array.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_basic_array.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_basic_array.html">../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_basic_array.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_basic_array.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_basic_type-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_basic_type-expected.txt >new file mode 100644 >index 00000000000..c7dd751d190 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_basic_type-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_basic_type.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_basic_type.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_basic_type.html >new file mode 100644 >index 00000000000..3855989a519 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_basic_type.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_basic_type.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_basic_type.html">../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_basic_type.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_basic_type.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_nested_struct-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_nested_struct-expected.txt >new file mode 100644 >index 00000000000..e0eba29b36f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_nested_struct-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_nested_struct.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_nested_struct.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_nested_struct.html >new file mode 100644 >index 00000000000..43817ea0d88 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_nested_struct.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_nested_struct.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_nested_struct.html">../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_nested_struct.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_nested_struct.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_nested_struct_array-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_nested_struct_array-expected.txt >new file mode 100644 >index 00000000000..9c12b224f9d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_nested_struct_array-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_nested_struct_array.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_nested_struct_array.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_nested_struct_array.html >new file mode 100644 >index 00000000000..ffca65ce6d8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_nested_struct_array.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_nested_struct_array.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_nested_struct_array.html">../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_nested_struct_array.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_nested_struct_array.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_struct-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_struct-expected.txt >new file mode 100644 >index 00000000000..154bb21cd8d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_struct-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_struct.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_struct.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_struct.html >new file mode 100644 >index 00000000000..ec1a14ed57f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_struct.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_struct.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_struct.html">../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_struct.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_struct.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_struct_array-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_struct_array-expected.txt >new file mode 100644 >index 00000000000..91f7bf5d68f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_struct_array-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_struct_array.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_struct_array.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_struct_array.html >new file mode 100644 >index 00000000000..4e51dfb293d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/uniformbuffers/single_struct_array.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_struct_array.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_struct_array.html">../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_struct_array.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/uniformbuffers/single_struct_array.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrayobject-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrayobject-expected.txt >new file mode 100644 >index 00000000000..8481086999a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrayobject-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrayobject.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrayobject.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrayobject.html >new file mode 100644 >index 00000000000..c49ed7e4221 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrayobject.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for vertexarrayobject.html</title> >+<script type="text/javascript" src="../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrayobject.html">../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrayobject.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrayobject.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.count-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.count-expected.txt >new file mode 100644 >index 00000000000..6c4317b8041 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.count-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/multiple_attributes.count.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.count.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.count.html >new file mode 100644 >index 00000000000..93022cd5a22 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.count.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multiple_attributes.count.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/multiple_attributes.count.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/multiple_attributes.count.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/multiple_attributes.count.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.output-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.output-expected.txt >new file mode 100644 >index 00000000000..7bdbdae92d4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.output-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/multiple_attributes.output.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.output.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.output.html >new file mode 100644 >index 00000000000..a2a46974963 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.output.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multiple_attributes.output.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/multiple_attributes.output.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/multiple_attributes.output.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/multiple_attributes.output.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.storage-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.storage-expected.txt >new file mode 100644 >index 00000000000..743be11159c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.storage-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/multiple_attributes.storage.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.storage.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.storage.html >new file mode 100644 >index 00000000000..297bd141c56 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.storage.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multiple_attributes.storage.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/multiple_attributes.storage.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/multiple_attributes.storage.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/multiple_attributes.storage.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.stride-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.stride-expected.txt >new file mode 100644 >index 00000000000..bf02200f3f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.stride-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/multiple_attributes.stride.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.stride.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.stride.html >new file mode 100644 >index 00000000000..444096274ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/multiple_attributes.stride.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for multiple_attributes.stride.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/multiple_attributes.stride.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/multiple_attributes.stride.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/multiple_attributes.stride.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.first-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.first-expected.txt >new file mode 100644 >index 00000000000..397018457d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.first-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.first.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.first.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.first.html >new file mode 100644 >index 00000000000..419db26b7a9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.first.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.first.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.first.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.first.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.first.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.normalize-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.normalize-expected.txt >new file mode 100644 >index 00000000000..afc68f51c1b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.normalize-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.normalize.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.normalize.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.normalize.html >new file mode 100644 >index 00000000000..f8880df251f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.normalize.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.normalize.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.normalize.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.normalize.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.normalize.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.offset-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.offset-expected.txt >new file mode 100644 >index 00000000000..6b247846ca2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.offset-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.offset.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.offset.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.offset.html >new file mode 100644 >index 00000000000..207c5e53066 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.offset.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.offset.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.offset.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.offset.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.offset.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.byte-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.byte-expected.txt >new file mode 100644 >index 00000000000..e86369586e5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.byte.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.byte.html >new file mode 100644 >index 00000000000..d38f03af6f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.output_type.byte.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.byte.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.float-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.float-expected.txt >new file mode 100644 >index 00000000000..22d786d31da >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.float-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.float.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.float.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.float.html >new file mode 100644 >index 00000000000..cc443fed922 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.float.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.output_type.float.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.float.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.float.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.float.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.half-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.half-expected.txt >new file mode 100644 >index 00000000000..5ef86ad377e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.half-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.half.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.half.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.half.html >new file mode 100644 >index 00000000000..e2e619b7833 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.half.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.output_type.half.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.half.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.half.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.half.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int-expected.txt >new file mode 100644 >index 00000000000..f1651ced685 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int.html >new file mode 100644 >index 00000000000..0ec81350231 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.output_type.int.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int_2_10_10_10-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int_2_10_10_10-expected.txt >new file mode 100644 >index 00000000000..a37480bb404 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int_2_10_10_10-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int_2_10_10_10.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int_2_10_10_10.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int_2_10_10_10.html >new file mode 100644 >index 00000000000..7e923184ea4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int_2_10_10_10.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.output_type.int_2_10_10_10.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int_2_10_10_10.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int_2_10_10_10.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.int_2_10_10_10.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.short-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.short-expected.txt >new file mode 100644 >index 00000000000..ca2c6b3f9fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.short-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.short.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.short.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.short.html >new file mode 100644 >index 00000000000..87a3afa869a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.short.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.output_type.short.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.short.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.short.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.short.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_byte-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_byte-expected.txt >new file mode 100644 >index 00000000000..6c7c0703156 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_byte-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_byte.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_byte.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_byte.html >new file mode 100644 >index 00000000000..73293dc4e72 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_byte.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.output_type.unsigned_byte.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_byte.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_byte.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_byte.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int-expected.txt >new file mode 100644 >index 00000000000..f82b8ce368f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int.html >new file mode 100644 >index 00000000000..9d404a1158b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.output_type.unsigned_int.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int_2_10_10_10-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int_2_10_10_10-expected.txt >new file mode 100644 >index 00000000000..c392da9d24b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int_2_10_10_10-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int_2_10_10_10.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int_2_10_10_10.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int_2_10_10_10.html >new file mode 100644 >index 00000000000..cf9c0d5ae50 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int_2_10_10_10.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.output_type.unsigned_int_2_10_10_10.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int_2_10_10_10.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int_2_10_10_10.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_int_2_10_10_10.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_short-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_short-expected.txt >new file mode 100644 >index 00000000000..280141aa2b0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_short-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_short.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_short.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_short.html >new file mode 100644 >index 00000000000..3d7272a925b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_short.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.output_type.unsigned_short.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_short.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_short.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.output_type.unsigned_short.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.stride-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.stride-expected.txt >new file mode 100644 >index 00000000000..070b43f9493 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.stride-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.stride.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.stride.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.stride.html >new file mode 100644 >index 00000000000..09ad96b9445 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.stride.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.stride.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.stride.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.stride.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.stride.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_copy-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_copy-expected.txt >new file mode 100644 >index 00000000000..be332d87de9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_copy-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_copy.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_copy.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_copy.html >new file mode 100644 >index 00000000000..93284397a5e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_copy.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.usage.dynamic_copy.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_copy.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_copy.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_copy.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_draw-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_draw-expected.txt >new file mode 100644 >index 00000000000..a66881221fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_draw-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_draw.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_draw.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_draw.html >new file mode 100644 >index 00000000000..2fcfa73ea46 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_draw.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.usage.dynamic_draw.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_draw.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_draw.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_draw.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_read-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_read-expected.txt >new file mode 100644 >index 00000000000..48e438892c3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_read-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_read.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_read.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_read.html >new file mode 100644 >index 00000000000..1e69f3f9211 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_read.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.usage.dynamic_read.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_read.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_read.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.dynamic_read.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_copy-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_copy-expected.txt >new file mode 100644 >index 00000000000..397140018dc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_copy-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_copy.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_copy.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_copy.html >new file mode 100644 >index 00000000000..33eb7ee2e8d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_copy.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.usage.static_copy.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_copy.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_copy.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_copy.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_draw-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_draw-expected.txt >new file mode 100644 >index 00000000000..1a751fb87ea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_draw-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_draw.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_draw.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_draw.html >new file mode 100644 >index 00000000000..0574e9b38eb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_draw.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.usage.static_draw.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_draw.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_draw.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_draw.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_read-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_read-expected.txt >new file mode 100644 >index 00000000000..4ab947db376 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_read-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_read.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_read.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_read.html >new file mode 100644 >index 00000000000..d442831ee5e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_read.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.usage.static_read.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_read.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_read.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.static_read.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_copy-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_copy-expected.txt >new file mode 100644 >index 00000000000..31b7c73a4f1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_copy-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_copy.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_copy.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_copy.html >new file mode 100644 >index 00000000000..f135fce87a6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_copy.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.usage.stream_copy.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_copy.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_copy.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_copy.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_draw-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_draw-expected.txt >new file mode 100644 >index 00000000000..2698eb0a52e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_draw-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_draw.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_draw.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_draw.html >new file mode 100644 >index 00000000000..24de79b75ba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_draw.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.usage.stream_draw.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_draw.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_draw.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_draw.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_read-expected.txt b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_read-expected.txt >new file mode 100644 >index 00000000000..eb077c385f3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_read-expected.txt >@@ -0,0 +1,5 @@ >+This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL. >+ >+Test: ../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_read.html >+PASS >+ >diff --git a/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_read.html b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_read.html >new file mode 100644 >index 00000000000..a6affa8a012 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_read.html >@@ -0,0 +1,18 @@ >+<!-- This file is auto-generated by generate-webgl-tests.py. DO NOT EDIT --> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Test Wrapper for single_attribute.usage.stream_read.html</title> >+<script type="text/javascript" src="../../../../../resources/js-test-pre.js"></script> >+<script type="text/javascript" src="../../../../resources/webkit-webgl-test-harness.js"></script> >+</head> >+<body> >+<p>This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.</p> >+Test: <a href="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_read.html">../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_read.html</a> >+<div id="result"></div> >+<div id="iframe"> >+<iframe src="../../../../resources/webgl_test_files/deqp/functional/gles3/vertexarrays/single_attribute.usage.stream_read.html" width="800" height="600"></iframe> >+</div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/00_test_list.txt >new file mode 100644 >index 00000000000..3fde5ef8de5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/00_test_list.txt >@@ -0,0 +1,7 @@ >+// files that end in .txt list other tests >+// other lines are assumed to be .html files >+ >+conformance/00_test_list.txt >+conformance/more/00_test_list.txt >+deqp/00_test_list.txt >+--min-version 2.0.0 conformance2/00_test_list.txt >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/CONFORMANCE_RULES.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/CONFORMANCE_RULES.txt >new file mode 100644 >index 00000000000..c267d34b083 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/CONFORMANCE_RULES.txt >@@ -0,0 +1,127 @@ >+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. >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/README.md b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/README.md >new file mode 100644 >index 00000000000..9574d8458e8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/README.md >@@ -0,0 +1,80 @@ >+Welcome to the WebGL Conformance Test Suite >+=========================================== >+ >+Note: Before adding a new test or editing an existing test >+[please read these guidelines](test-guidelines.md). >+ >+This is the WebGL conformance test suite. You can find a the current "live" >+version at [https://www.khronos.org/registry/webgl/sdk/tests/webgl-conformance-tests.html](https://www.khronos.org/registry/webgl/sdk/tests/webgl-conformance-tests.html) >+ >+NOTE TO USERS: Unless you are a WebGL implementor, there is no need to submit >+a conformance result using this process. Should you discover bugs in your >+browser's WebGL implementation, either via this test suite or otherwise, >+please report them through your browser vendor's bug tracking system. >+ >+FOR WEBGL IMPLEMENTORS: Please follow the instructions below to create >+a formal conformance submission. >+ >+1. Open webgl-conformance-tests.html in your target browser >+ >+2. Press the "run tests" button >+ >+3. At the end of the run, press "display text summary" >+ >+4. Verify that the User Agent and WebGL renderer strings identify your browser and target correctly. >+ >+5. Copy the contents of the text summary (starting with "WebGL Conformance Test Results") and send via email to >+ webgl_conformance_submissions@khronos.org >+ >+Please see CONFORMANCE_RULES.txt in this directory for guidelines >+about what constitutes a conformant WebGL implementation. >+ >+Usage Notes: >+------------ >+ >+There are various URL options you can pass in. >+ >+ run: Set to 1 to start the tests automatically >+ >+ Example: webgl-conformance-tests.html?run=1 >+ >+ version: Set to the version of the harness you wish to run. Tests >+ at this version or below will be run >+ >+ Example: webgl-conformance-tests.html?version=1.3.2 >+ >+ minVersion: Set to the minimum version of each test to include. Only tests >+ at this version or above will be included. >+ >+ Example: webgl-conformance-tests.html?minVersion=1.3.2 >+ >+ fast: Only run tests not marked with --slow >+ >+ Example: webgl-conformance-tests.html?fast=true >+ >+ skip: Comma separated list of regular expressions of which tests to skip. >+ >+ Example: webgl-conformance-tests.html?skip=glsl,.*destruction\.html >+ >+ include: Comma separated list of regular expressions of which tests to include. >+ >+ Example: webgl-conformance-tests.html?include=glsl,.*destruction\.html >+ >+ frames: The number of iframes to use to run tests in parallel. >+ >+ Example: webgl-conformance-tests.html?frames=8 >+ >+ Note the tests are not required to run with anything other than frames = 1. >+ >+History >+------- >+ >+The dates below are when work on the conformance suite version was started. >+ >+- 2011/02/24: Version 1.0.0 >+- 2012/02/23: Version 1.0.1 >+- 2012/03/20: Version 1.0.2 >+- 2013/02/14: Version 1.0.3 >+- 2013/10/11: Version 2.0.0 >+- 2014/11/14: Version 1.0.4 >+- 2016/11/21: Version 2.0.1 >\ No newline at end of file >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/AUTHORS b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/AUTHORS >new file mode 100644 >index 00000000000..d5fa71f80eb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/AUTHORS >@@ -0,0 +1,19 @@ >+# This is a list of contributors to the Closure Library. >+ >+# Names should be added to this file like so: >+# Name or Organization <email address> >+ >+Google Inc. >+Stellar Science Ltd. >+Mohamed Mansour <hello@mohamedmansour.com> >+Bjorn Tipling <bjorn.tipling@gmail.com> >+SameGoal LLC <help@samegoal.com> >+Guido Tapia <guido.tapia@gmail.com> >+Andrew Mattie <amattie@gmail.com> >+Ilia Mirkin <ibmirkin@gmail.com> >+Ivan Kozik <ivan.kozik@gmail.com> >+Rich Dougherty <rich@rd.gen.nz> >+Chad Killingsworth <chadkillingsworth@missouristate.edu> >+Dan Pupius <dan.pupius@gmail.com> >+Mike Dunn <dunn74@gmail.com> >+Kengo Toda <skypencil@gmail.com> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/CONTRIBUTING b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/CONTRIBUTING >new file mode 100644 >index 00000000000..bab94181df2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/CONTRIBUTING >@@ -0,0 +1,48 @@ >+Closure Library welcomes patches/pulls for features and bugfixes. >+ >+For contributors inside Google, follow the instructions given here: >+http://go/closure-contributors >+ >+For contributors external to Google, follow the instructions given here: >+ >+Notes on Contributions to Closure Library >+ >+Google Individual Contributor License >+ >+In all cases, contributors must sign a contributor license agreement, >+either for an individual or corporation, before a patch can be >+accepted. Please fill out the agreement for an individual or a >+corporation, as appropriate. >+ >+https://developers.google.com/open-source/cla/individual >+https://developers.google.com/open-source/cla/corporate >+ >+If you or your organization is not listed there already, you should >+add an entry to the AUTHORS file as part of your patch. >+ >+If you plan to add a significant component or large chunk of code, it >+is recommended to bring it up on the discussion list for a design >+discussion before writing code. >+ >+If appropriate, write a unit test that demonstrates your patch. Tests are the >+best way to ensure that future contributors do not break your code >+accidentally. >+ >+To change the Closure Library source, you must submit a pull request >+in GitHub. See the GitHub documentation here: >+ >+https://help.github.com/categories/63/articles >+ >+Closure Library developers monitor outstanding pull requests. They may >+request changes on the pull request before accepting. They will also >+verify that the CLA has been signed. >+ >+Oftentimes, the pull request will not be directly merged, but patched to >+the internal Google codebase to verify that unit and integration tests >+will Closure pass before submitting (and optionally make changes to >+the patch to match style, fix text, or to make the code or comments >+clearer). In this case, the issue associated with the pull request >+will be closed when the patch pushed to the repository via the MOE >+(Make Open Easy) system. >+ >+https://code.google.com/p/moe-java/ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/LICENSE b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/LICENSE >new file mode 100644 >index 00000000000..d9a10c0d8e8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/LICENSE >@@ -0,0 +1,176 @@ >+ Apache License >+ Version 2.0, January 2004 >+ http://www.apache.org/licenses/ >+ >+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION >+ >+ 1. Definitions. >+ >+ "License" shall mean the terms and conditions for use, reproduction, >+ and distribution as defined by Sections 1 through 9 of this document. >+ >+ "Licensor" shall mean the copyright owner or entity authorized by >+ the copyright owner that is granting the License. >+ >+ "Legal Entity" shall mean the union of the acting entity and all >+ other entities that control, are controlled by, or are under common >+ control with that entity. For the purposes of this definition, >+ "control" means (i) the power, direct or indirect, to cause the >+ direction or management of such entity, whether by contract or >+ otherwise, or (ii) ownership of fifty percent (50%) or more of the >+ outstanding shares, or (iii) beneficial ownership of such entity. >+ >+ "You" (or "Your") shall mean an individual or Legal Entity >+ exercising permissions granted by this License. >+ >+ "Source" form shall mean the preferred form for making modifications, >+ including but not limited to software source code, documentation >+ source, and configuration files. >+ >+ "Object" form shall mean any form resulting from mechanical >+ transformation or translation of a Source form, including but >+ not limited to compiled object code, generated documentation, >+ and conversions to other media types. >+ >+ "Work" shall mean the work of authorship, whether in Source or >+ Object form, made available under the License, as indicated by a >+ copyright notice that is included in or attached to the work >+ (an example is provided in the Appendix below). >+ >+ "Derivative Works" shall mean any work, whether in Source or Object >+ form, that is based on (or derived from) the Work and for which the >+ editorial revisions, annotations, elaborations, or other modifications >+ represent, as a whole, an original work of authorship. For the purposes >+ of this License, Derivative Works shall not include works that remain >+ separable from, or merely link (or bind by name) to the interfaces of, >+ the Work and Derivative Works thereof. >+ >+ "Contribution" shall mean any work of authorship, including >+ the original version of the Work and any modifications or additions >+ to that Work or Derivative Works thereof, that is intentionally >+ submitted to Licensor for inclusion in the Work by the copyright owner >+ or by an individual or Legal Entity authorized to submit on behalf of >+ the copyright owner. For the purposes of this definition, "submitted" >+ means any form of electronic, verbal, or written communication sent >+ to the Licensor or its representatives, including but not limited to >+ communication on electronic mailing lists, source code control systems, >+ and issue tracking systems that are managed by, or on behalf of, the >+ Licensor for the purpose of discussing and improving the Work, but >+ excluding communication that is conspicuously marked or otherwise >+ designated in writing by the copyright owner as "Not a Contribution." >+ >+ "Contributor" shall mean Licensor and any individual or Legal Entity >+ on behalf of whom a Contribution has been received by Licensor and >+ subsequently incorporated within the Work. >+ >+ 2. Grant of Copyright License. Subject to the terms and conditions of >+ this License, each Contributor hereby grants to You a perpetual, >+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable >+ copyright license to reproduce, prepare Derivative Works of, >+ publicly display, publicly perform, sublicense, and distribute the >+ Work and such Derivative Works in Source or Object form. >+ >+ 3. Grant of Patent License. Subject to the terms and conditions of >+ this License, each Contributor hereby grants to You a perpetual, >+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable >+ (except as stated in this section) patent license to make, have made, >+ use, offer to sell, sell, import, and otherwise transfer the Work, >+ where such license applies only to those patent claims licensable >+ by such Contributor that are necessarily infringed by their >+ Contribution(s) alone or by combination of their Contribution(s) >+ with the Work to which such Contribution(s) was submitted. If You >+ institute patent litigation against any entity (including a >+ cross-claim or counterclaim in a lawsuit) alleging that the Work >+ or a Contribution incorporated within the Work constitutes direct >+ or contributory patent infringement, then any patent licenses >+ granted to You under this License for that Work shall terminate >+ as of the date such litigation is filed. >+ >+ 4. Redistribution. You may reproduce and distribute copies of the >+ Work or Derivative Works thereof in any medium, with or without >+ modifications, and in Source or Object form, provided that You >+ meet the following conditions: >+ >+ (a) You must give any other recipients of the Work or >+ Derivative Works a copy of this License; and >+ >+ (b) You must cause any modified files to carry prominent notices >+ stating that You changed the files; and >+ >+ (c) You must retain, in the Source form of any Derivative Works >+ that You distribute, all copyright, patent, trademark, and >+ attribution notices from the Source form of the Work, >+ excluding those notices that do not pertain to any part of >+ the Derivative Works; and >+ >+ (d) If the Work includes a "NOTICE" text file as part of its >+ distribution, then any Derivative Works that You distribute must >+ include a readable copy of the attribution notices contained >+ within such NOTICE file, excluding those notices that do not >+ pertain to any part of the Derivative Works, in at least one >+ of the following places: within a NOTICE text file distributed >+ as part of the Derivative Works; within the Source form or >+ documentation, if provided along with the Derivative Works; or, >+ within a display generated by the Derivative Works, if and >+ wherever such third-party notices normally appear. The contents >+ of the NOTICE file are for informational purposes only and >+ do not modify the License. You may add Your own attribution >+ notices within Derivative Works that You distribute, alongside >+ or as an addendum to the NOTICE text from the Work, provided >+ that such additional attribution notices cannot be construed >+ as modifying the License. >+ >+ You may add Your own copyright statement to Your modifications and >+ may provide additional or different license terms and conditions >+ for use, reproduction, or distribution of Your modifications, or >+ for any such Derivative Works as a whole, provided Your use, >+ reproduction, and distribution of the Work otherwise complies with >+ the conditions stated in this License. >+ >+ 5. Submission of Contributions. Unless You explicitly state otherwise, >+ any Contribution intentionally submitted for inclusion in the Work >+ by You to the Licensor shall be under the terms and conditions of >+ this License, without any additional terms or conditions. >+ Notwithstanding the above, nothing herein shall supersede or modify >+ the terms of any separate license agreement you may have executed >+ with Licensor regarding such Contributions. >+ >+ 6. Trademarks. This License does not grant permission to use the trade >+ names, trademarks, service marks, or product names of the Licensor, >+ except as required for reasonable and customary use in describing the >+ origin of the Work and reproducing the content of the NOTICE file. >+ >+ 7. Disclaimer of Warranty. Unless required by applicable law or >+ agreed to in writing, Licensor provides the Work (and each >+ Contributor provides its Contributions) on an "AS IS" BASIS, >+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or >+ implied, including, without limitation, any warranties or conditions >+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A >+ PARTICULAR PURPOSE. You are solely responsible for determining the >+ appropriateness of using or redistributing the Work and assume any >+ risks associated with Your exercise of permissions under this License. >+ >+ 8. Limitation of Liability. In no event and under no legal theory, >+ whether in tort (including negligence), contract, or otherwise, >+ unless required by applicable law (such as deliberate and grossly >+ negligent acts) or agreed to in writing, shall any Contributor be >+ liable to You for damages, including any direct, indirect, special, >+ incidental, or consequential damages of any character arising as a >+ result of this License or out of the use or inability to use the >+ Work (including but not limited to damages for loss of goodwill, >+ work stoppage, computer failure or malfunction, or any and all >+ other commercial damages or losses), even if such Contributor >+ has been advised of the possibility of such damages. >+ >+ 9. Accepting Warranty or Additional Liability. While redistributing >+ the Work or Derivative Works thereof, You may choose to offer, >+ and charge a fee for, acceptance of support, warranty, indemnity, >+ or other liability obligations and/or rights consistent with this >+ License. However, in accepting such obligations, You may act only >+ on Your own behalf and on Your sole responsibility, not on behalf >+ of any other Contributor, and only if You agree to indemnify, >+ defend, and hold each Contributor harmless for any liability >+ incurred by, or claims asserted against, such Contributor by reason >+ of your accepting any such warranty or additional liability. >+ >+ END OF TERMS AND CONDITIONS >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/README-Khronos.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/README-Khronos.txt >new file mode 100644 >index 00000000000..64d81e51cd7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/README-Khronos.txt >@@ -0,0 +1,20 @@ >+This is a partial snapshot of the Closure library workspace from: >+ >+ https://github.com/google/closure-library >+ >+It contains only the portions needed to type check the ported dEQP >+tests, namely: >+ >+ closure/goog/base.js >+ closure/goog/deps.js >+ >+and supporting scripts in closure/bin/ . >+ >+The current version snapshotted here is: >+ >+----- >+commit 57bdfe0093cc158fb3a58d2c5f7d75ece8c4b45b >+Author: Nathan Naze <nanaze@gmail.com> >+Date: Fri Apr 24 18:38:26 2015 -0400 >+ >+ fix bad merge >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/README.md b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/README.md >new file mode 100644 >index 00000000000..d794d1b9b2d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/README.md >@@ -0,0 +1,9 @@ >+# Closure Library >+ >+Closure Library is a powerful, low-level JavaScript library designed >+for building complex and scalable web applications. It is used by many >+Google web applications, such as Gmail and Google Docs. >+ >+For more information, visit the >+[Google Developers](https://developers.google.com/closure/library) or >+[GitHub](https://github.com/google/closure-library) sites. >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/closure/bin/calcdeps.py b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/closure/bin/calcdeps.py >new file mode 100755 >index 00000000000..9cb1a6db062 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/closure/bin/calcdeps.py >@@ -0,0 +1,590 @@ >+#!/usr/bin/env python >+# >+# Copyright 2006 The Closure Library Authors. All Rights Reserved. >+# >+# Licensed under the Apache License, Version 2.0 (the "License"); >+# you may not use this file except in compliance with the License. >+# You may obtain a copy of the License at >+# >+# http://www.apache.org/licenses/LICENSE-2.0 >+# >+# Unless required by applicable law or agreed to in writing, software >+# distributed under the License is distributed on an "AS-IS" BASIS, >+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >+# See the License for the specific language governing permissions and >+# limitations under the License. >+ >+ >+"""Calculates JavaScript dependencies without requiring Google's build system. >+ >+This tool is deprecated and is provided for legacy users. >+See build/closurebuilder.py and build/depswriter.py for the current tools. >+ >+It iterates over a number of search paths and builds a dependency tree. With >+the inputs provided, it walks the dependency tree and outputs all the files >+required for compilation. >+""" >+ >+ >+ >+ >+ >+try: >+ import distutils.version >+except ImportError: >+ # distutils is not available in all environments >+ distutils = None >+ >+import logging >+import optparse >+import os >+import re >+import subprocess >+import sys >+ >+ >+_BASE_REGEX_STRING = '^\s*goog\.%s\(\s*[\'"](.+)[\'"]\s*\)' >+req_regex = re.compile(_BASE_REGEX_STRING % 'require') >+prov_regex = re.compile(_BASE_REGEX_STRING % 'provide') >+ns_regex = re.compile('^ns:((\w+\.)*(\w+))$') >+version_regex = re.compile('[\.0-9]+') >+ >+ >+def IsValidFile(ref): >+ """Returns true if the provided reference is a file and exists.""" >+ return os.path.isfile(ref) >+ >+ >+def IsJsFile(ref): >+ """Returns true if the provided reference is a Javascript file.""" >+ return ref.endswith('.js') >+ >+ >+def IsNamespace(ref): >+ """Returns true if the provided reference is a namespace.""" >+ return re.match(ns_regex, ref) is not None >+ >+ >+def IsDirectory(ref): >+ """Returns true if the provided reference is a directory.""" >+ return os.path.isdir(ref) >+ >+ >+def ExpandDirectories(refs): >+ """Expands any directory references into inputs. >+ >+ Description: >+ Looks for any directories in the provided references. Found directories >+ are recursively searched for .js files, which are then added to the result >+ list. >+ >+ Args: >+ refs: a list of references such as files, directories, and namespaces >+ >+ Returns: >+ A list of references with directories removed and replaced by any >+ .js files that are found in them. Also, the paths will be normalized. >+ """ >+ result = [] >+ for ref in refs: >+ if IsDirectory(ref): >+ # Disable 'Unused variable' for subdirs >+ # pylint: disable=unused-variable >+ for (directory, subdirs, filenames) in os.walk(ref): >+ for filename in filenames: >+ if IsJsFile(filename): >+ result.append(os.path.join(directory, filename)) >+ else: >+ result.append(ref) >+ return map(os.path.normpath, result) >+ >+ >+class DependencyInfo(object): >+ """Represents a dependency that is used to build and walk a tree.""" >+ >+ def __init__(self, filename): >+ self.filename = filename >+ self.provides = [] >+ self.requires = [] >+ >+ def __str__(self): >+ return '%s Provides: %s Requires: %s' % (self.filename, >+ repr(self.provides), >+ repr(self.requires)) >+ >+ >+def BuildDependenciesFromFiles(files): >+ """Build a list of dependencies from a list of files. >+ >+ Description: >+ Takes a list of files, extracts their provides and requires, and builds >+ out a list of dependency objects. >+ >+ Args: >+ files: a list of files to be parsed for goog.provides and goog.requires. >+ >+ Returns: >+ A list of dependency objects, one for each file in the files argument. >+ """ >+ result = [] >+ filenames = set() >+ for filename in files: >+ if filename in filenames: >+ continue >+ >+ # Python 3 requires the file encoding to be specified >+ if (sys.version_info[0] < 3): >+ file_handle = open(filename, 'r') >+ else: >+ file_handle = open(filename, 'r', encoding='utf8') >+ >+ try: >+ dep = CreateDependencyInfo(filename, file_handle) >+ result.append(dep) >+ finally: >+ file_handle.close() >+ >+ filenames.add(filename) >+ >+ return result >+ >+ >+def CreateDependencyInfo(filename, source): >+ """Create dependency info. >+ >+ Args: >+ filename: Filename for source. >+ source: File-like object containing source. >+ >+ Returns: >+ A DependencyInfo object with provides and requires filled. >+ """ >+ dep = DependencyInfo(filename) >+ for line in source: >+ if re.match(req_regex, line): >+ dep.requires.append(re.search(req_regex, line).group(1)) >+ if re.match(prov_regex, line): >+ dep.provides.append(re.search(prov_regex, line).group(1)) >+ return dep >+ >+ >+def BuildDependencyHashFromDependencies(deps): >+ """Builds a hash for searching dependencies by the namespaces they provide. >+ >+ Description: >+ Dependency objects can provide multiple namespaces. This method enumerates >+ the provides of each dependency and adds them to a hash that can be used >+ to easily resolve a given dependency by a namespace it provides. >+ >+ Args: >+ deps: a list of dependency objects used to build the hash. >+ >+ Raises: >+ Exception: If a multiple files try to provide the same namepace. >+ >+ Returns: >+ A hash table { namespace: dependency } that can be used to resolve a >+ dependency by a namespace it provides. >+ """ >+ dep_hash = {} >+ for dep in deps: >+ for provide in dep.provides: >+ if provide in dep_hash: >+ raise Exception('Duplicate provide (%s) in (%s, %s)' % ( >+ provide, >+ dep_hash[provide].filename, >+ dep.filename)) >+ dep_hash[provide] = dep >+ return dep_hash >+ >+ >+def CalculateDependencies(paths, inputs): >+ """Calculates the dependencies for given inputs. >+ >+ Description: >+ This method takes a list of paths (files, directories) and builds a >+ searchable data structure based on the namespaces that each .js file >+ provides. It then parses through each input, resolving dependencies >+ against this data structure. The final output is a list of files, >+ including the inputs, that represent all of the code that is needed to >+ compile the given inputs. >+ >+ Args: >+ paths: the references (files, directories) that are used to build the >+ dependency hash. >+ inputs: the inputs (files, directories, namespaces) that have dependencies >+ that need to be calculated. >+ >+ Raises: >+ Exception: if a provided input is invalid. >+ >+ Returns: >+ A list of all files, including inputs, that are needed to compile the given >+ inputs. >+ """ >+ deps = BuildDependenciesFromFiles(paths + inputs) >+ search_hash = BuildDependencyHashFromDependencies(deps) >+ result_list = [] >+ seen_list = [] >+ for input_file in inputs: >+ if IsNamespace(input_file): >+ namespace = re.search(ns_regex, input_file).group(1) >+ if namespace not in search_hash: >+ raise Exception('Invalid namespace (%s)' % namespace) >+ input_file = search_hash[namespace].filename >+ if not IsValidFile(input_file) or not IsJsFile(input_file): >+ raise Exception('Invalid file (%s)' % input_file) >+ seen_list.append(input_file) >+ file_handle = open(input_file, 'r') >+ try: >+ for line in file_handle: >+ if re.match(req_regex, line): >+ require = re.search(req_regex, line).group(1) >+ ResolveDependencies(require, search_hash, result_list, seen_list) >+ finally: >+ file_handle.close() >+ result_list.append(input_file) >+ >+ # All files depend on base.js, so put it first. >+ base_js_path = FindClosureBasePath(paths) >+ if base_js_path: >+ result_list.insert(0, base_js_path) >+ else: >+ logging.warning('Closure Library base.js not found.') >+ >+ return result_list >+ >+ >+def FindClosureBasePath(paths): >+ """Given a list of file paths, return Closure base.js path, if any. >+ >+ Args: >+ paths: A list of paths. >+ >+ Returns: >+ The path to Closure's base.js file including filename, if found. >+ """ >+ >+ for path in paths: >+ pathname, filename = os.path.split(path) >+ >+ if filename == 'base.js': >+ f = open(path) >+ >+ is_base = False >+ >+ # Sanity check that this is the Closure base file. Check that this >+ # is where goog is defined. This is determined by the @provideGoog >+ # flag. >+ for line in f: >+ if '@provideGoog' in line: >+ is_base = True >+ break >+ >+ f.close() >+ >+ if is_base: >+ return path >+ >+def ResolveDependencies(require, search_hash, result_list, seen_list): >+ """Takes a given requirement and resolves all of the dependencies for it. >+ >+ Description: >+ A given requirement may require other dependencies. This method >+ recursively resolves all dependencies for the given requirement. >+ >+ Raises: >+ Exception: when require does not exist in the search_hash. >+ >+ Args: >+ require: the namespace to resolve dependencies for. >+ search_hash: the data structure used for resolving dependencies. >+ result_list: a list of filenames that have been calculated as dependencies. >+ This variable is the output for this function. >+ seen_list: a list of filenames that have been 'seen'. This is required >+ for the dependency->dependant ordering. >+ """ >+ if require not in search_hash: >+ raise Exception('Missing provider for (%s)' % require) >+ >+ dep = search_hash[require] >+ if not dep.filename in seen_list: >+ seen_list.append(dep.filename) >+ for sub_require in dep.requires: >+ ResolveDependencies(sub_require, search_hash, result_list, seen_list) >+ result_list.append(dep.filename) >+ >+ >+def GetDepsLine(dep, base_path): >+ """Returns a JS string for a dependency statement in the deps.js file. >+ >+ Args: >+ dep: The dependency that we're printing. >+ base_path: The path to Closure's base.js including filename. >+ """ >+ return 'goog.addDependency("%s", %s, %s);' % ( >+ GetRelpath(dep.filename, base_path), dep.provides, dep.requires) >+ >+ >+def GetRelpath(path, start): >+ """Return a relative path to |path| from |start|.""" >+ # NOTE: Python 2.6 provides os.path.relpath, which has almost the same >+ # functionality as this function. Since we want to support 2.4, we have >+ # to implement it manually. :( >+ path_list = os.path.abspath(os.path.normpath(path)).split(os.sep) >+ start_list = os.path.abspath( >+ os.path.normpath(os.path.dirname(start))).split(os.sep) >+ >+ common_prefix_count = 0 >+ for i in range(0, min(len(path_list), len(start_list))): >+ if path_list[i] != start_list[i]: >+ break >+ common_prefix_count += 1 >+ >+ # Always use forward slashes, because this will get expanded to a url, >+ # not a file path. >+ return '/'.join(['..'] * (len(start_list) - common_prefix_count) + >+ path_list[common_prefix_count:]) >+ >+ >+def PrintLine(msg, out): >+ out.write(msg) >+ out.write('\n') >+ >+ >+def PrintDeps(source_paths, deps, out): >+ """Print out a deps.js file from a list of source paths. >+ >+ Args: >+ source_paths: Paths that we should generate dependency info for. >+ deps: Paths that provide dependency info. Their dependency info should >+ not appear in the deps file. >+ out: The output file. >+ >+ Returns: >+ True on success, false if it was unable to find the base path >+ to generate deps relative to. >+ """ >+ base_path = FindClosureBasePath(source_paths + deps) >+ if not base_path: >+ return False >+ >+ PrintLine('// This file was autogenerated by calcdeps.py', out) >+ excludesSet = set(deps) >+ >+ for dep in BuildDependenciesFromFiles(source_paths + deps): >+ if not dep.filename in excludesSet: >+ PrintLine(GetDepsLine(dep, base_path), out) >+ >+ return True >+ >+ >+def PrintScript(source_paths, out): >+ for index, dep in enumerate(source_paths): >+ PrintLine('// Input %d' % index, out) >+ f = open(dep, 'r') >+ PrintLine(f.read(), out) >+ f.close() >+ >+ >+def GetJavaVersion(): >+ """Returns the string for the current version of Java installed.""" >+ proc = subprocess.Popen(['java', '-version'], stderr=subprocess.PIPE) >+ proc.wait() >+ version_line = proc.stderr.read().splitlines()[0] >+ return version_regex.search(version_line).group() >+ >+ >+def FilterByExcludes(options, files): >+ """Filters the given files by the exlusions specified at the command line. >+ >+ Args: >+ options: The flags to calcdeps. >+ files: The files to filter. >+ Returns: >+ A list of files. >+ """ >+ excludes = [] >+ if options.excludes: >+ excludes = ExpandDirectories(options.excludes) >+ >+ excludesSet = set(excludes) >+ return [i for i in files if not i in excludesSet] >+ >+ >+def GetPathsFromOptions(options): >+ """Generates the path files from flag options. >+ >+ Args: >+ options: The flags to calcdeps. >+ Returns: >+ A list of files in the specified paths. (strings). >+ """ >+ >+ search_paths = options.paths >+ if not search_paths: >+ search_paths = ['.'] # Add default folder if no path is specified. >+ >+ search_paths = ExpandDirectories(search_paths) >+ return FilterByExcludes(options, search_paths) >+ >+ >+def GetInputsFromOptions(options): >+ """Generates the inputs from flag options. >+ >+ Args: >+ options: The flags to calcdeps. >+ Returns: >+ A list of inputs (strings). >+ """ >+ inputs = options.inputs >+ if not inputs: # Parse stdin >+ logging.info('No inputs specified. Reading from stdin...') >+ inputs = filter(None, [line.strip('\n') for line in sys.stdin.readlines()]) >+ >+ logging.info('Scanning files...') >+ inputs = ExpandDirectories(inputs) >+ >+ return FilterByExcludes(options, inputs) >+ >+ >+def Compile(compiler_jar_path, source_paths, out, flags=None): >+ """Prepares command-line call to Closure compiler. >+ >+ Args: >+ compiler_jar_path: Path to the Closure compiler .jar file. >+ source_paths: Source paths to build, in order. >+ flags: A list of additional flags to pass on to Closure compiler. >+ """ >+ args = ['java', '-jar', compiler_jar_path] >+ for path in source_paths: >+ args += ['--js', path] >+ >+ if flags: >+ args += flags >+ >+ logging.info('Compiling with the following command: %s', ' '.join(args)) >+ proc = subprocess.Popen(args, stdout=subprocess.PIPE) >+ (stdoutdata, stderrdata) = proc.communicate() >+ if proc.returncode != 0: >+ logging.error('JavaScript compilation failed.') >+ sys.exit(1) >+ else: >+ out.write(stdoutdata) >+ >+ >+def main(): >+ """The entrypoint for this script.""" >+ >+ logging.basicConfig(format='calcdeps.py: %(message)s', level=logging.INFO) >+ >+ usage = 'usage: %prog [options] arg' >+ parser = optparse.OptionParser(usage) >+ parser.add_option('-i', >+ '--input', >+ dest='inputs', >+ action='append', >+ help='The inputs to calculate dependencies for. Valid ' >+ 'values can be files, directories, or namespaces ' >+ '(ns:goog.net.XhrIo). Only relevant to "list" and ' >+ '"script" output.') >+ parser.add_option('-p', >+ '--path', >+ dest='paths', >+ action='append', >+ help='The paths that should be traversed to build the ' >+ 'dependencies.') >+ parser.add_option('-d', >+ '--dep', >+ dest='deps', >+ action='append', >+ help='Directories or files that should be traversed to ' >+ 'find required dependencies for the deps file. ' >+ 'Does not generate dependency information for names ' >+ 'provided by these files. Only useful in "deps" mode.') >+ parser.add_option('-e', >+ '--exclude', >+ dest='excludes', >+ action='append', >+ help='Files or directories to exclude from the --path ' >+ 'and --input flags') >+ parser.add_option('-o', >+ '--output_mode', >+ dest='output_mode', >+ action='store', >+ default='list', >+ help='The type of output to generate from this script. ' >+ 'Options are "list" for a list of filenames, "script" ' >+ 'for a single script containing the contents of all the ' >+ 'file, "deps" to generate a deps.js file for all ' >+ 'paths, or "compiled" to produce compiled output with ' >+ 'the Closure compiler.') >+ parser.add_option('-c', >+ '--compiler_jar', >+ dest='compiler_jar', >+ action='store', >+ help='The location of the Closure compiler .jar file.') >+ parser.add_option('-f', >+ '--compiler_flag', >+ '--compiler_flags', # for backwards compatability >+ dest='compiler_flags', >+ action='append', >+ help='Additional flag to pass to the Closure compiler. ' >+ 'May be specified multiple times to pass multiple flags.') >+ parser.add_option('--output_file', >+ dest='output_file', >+ action='store', >+ help=('If specified, write output to this path instead of ' >+ 'writing to standard output.')) >+ >+ (options, args) = parser.parse_args() >+ >+ search_paths = GetPathsFromOptions(options) >+ >+ if options.output_file: >+ out = open(options.output_file, 'w') >+ else: >+ out = sys.stdout >+ >+ if options.output_mode == 'deps': >+ result = PrintDeps(search_paths, ExpandDirectories(options.deps or []), out) >+ if not result: >+ logging.error('Could not find Closure Library in the specified paths') >+ sys.exit(1) >+ >+ return >+ >+ inputs = GetInputsFromOptions(options) >+ >+ logging.info('Finding Closure dependencies...') >+ deps = CalculateDependencies(search_paths, inputs) >+ output_mode = options.output_mode >+ >+ if output_mode == 'script': >+ PrintScript(deps, out) >+ elif output_mode == 'list': >+ # Just print out a dep per line >+ for dep in deps: >+ PrintLine(dep, out) >+ elif output_mode == 'compiled': >+ # Make sure a .jar is specified. >+ if not options.compiler_jar: >+ logging.error('--compiler_jar flag must be specified if --output is ' >+ '"compiled"') >+ sys.exit(1) >+ >+ # User friendly version check. >+ if distutils and not (distutils.version.LooseVersion(GetJavaVersion()) > >+ distutils.version.LooseVersion('1.6')): >+ logging.error('Closure Compiler requires Java 1.6 or higher.') >+ logging.error('Please visit http://www.java.com/getjava') >+ sys.exit(1) >+ >+ Compile(options.compiler_jar, deps, out, options.compiler_flags) >+ >+ else: >+ logging.error('Invalid value for --output flag.') >+ sys.exit(1) >+ >+if __name__ == '__main__': >+ main() >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/closure/bin/scopify.py b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/closure/bin/scopify.py >new file mode 100755 >index 00000000000..d8057efbc9f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/closure/bin/scopify.py >@@ -0,0 +1,221 @@ >+#!/usr/bin/python >+# >+# Copyright 2010 The Closure Library Authors. All Rights Reserved. >+# >+# Licensed under the Apache License, Version 2.0 (the "License"); >+# you may not use this file except in compliance with the License. >+# You may obtain a copy of the License at >+# >+# http://www.apache.org/licenses/LICENSE-2.0 >+# >+# Unless required by applicable law or agreed to in writing, software >+# distributed under the License is distributed on an "AS-IS" BASIS, >+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >+# See the License for the specific language governing permissions and >+# limitations under the License. >+ >+ >+"""Automatically converts codebases over to goog.scope. >+ >+Usage: >+cd path/to/my/dir; >+../../../../javascript/closure/bin/scopify.py >+ >+Scans every file in this directory, recursively. Looks for existing >+goog.scope calls, and goog.require'd symbols. If it makes sense to >+generate a goog.scope call for the file, then we will do so, and >+try to auto-generate some aliases based on the goog.require'd symbols. >+ >+Known Issues: >+ >+ When a file is goog.scope'd, the file contents will be indented +2. >+ This may put some lines over 80 chars. These will need to be fixed manually. >+ >+ We will only try to create aliases for capitalized names. We do not check >+ to see if those names will conflict with any existing locals. >+ >+ This creates merge conflicts for every line of every outstanding change. >+ If you intend to run this on your codebase, make sure your team members >+ know. Better yet, send them this script so that they can scopify their >+ outstanding changes and "accept theirs". >+ >+ When an alias is "captured", it can no longer be stubbed out for testing. >+ Run your tests. >+ >+""" >+ >+__author__ = 'nicksantos@google.com (Nick Santos)' >+ >+import os.path >+import re >+import sys >+ >+REQUIRES_RE = re.compile(r"goog.require\('([^']*)'\)") >+ >+# Edit this manually if you want something to "always" be aliased. >+# TODO(nicksantos): Add a flag for this. >+DEFAULT_ALIASES = {} >+ >+def Transform(lines): >+ """Converts the contents of a file into javascript that uses goog.scope. >+ >+ Arguments: >+ lines: A list of strings, corresponding to each line of the file. >+ Returns: >+ A new list of strings, or None if the file was not modified. >+ """ >+ requires = [] >+ >+ # Do an initial scan to be sure that this file can be processed. >+ for line in lines: >+ # Skip this file if it has already been scopified. >+ if line.find('goog.scope') != -1: >+ return None >+ >+ # If there are any global vars or functions, then we also have >+ # to skip the whole file. We might be able to deal with this >+ # more elegantly. >+ if line.find('var ') == 0 or line.find('function ') == 0: >+ return None >+ >+ for match in REQUIRES_RE.finditer(line): >+ requires.append(match.group(1)) >+ >+ if len(requires) == 0: >+ return None >+ >+ # Backwards-sort the requires, so that when one is a substring of another, >+ # we match the longer one first. >+ for val in DEFAULT_ALIASES.values(): >+ if requires.count(val) == 0: >+ requires.append(val) >+ >+ requires.sort() >+ requires.reverse() >+ >+ # Generate a map of requires to their aliases >+ aliases_to_globals = DEFAULT_ALIASES.copy() >+ for req in requires: >+ index = req.rfind('.') >+ if index == -1: >+ alias = req >+ else: >+ alias = req[(index + 1):] >+ >+ # Don't scopify lowercase namespaces, because they may conflict with >+ # local variables. >+ if alias[0].isupper(): >+ aliases_to_globals[alias] = req >+ >+ aliases_to_matchers = {} >+ globals_to_aliases = {} >+ for alias, symbol in aliases_to_globals.items(): >+ globals_to_aliases[symbol] = alias >+ aliases_to_matchers[alias] = re.compile('\\b%s\\b' % symbol) >+ >+ # Insert a goog.scope that aliases all required symbols. >+ result = [] >+ >+ START = 0 >+ SEEN_REQUIRES = 1 >+ IN_SCOPE = 2 >+ >+ mode = START >+ aliases_used = set() >+ insertion_index = None >+ num_blank_lines = 0 >+ for line in lines: >+ if mode == START: >+ result.append(line) >+ >+ if re.search(REQUIRES_RE, line): >+ mode = SEEN_REQUIRES >+ >+ elif mode == SEEN_REQUIRES: >+ if (line and >+ not re.search(REQUIRES_RE, line) and >+ not line.isspace()): >+ # There should be two blank lines before goog.scope >+ result += ['\n'] * 2 >+ result.append('goog.scope(function() {\n') >+ insertion_index = len(result) >+ result += ['\n'] * num_blank_lines >+ mode = IN_SCOPE >+ elif line.isspace(): >+ # Keep track of the number of blank lines before each block of code so >+ # that we can move them after the goog.scope line if necessary. >+ num_blank_lines += 1 >+ else: >+ # Print the blank lines we saw before this code block >+ result += ['\n'] * num_blank_lines >+ num_blank_lines = 0 >+ result.append(line) >+ >+ if mode == IN_SCOPE: >+ for symbol in requires: >+ if not symbol in globals_to_aliases: >+ continue >+ >+ alias = globals_to_aliases[symbol] >+ matcher = aliases_to_matchers[alias] >+ for match in matcher.finditer(line): >+ # Check to make sure we're not in a string. >+ # We do this by being as conservative as possible: >+ # if there are any quote or double quote characters >+ # before the symbol on this line, then bail out. >+ before_symbol = line[:match.start(0)] >+ if before_symbol.count('"') > 0 or before_symbol.count("'") > 0: >+ continue >+ >+ line = line.replace(match.group(0), alias) >+ aliases_used.add(alias) >+ >+ if line.isspace(): >+ # Truncate all-whitespace lines >+ result.append('\n') >+ else: >+ result.append(line) >+ >+ if len(aliases_used): >+ aliases_used = [alias for alias in aliases_used] >+ aliases_used.sort() >+ aliases_used.reverse() >+ for alias in aliases_used: >+ symbol = aliases_to_globals[alias] >+ result.insert(insertion_index, >+ 'var %s = %s;\n' % (alias, symbol)) >+ result.append('}); // goog.scope\n') >+ return result >+ else: >+ return None >+ >+def TransformFileAt(path): >+ """Converts a file into javascript that uses goog.scope. >+ >+ Arguments: >+ path: A path to a file. >+ """ >+ f = open(path) >+ lines = Transform(f.readlines()) >+ if lines: >+ f = open(path, 'w') >+ for l in lines: >+ f.write(l) >+ f.close() >+ >+if __name__ == '__main__': >+ args = sys.argv[1:] >+ if not len(args): >+ args = '.' >+ >+ for file_name in args: >+ if os.path.isdir(file_name): >+ for root, dirs, files in os.walk(file_name): >+ for name in files: >+ if name.endswith('.js') and \ >+ not os.path.islink(os.path.join(root, name)): >+ TransformFileAt(os.path.join(root, name)) >+ else: >+ if file_name.endswith('.js') and \ >+ not os.path.islink(file_name): >+ TransformFileAt(file_name) >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/closure/goog/base.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/closure/goog/base.js >new file mode 100644 >index 00000000000..a96333017c4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/closure/goog/base.js >@@ -0,0 +1,2496 @@ >+// Copyright 2006 The Closure Library Authors. All Rights Reserved. >+// >+// Licensed under the Apache License, Version 2.0 (the "License"); >+// you may not use this file except in compliance with the License. >+// You may obtain a copy of the License at >+// >+// http://www.apache.org/licenses/LICENSE-2.0 >+// >+// Unless required by applicable law or agreed to in writing, software >+// distributed under the License is distributed on an "AS-IS" BASIS, >+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >+// See the License for the specific language governing permissions and >+// limitations under the License. >+ >+/** >+ * @fileoverview Bootstrap for the Google JS Library (Closure). >+ * >+ * In uncompiled mode base.js will write out Closure's deps file, unless the >+ * global <code>CLOSURE_NO_DEPS</code> is set to true. This allows projects to >+ * include their own deps file(s) from different locations. >+ * >+ * @author arv@google.com (Erik Arvidsson) >+ * >+ * @provideGoog >+ */ >+ >+ >+/** >+ * @define {boolean} Overridden to true by the compiler when --closure_pass >+ * or --mark_as_compiled is specified. >+ */ >+var COMPILED = false; >+ >+ >+/** >+ * Base namespace for the Closure library. Checks to see goog is already >+ * defined in the current scope before assigning to prevent clobbering if >+ * base.js is loaded more than once. >+ * >+ * @const >+ */ >+var goog = goog || {}; >+ >+ >+/** >+ * Reference to the global context. In most cases this will be 'window'. >+ */ >+goog.global = this; >+ >+ >+/** >+ * A hook for overriding the define values in uncompiled mode. >+ * >+ * In uncompiled mode, {@code CLOSURE_UNCOMPILED_DEFINES} may be defined before >+ * loading base.js. If a key is defined in {@code CLOSURE_UNCOMPILED_DEFINES}, >+ * {@code goog.define} will use the value instead of the default value. This >+ * allows flags to be overwritten without compilation (this is normally >+ * accomplished with the compiler's "define" flag). >+ * >+ * Example: >+ * <pre> >+ * var CLOSURE_UNCOMPILED_DEFINES = {'goog.DEBUG': false}; >+ * </pre> >+ * >+ * @type {Object<string, (string|number|boolean)>|undefined} >+ */ >+goog.global.CLOSURE_UNCOMPILED_DEFINES; >+ >+ >+/** >+ * A hook for overriding the define values in uncompiled or compiled mode, >+ * like CLOSURE_UNCOMPILED_DEFINES but effective in compiled code. In >+ * uncompiled code CLOSURE_UNCOMPILED_DEFINES takes precedence. >+ * >+ * Also unlike CLOSURE_UNCOMPILED_DEFINES the values must be number, boolean or >+ * string literals or the compiler will emit an error. >+ * >+ * While any @define value may be set, only those set with goog.define will be >+ * effective for uncompiled code. >+ * >+ * Example: >+ * <pre> >+ * var CLOSURE_DEFINES = {'goog.DEBUG': false} ; >+ * </pre> >+ * >+ * @type {Object<string, (string|number|boolean)>|undefined} >+ */ >+goog.global.CLOSURE_DEFINES; >+ >+ >+/** >+ * Returns true if the specified value is not undefined. >+ * WARNING: Do not use this to test if an object has a property. Use the in >+ * operator instead. >+ * >+ * @param {?} val Variable to test. >+ * @return {boolean} Whether variable is defined. >+ */ >+goog.isDef = function(val) { >+ // void 0 always evaluates to undefined and hence we do not need to depend on >+ // the definition of the global variable named 'undefined'. >+ return val !== void 0; >+}; >+ >+ >+/** >+ * Builds an object structure for the provided namespace path, ensuring that >+ * names that already exist are not overwritten. For example: >+ * "a.b.c" -> a = {};a.b={};a.b.c={}; >+ * Used by goog.provide and goog.exportSymbol. >+ * @param {string} name name of the object that this file defines. >+ * @param {*=} opt_object the object to expose at the end of the path. >+ * @param {Object=} opt_objectToExportTo The object to add the path to; default >+ * is |goog.global|. >+ * @private >+ */ >+goog.exportPath_ = function(name, opt_object, opt_objectToExportTo) { >+ var parts = name.split('.'); >+ var cur = opt_objectToExportTo || goog.global; >+ >+ // Internet Explorer exhibits strange behavior when throwing errors from >+ // methods externed in this manner. See the testExportSymbolExceptions in >+ // base_test.html for an example. >+ if (!(parts[0] in cur) && cur.execScript) { >+ cur.execScript('var ' + parts[0]); >+ } >+ >+ // Certain browsers cannot parse code in the form for((a in b); c;); >+ // This pattern is produced by the JSCompiler when it collapses the >+ // statement above into the conditional loop below. To prevent this from >+ // happening, use a for-loop and reserve the init logic as below. >+ >+ // Parentheses added to eliminate strict JS warning in Firefox. >+ for (var part; parts.length && (part = parts.shift());) { >+ if (!parts.length && goog.isDef(opt_object)) { >+ // last part and we have an object; use it >+ cur[part] = opt_object; >+ } else if (cur[part]) { >+ cur = cur[part]; >+ } else { >+ cur = cur[part] = {}; >+ } >+ } >+}; >+ >+ >+/** >+ * Defines a named value. In uncompiled mode, the value is retrieved from >+ * CLOSURE_DEFINES or CLOSURE_UNCOMPILED_DEFINES if the object is defined and >+ * has the property specified, and otherwise used the defined defaultValue. >+ * When compiled the default can be overridden using the compiler >+ * options or the value set in the CLOSURE_DEFINES object. >+ * >+ * @param {string} name The distinguished name to provide. >+ * @param {string|number|boolean} defaultValue >+ */ >+goog.define = function(name, defaultValue) { >+ var value = defaultValue; >+ if (!COMPILED) { >+ if (goog.global.CLOSURE_UNCOMPILED_DEFINES && >+ Object.prototype.hasOwnProperty.call( >+ goog.global.CLOSURE_UNCOMPILED_DEFINES, name)) { >+ value = goog.global.CLOSURE_UNCOMPILED_DEFINES[name]; >+ } else if (goog.global.CLOSURE_DEFINES && >+ Object.prototype.hasOwnProperty.call( >+ goog.global.CLOSURE_DEFINES, name)) { >+ value = goog.global.CLOSURE_DEFINES[name]; >+ } >+ } >+ goog.exportPath_(name, value); >+}; >+ >+ >+/** >+ * @define {boolean} DEBUG is provided as a convenience so that debugging code >+ * that should not be included in a production js_binary can be easily stripped >+ * by specifying --define goog.DEBUG=false to the JSCompiler. For example, most >+ * toString() methods should be declared inside an "if (goog.DEBUG)" conditional >+ * because they are generally used for debugging purposes and it is difficult >+ * for the JSCompiler to statically determine whether they are used. >+ */ >+goog.define('goog.DEBUG', true); >+ >+ >+/** >+ * @define {string} LOCALE defines the locale being used for compilation. It is >+ * used to select locale specific data to be compiled in js binary. BUILD rule >+ * can specify this value by "--define goog.LOCALE=<locale_name>" as JSCompiler >+ * option. >+ * >+ * Take into account that the locale code format is important. You should use >+ * the canonical Unicode format with hyphen as a delimiter. Language must be >+ * lowercase, Language Script - Capitalized, Region - UPPERCASE. >+ * There are few examples: pt-BR, en, en-US, sr-Latin-BO, zh-Hans-CN. >+ * >+ * See more info about locale codes here: >+ * http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers >+ * >+ * For language codes you should use values defined by ISO 693-1. See it here >+ * http://www.w3.org/WAI/ER/IG/ert/iso639.htm. There is only one exception from >+ * this rule: the Hebrew language. For legacy reasons the old code (iw) should >+ * be used instead of the new code (he), see http://wiki/Main/IIISynonyms. >+ */ >+goog.define('goog.LOCALE', 'en'); // default to en >+ >+ >+/** >+ * @define {boolean} Whether this code is running on trusted sites. >+ * >+ * On untrusted sites, several native functions can be defined or overridden by >+ * external libraries like Prototype, Datejs, and JQuery and setting this flag >+ * to false forces closure to use its own implementations when possible. >+ * >+ * If your JavaScript can be loaded by a third party site and you are wary about >+ * relying on non-standard implementations, specify >+ * "--define goog.TRUSTED_SITE=false" to the JSCompiler. >+ */ >+goog.define('goog.TRUSTED_SITE', true); >+ >+ >+/** >+ * @define {boolean} Whether a project is expected to be running in strict mode. >+ * >+ * This define can be used to trigger alternate implementations compatible with >+ * running in EcmaScript Strict mode or warn about unavailable functionality. >+ * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/Strict_mode >+ * >+ */ >+goog.define('goog.STRICT_MODE_COMPATIBLE', false); >+ >+ >+/** >+ * @define {boolean} Whether code that calls {@link goog.setTestOnly} should >+ * be disallowed in the compilation unit. >+ */ >+goog.define('goog.DISALLOW_TEST_ONLY_CODE', COMPILED && !goog.DEBUG); >+ >+ >+/** >+ * Defines a namespace in Closure. >+ * >+ * A namespace may only be defined once in a codebase. It may be defined using >+ * goog.provide() or goog.module(). >+ * >+ * The presence of one or more goog.provide() calls in a file indicates >+ * that the file defines the given objects/namespaces. >+ * Provided symbols must not be null or undefined. >+ * >+ * In addition, goog.provide() creates the object stubs for a namespace >+ * (for example, goog.provide("goog.foo.bar") will create the object >+ * goog.foo.bar if it does not already exist). >+ * >+ * Build tools also scan for provide/require/module statements >+ * to discern dependencies, build dependency files (see deps.js), etc. >+ * >+ * @see goog.require >+ * @see goog.module >+ * @param {string} name Namespace provided by this file in the form >+ * "goog.package.part". >+ */ >+goog.provide = function(name) { >+ if (!COMPILED) { >+ // Ensure that the same namespace isn't provided twice. >+ // A goog.module/goog.provide maps a goog.require to a specific file >+ if (goog.isProvided_(name)) { >+ throw Error('Namespace "' + name + '" already declared.'); >+ } >+ } >+ >+ goog.constructNamespace_(name); >+}; >+ >+ >+/** >+ * @param {string} name Namespace provided by this file in the form >+ * "goog.package.part". >+ * @param {Object=} opt_obj The object to embed in the namespace. >+ * @private >+ */ >+goog.constructNamespace_ = function(name, opt_obj) { >+ if (!COMPILED) { >+ delete goog.implicitNamespaces_[name]; >+ >+ var namespace = name; >+ while ((namespace = namespace.substring(0, namespace.lastIndexOf('.')))) { >+ if (goog.getObjectByName(namespace)) { >+ break; >+ } >+ goog.implicitNamespaces_[namespace] = true; >+ } >+ } >+ >+ goog.exportPath_(name, opt_obj); >+}; >+ >+ >+/** >+ * Module identifier validation regexp. >+ * Note: This is a conservative check, it is very possible to be more lenient, >+ * the primary exclusion here is "/" and "\" and a leading ".", these >+ * restrictions are intended to leave the door open for using goog.require >+ * with relative file paths rather than module identifiers. >+ * @private >+ */ >+goog.VALID_MODULE_RE_ = /^[a-zA-Z_$][a-zA-Z0-9._$]*$/; >+ >+ >+/** >+ * Defines a module in Closure. >+ * >+ * Marks that this file must be loaded as a module and claims the namespace. >+ * >+ * A namespace may only be defined once in a codebase. It may be defined using >+ * goog.provide() or goog.module(). >+ * >+ * goog.module() has three requirements: >+ * - goog.module may not be used in the same file as goog.provide. >+ * - goog.module must be the first statement in the file. >+ * - only one goog.module is allowed per file. >+ * >+ * When a goog.module annotated file is loaded, it is enclosed in >+ * a strict function closure. This means that: >+ * - any variables declared in a goog.module file are private to the file >+ * (not global), though the compiler is expected to inline the module. >+ * - The code must obey all the rules of "strict" JavaScript. >+ * - the file will be marked as "use strict" >+ * >+ * NOTE: unlike goog.provide, goog.module does not declare any symbols by >+ * itself. If declared symbols are desired, use >+ * goog.module.declareLegacyNamespace(). >+ * >+ * >+ * See the public goog.module proposal: http://goo.gl/Va1hin >+ * >+ * @param {string} name Namespace provided by this file in the form >+ * "goog.package.part", is expected but not required. >+ */ >+goog.module = function(name) { >+ if (!goog.isString(name) || >+ !name || >+ name.search(goog.VALID_MODULE_RE_) == -1) { >+ throw Error('Invalid module identifier'); >+ } >+ if (!goog.isInModuleLoader_()) { >+ throw Error('Module ' + name + ' has been loaded incorrectly.'); >+ } >+ if (goog.moduleLoaderState_.moduleName) { >+ throw Error('goog.module may only be called once per module.'); >+ } >+ >+ // Store the module name for the loader. >+ goog.moduleLoaderState_.moduleName = name; >+ if (!COMPILED) { >+ // Ensure that the same namespace isn't provided twice. >+ // A goog.module/goog.provide maps a goog.require to a specific file >+ if (goog.isProvided_(name)) { >+ throw Error('Namespace "' + name + '" already declared.'); >+ } >+ delete goog.implicitNamespaces_[name]; >+ } >+}; >+ >+ >+/** >+ * @param {string} name The module identifier. >+ * @return {?} The module exports for an already loaded module or null. >+ * >+ * Note: This is not an alternative to goog.require, it does not >+ * indicate a hard dependency, instead it is used to indicate >+ * an optional dependency or to access the exports of a module >+ * that has already been loaded. >+ * @suppress {missingProvide} >+ */ >+goog.module.get = function(name) { >+ return goog.module.getInternal_(name); >+}; >+ >+ >+/** >+ * @param {string} name The module identifier. >+ * @return {?} The module exports for an already loaded module or null. >+ * @private >+ */ >+goog.module.getInternal_ = function(name) { >+ if (!COMPILED) { >+ if (goog.isProvided_(name)) { >+ // goog.require only return a value with-in goog.module files. >+ return name in goog.loadedModules_ ? >+ goog.loadedModules_[name] : >+ goog.getObjectByName(name); >+ } else { >+ return null; >+ } >+ } >+}; >+ >+ >+/** >+ * @private {?{ >+ * moduleName: (string|undefined), >+ * declareTestMethods: boolean >+ * }} >+ */ >+goog.moduleLoaderState_ = null; >+ >+ >+/** >+ * @private >+ * @return {boolean} Whether a goog.module is currently being initialized. >+ */ >+goog.isInModuleLoader_ = function() { >+ return goog.moduleLoaderState_ != null; >+}; >+ >+ >+/** >+ * Indicate that a module's exports that are known test methods should >+ * be copied to the global object. This makes the test methods visible to >+ * test runners that inspect the global object. >+ * >+ * TODO(johnlenz): Make the test framework aware of goog.module so >+ * that this isn't necessary. Alternately combine this with goog.setTestOnly >+ * to minimize boiler plate. >+ * @suppress {missingProvide} >+ */ >+goog.module.declareTestMethods = function() { >+ if (!goog.isInModuleLoader_()) { >+ throw new Error('goog.module.declareTestMethods must be called from ' + >+ 'within a goog.module'); >+ } >+ goog.moduleLoaderState_.declareTestMethods = true; >+}; >+ >+ >+/** >+ * Provide the module's exports as a globally accessible object under the >+ * module's declared name. This is intended to ease migration to goog.module >+ * for files that have existing usages. >+ * @suppress {missingProvide} >+ */ >+goog.module.declareLegacyNamespace = function() { >+ if (!COMPILED && !goog.isInModuleLoader_()) { >+ throw new Error('goog.module.declareLegacyNamespace must be called from ' + >+ 'within a goog.module'); >+ } >+ if (!COMPILED && !goog.moduleLoaderState_.moduleName) { >+ throw Error('goog.module must be called prior to ' + >+ 'goog.module.declareLegacyNamespace.'); >+ } >+ goog.moduleLoaderState_.declareLegacyNamespace = true; >+}; >+ >+ >+/** >+ * Marks that the current file should only be used for testing, and never for >+ * live code in production. >+ * >+ * In the case of unit tests, the message may optionally be an exact namespace >+ * for the test (e.g. 'goog.stringTest'). The linter will then ignore the extra >+ * provide (if not explicitly defined in the code). >+ * >+ * @param {string=} opt_message Optional message to add to the error that's >+ * raised when used in production code. >+ */ >+goog.setTestOnly = function(opt_message) { >+ if (goog.DISALLOW_TEST_ONLY_CODE) { >+ opt_message = opt_message || ''; >+ throw Error('Importing test-only code into non-debug environment' + >+ (opt_message ? ': ' + opt_message : '.')); >+ } >+}; >+ >+ >+/** >+ * Forward declares a symbol. This is an indication to the compiler that the >+ * symbol may be used in the source yet is not required and may not be provided >+ * in compilation. >+ * >+ * The most common usage of forward declaration is code that takes a type as a >+ * function parameter but does not need to require it. By forward declaring >+ * instead of requiring, no hard dependency is made, and (if not required >+ * elsewhere) the namespace may never be required and thus, not be pulled >+ * into the JavaScript binary. If it is required elsewhere, it will be type >+ * checked as normal. >+ * >+ * >+ * @param {string} name The namespace to forward declare in the form of >+ * "goog.package.part". >+ */ >+goog.forwardDeclare = function(name) {}; >+ >+ >+if (!COMPILED) { >+ >+ /** >+ * Check if the given name has been goog.provided. This will return false for >+ * names that are available only as implicit namespaces. >+ * @param {string} name name of the object to look for. >+ * @return {boolean} Whether the name has been provided. >+ * @private >+ */ >+ goog.isProvided_ = function(name) { >+ return (name in goog.loadedModules_) || >+ (!goog.implicitNamespaces_[name] && >+ goog.isDefAndNotNull(goog.getObjectByName(name))); >+ }; >+ >+ /** >+ * Namespaces implicitly defined by goog.provide. For example, >+ * goog.provide('goog.events.Event') implicitly declares that 'goog' and >+ * 'goog.events' must be namespaces. >+ * >+ * @type {!Object<string, (boolean|undefined)>} >+ * @private >+ */ >+ goog.implicitNamespaces_ = {'goog.module': true}; >+ >+ // NOTE: We add goog.module as an implicit namespace as goog.module is defined >+ // here and because the existing module package has not been moved yet out of >+ // the goog.module namespace. This satisifies both the debug loader and >+ // ahead-of-time dependency management. >+} >+ >+ >+/** >+ * Returns an object based on its fully qualified external name. The object >+ * is not found if null or undefined. If you are using a compilation pass that >+ * renames property names beware that using this function will not find renamed >+ * properties. >+ * >+ * @param {string} name The fully qualified name. >+ * @param {Object=} opt_obj The object within which to look; default is >+ * |goog.global|. >+ * @return {?} The value (object or primitive) or, if not found, null. >+ */ >+goog.getObjectByName = function(name, opt_obj) { >+ var parts = name.split('.'); >+ var cur = opt_obj || goog.global; >+ for (var part; part = parts.shift(); ) { >+ if (goog.isDefAndNotNull(cur[part])) { >+ cur = cur[part]; >+ } else { >+ return null; >+ } >+ } >+ return cur; >+}; >+ >+ >+/** >+ * Globalizes a whole namespace, such as goog or goog.lang. >+ * >+ * @param {!Object} obj The namespace to globalize. >+ * @param {Object=} opt_global The object to add the properties to. >+ * @deprecated Properties may be explicitly exported to the global scope, but >+ * this should no longer be done in bulk. >+ */ >+goog.globalize = function(obj, opt_global) { >+ var global = opt_global || goog.global; >+ for (var x in obj) { >+ global[x] = obj[x]; >+ } >+}; >+ >+ >+/** >+ * Adds a dependency from a file to the files it requires. >+ * @param {string} relPath The path to the js file. >+ * @param {!Array<string>} provides An array of strings with >+ * the names of the objects this file provides. >+ * @param {!Array<string>} requires An array of strings with >+ * the names of the objects this file requires. >+ * @param {boolean=} opt_isModule Whether this dependency must be loaded as >+ * a module as declared by goog.module. >+ */ >+goog.addDependency = function(relPath, provides, requires, opt_isModule) { >+ if (goog.DEPENDENCIES_ENABLED) { >+ var provide, require; >+ var path = relPath.replace(/\\/g, '/'); >+ var deps = goog.dependencies_; >+ for (var i = 0; provide = provides[i]; i++) { >+ deps.nameToPath[provide] = path; >+ deps.pathIsModule[path] = !!opt_isModule; >+ } >+ for (var j = 0; require = requires[j]; j++) { >+ if (!(path in deps.requires)) { >+ deps.requires[path] = {}; >+ } >+ deps.requires[path][require] = true; >+ } >+ } >+}; >+ >+ >+ >+ >+// NOTE(nnaze): The debug DOM loader was included in base.js as an original way >+// to do "debug-mode" development. The dependency system can sometimes be >+// confusing, as can the debug DOM loader's asynchronous nature. >+// >+// With the DOM loader, a call to goog.require() is not blocking -- the script >+// will not load until some point after the current script. If a namespace is >+// needed at runtime, it needs to be defined in a previous script, or loaded via >+// require() with its registered dependencies. >+// User-defined namespaces may need their own deps file. See http://go/js_deps, >+// http://go/genjsdeps, or, externally, DepsWriter. >+// https://developers.google.com/closure/library/docs/depswriter >+// >+// Because of legacy clients, the DOM loader can't be easily removed from >+// base.js. Work is being done to make it disableable or replaceable for >+// different environments (DOM-less JavaScript interpreters like Rhino or V8, >+// for example). See bootstrap/ for more information. >+ >+ >+/** >+ * @define {boolean} Whether to enable the debug loader. >+ * >+ * If enabled, a call to goog.require() will attempt to load the namespace by >+ * appending a script tag to the DOM (if the namespace has been registered). >+ * >+ * If disabled, goog.require() will simply assert that the namespace has been >+ * provided (and depend on the fact that some outside tool correctly ordered >+ * the script). >+ */ >+goog.define('goog.ENABLE_DEBUG_LOADER', true); >+ >+ >+/** >+ * @param {string} msg >+ * @private >+ */ >+goog.logToConsole_ = function(msg) { >+ if (goog.global.console) { >+ goog.global.console['error'](msg); >+ } >+}; >+ >+ >+/** >+ * Implements a system for the dynamic resolution of dependencies that works in >+ * parallel with the BUILD system. Note that all calls to goog.require will be >+ * stripped by the JSCompiler when the --closure_pass option is used. >+ * @see goog.provide >+ * @param {string} name Namespace to include (as was given in goog.provide()) in >+ * the form "goog.package.part". >+ * @return {?} If called within a goog.module file, the associated namespace or >+ * module otherwise null. >+ */ >+goog.require = function(name) { >+ >+ // If the object already exists we do not need do do anything. >+ if (!COMPILED) { >+ if (goog.ENABLE_DEBUG_LOADER && goog.IS_OLD_IE_) { >+ goog.maybeProcessDeferredDep_(name); >+ } >+ >+ if (goog.isProvided_(name)) { >+ if (goog.isInModuleLoader_()) { >+ return goog.module.getInternal_(name); >+ } else { >+ return null; >+ } >+ } >+ >+ if (goog.ENABLE_DEBUG_LOADER) { >+ var path = goog.getPathFromDeps_(name); >+ if (path) { >+ goog.included_[path] = true; >+ goog.writeScripts_(); >+ return null; >+ } >+ } >+ >+ var errorMessage = 'goog.require could not find: ' + name; >+ goog.logToConsole_(errorMessage); >+ >+ throw Error(errorMessage); >+ } >+}; >+ >+ >+/** >+ * Path for included scripts. >+ * @type {string} >+ */ >+goog.basePath = ''; >+ >+ >+/** >+ * A hook for overriding the base path. >+ * @type {string|undefined} >+ */ >+goog.global.CLOSURE_BASE_PATH; >+ >+ >+/** >+ * Whether to write out Closure's deps file. By default, the deps are written. >+ * @type {boolean|undefined} >+ */ >+goog.global.CLOSURE_NO_DEPS; >+ >+ >+/** >+ * A function to import a single script. This is meant to be overridden when >+ * Closure is being run in non-HTML contexts, such as web workers. It's defined >+ * in the global scope so that it can be set before base.js is loaded, which >+ * allows deps.js to be imported properly. >+ * >+ * The function is passed the script source, which is a relative URI. It should >+ * return true if the script was imported, false otherwise. >+ * @type {(function(string): boolean)|undefined} >+ */ >+goog.global.CLOSURE_IMPORT_SCRIPT; >+ >+ >+/** >+ * Null function used for default values of callbacks, etc. >+ * @return {void} Nothing. >+ */ >+goog.nullFunction = function() {}; >+ >+ >+/** >+ * The identity function. Returns its first argument. >+ * >+ * @param {*=} opt_returnValue The single value that will be returned. >+ * @param {...*} var_args Optional trailing arguments. These are ignored. >+ * @return {?} The first argument. We can't know the type -- just pass it along >+ * without type. >+ * @deprecated Use goog.functions.identity instead. >+ */ >+goog.identityFunction = function(opt_returnValue, var_args) { >+ return opt_returnValue; >+}; >+ >+ >+/** >+ * When defining a class Foo with an abstract method bar(), you can do: >+ * Foo.prototype.bar = goog.abstractMethod >+ * >+ * Now if a subclass of Foo fails to override bar(), an error will be thrown >+ * when bar() is invoked. >+ * >+ * Note: This does not take the name of the function to override as an argument >+ * because that would make it more difficult to obfuscate our JavaScript code. >+ * >+ * @type {!Function} >+ * @throws {Error} when invoked to indicate the method should be overridden. >+ */ >+goog.abstractMethod = function() { >+ throw Error('unimplemented abstract method'); >+}; >+ >+ >+/** >+ * Adds a {@code getInstance} static method that always returns the same >+ * instance object. >+ * @param {!Function} ctor The constructor for the class to add the static >+ * method to. >+ */ >+goog.addSingletonGetter = function(ctor) { >+ ctor.getInstance = function() { >+ if (ctor.instance_) { >+ return ctor.instance_; >+ } >+ if (goog.DEBUG) { >+ // NOTE: JSCompiler can't optimize away Array#push. >+ goog.instantiatedSingletons_[goog.instantiatedSingletons_.length] = ctor; >+ } >+ return ctor.instance_ = new ctor; >+ }; >+}; >+ >+ >+/** >+ * All singleton classes that have been instantiated, for testing. Don't read >+ * it directly, use the {@code goog.testing.singleton} module. The compiler >+ * removes this variable if unused. >+ * @type {!Array<!Function>} >+ * @private >+ */ >+goog.instantiatedSingletons_ = []; >+ >+ >+/** >+ * @define {boolean} Whether to load goog.modules using {@code eval} when using >+ * the debug loader. This provides a better debugging experience as the >+ * source is unmodified and can be edited using Chrome Workspaces or similar. >+ * However in some environments the use of {@code eval} is banned >+ * so we provide an alternative. >+ */ >+goog.define('goog.LOAD_MODULE_USING_EVAL', true); >+ >+ >+/** >+ * @define {boolean} Whether the exports of goog.modules should be sealed when >+ * possible. >+ */ >+goog.define('goog.SEAL_MODULE_EXPORTS', goog.DEBUG); >+ >+ >+/** >+ * The registry of initialized modules: >+ * the module identifier to module exports map. >+ * @private @const {!Object<string, ?>} >+ */ >+goog.loadedModules_ = {}; >+ >+ >+/** >+ * True if goog.dependencies_ is available. >+ * @const {boolean} >+ */ >+goog.DEPENDENCIES_ENABLED = !COMPILED && goog.ENABLE_DEBUG_LOADER; >+ >+ >+if (goog.DEPENDENCIES_ENABLED) { >+ /** >+ * Object used to keep track of urls that have already been added. This record >+ * allows the prevention of circular dependencies. >+ * @private {!Object<string, boolean>} >+ */ >+ goog.included_ = {}; >+ >+ >+ /** >+ * This object is used to keep track of dependencies and other data that is >+ * used for loading scripts. >+ * @private >+ * @type {{ >+ * pathIsModule: !Object<string, boolean>, >+ * nameToPath: !Object<string, string>, >+ * requires: !Object<string, !Object<string, boolean>>, >+ * visited: !Object<string, boolean>, >+ * written: !Object<string, boolean>, >+ * deferred: !Object<string, string> >+ * }} >+ */ >+ goog.dependencies_ = { >+ pathIsModule: {}, // 1 to 1 >+ >+ nameToPath: {}, // 1 to 1 >+ >+ requires: {}, // 1 to many >+ >+ // Used when resolving dependencies to prevent us from visiting file twice. >+ visited: {}, >+ >+ written: {}, // Used to keep track of script files we have written. >+ >+ deferred: {} // Used to track deferred module evaluations in old IEs >+ }; >+ >+ >+ /** >+ * Tries to detect whether is in the context of an HTML document. >+ * @return {boolean} True if it looks like HTML document. >+ * @private >+ */ >+ goog.inHtmlDocument_ = function() { >+ var doc = goog.global.document; >+ return typeof doc != 'undefined' && >+ 'write' in doc; // XULDocument misses write. >+ }; >+ >+ >+ /** >+ * Tries to detect the base path of base.js script that bootstraps Closure. >+ * @private >+ */ >+ goog.findBasePath_ = function() { >+ if (goog.isDef(goog.global.CLOSURE_BASE_PATH)) { >+ goog.basePath = goog.global.CLOSURE_BASE_PATH; >+ return; >+ } else if (!goog.inHtmlDocument_()) { >+ return; >+ } >+ var doc = goog.global.document; >+ var scripts = doc.getElementsByTagName('SCRIPT'); >+ // Search backwards since the current script is in almost all cases the one >+ // that has base.js. >+ for (var i = scripts.length - 1; i >= 0; --i) { >+ var script = /** @type {!HTMLScriptElement} */ (scripts[i]); >+ var src = script.src; >+ var qmark = src.lastIndexOf('?'); >+ var l = qmark == -1 ? src.length : qmark; >+ if (src.substr(l - 7, 7) == 'base.js') { >+ goog.basePath = src.substr(0, l - 7); >+ return; >+ } >+ } >+ }; >+ >+ >+ /** >+ * Imports a script if, and only if, that script hasn't already been imported. >+ * (Must be called at execution time) >+ * @param {string} src Script source. >+ * @param {string=} opt_sourceText The optionally source text to evaluate >+ * @private >+ */ >+ goog.importScript_ = function(src, opt_sourceText) { >+ var importScript = goog.global.CLOSURE_IMPORT_SCRIPT || >+ goog.writeScriptTag_; >+ if (importScript(src, opt_sourceText)) { >+ goog.dependencies_.written[src] = true; >+ } >+ }; >+ >+ >+ /** @const @private {boolean} */ >+ goog.IS_OLD_IE_ = !!(!goog.global.atob && goog.global.document && >+ goog.global.document.all); >+ >+ >+ /** >+ * Given a URL initiate retrieval and execution of the module. >+ * @param {string} src Script source URL. >+ * @private >+ */ >+ goog.importModule_ = function(src) { >+ // In an attempt to keep browsers from timing out loading scripts using >+ // synchronous XHRs, put each load in its own script block. >+ var bootstrap = 'goog.retrieveAndExecModule_("' + src + '");'; >+ >+ if (goog.importScript_('', bootstrap)) { >+ goog.dependencies_.written[src] = true; >+ } >+ }; >+ >+ >+ /** @private {!Array<string>} */ >+ goog.queuedModules_ = []; >+ >+ >+ /** >+ * Return an appropriate module text. Suitable to insert into >+ * a script tag (that is unescaped). >+ * @param {string} srcUrl >+ * @param {string} scriptText >+ * @return {string} >+ * @private >+ */ >+ goog.wrapModule_ = function(srcUrl, scriptText) { >+ if (!goog.LOAD_MODULE_USING_EVAL || !goog.isDef(goog.global.JSON)) { >+ return '' + >+ 'goog.loadModule(function(exports) {' + >+ '"use strict";' + >+ scriptText + >+ '\n' + // terminate any trailing single line comment. >+ ';return exports' + >+ '});' + >+ '\n//# sourceURL=' + srcUrl + '\n'; >+ } else { >+ return '' + >+ 'goog.loadModule(' + >+ goog.global.JSON.stringify( >+ scriptText + '\n//# sourceURL=' + srcUrl + '\n') + >+ ');'; >+ } >+ }; >+ >+ // On IE9 and earlier, it is necessary to handle >+ // deferred module loads. In later browsers, the >+ // code to be evaluated is simply inserted as a script >+ // block in the correct order. To eval deferred >+ // code at the right time, we piggy back on goog.require to call >+ // goog.maybeProcessDeferredDep_. >+ // >+ // The goog.requires are used both to bootstrap >+ // the loading process (when no deps are available) and >+ // declare that they should be available. >+ // >+ // Here we eval the sources, if all the deps are available >+ // either already eval'd or goog.require'd. This will >+ // be the case when all the dependencies have already >+ // been loaded, and the dependent module is loaded. >+ // >+ // But this alone isn't sufficient because it is also >+ // necessary to handle the case where there is no root >+ // that is not deferred. For that there we register for an event >+ // and trigger goog.loadQueuedModules_ handle any remaining deferred >+ // evaluations. >+ >+ /** >+ * Handle any remaining deferred goog.module evals. >+ * @private >+ */ >+ goog.loadQueuedModules_ = function() { >+ var count = goog.queuedModules_.length; >+ if (count > 0) { >+ var queue = goog.queuedModules_; >+ goog.queuedModules_ = []; >+ for (var i = 0; i < count; i++) { >+ var path = queue[i]; >+ goog.maybeProcessDeferredPath_(path); >+ } >+ } >+ }; >+ >+ >+ /** >+ * Eval the named module if its dependencies are >+ * available. >+ * @param {string} name The module to load. >+ * @private >+ */ >+ goog.maybeProcessDeferredDep_ = function(name) { >+ if (goog.isDeferredModule_(name) && >+ goog.allDepsAreAvailable_(name)) { >+ var path = goog.getPathFromDeps_(name); >+ goog.maybeProcessDeferredPath_(goog.basePath + path); >+ } >+ }; >+ >+ /** >+ * @param {string} name The module to check. >+ * @return {boolean} Whether the name represents a >+ * module whose evaluation has been deferred. >+ * @private >+ */ >+ goog.isDeferredModule_ = function(name) { >+ var path = goog.getPathFromDeps_(name); >+ if (path && goog.dependencies_.pathIsModule[path]) { >+ var abspath = goog.basePath + path; >+ return (abspath) in goog.dependencies_.deferred; >+ } >+ return false; >+ }; >+ >+ /** >+ * @param {string} name The module to check. >+ * @return {boolean} Whether the name represents a >+ * module whose declared dependencies have all been loaded >+ * (eval'd or a deferred module load) >+ * @private >+ */ >+ goog.allDepsAreAvailable_ = function(name) { >+ var path = goog.getPathFromDeps_(name); >+ if (path && (path in goog.dependencies_.requires)) { >+ for (var requireName in goog.dependencies_.requires[path]) { >+ if (!goog.isProvided_(requireName) && >+ !goog.isDeferredModule_(requireName)) { >+ return false; >+ } >+ } >+ } >+ return true; >+ }; >+ >+ >+ /** >+ * @param {string} abspath >+ * @private >+ */ >+ goog.maybeProcessDeferredPath_ = function(abspath) { >+ if (abspath in goog.dependencies_.deferred) { >+ var src = goog.dependencies_.deferred[abspath]; >+ delete goog.dependencies_.deferred[abspath]; >+ goog.globalEval(src); >+ } >+ }; >+ >+ >+ /** >+ * @param {function(?):?|string} moduleDef The module definition. >+ */ >+ goog.loadModule = function(moduleDef) { >+ // NOTE: we allow function definitions to be either in the from >+ // of a string to eval (which keeps the original source intact) or >+ // in a eval forbidden environment (CSP) we allow a function definition >+ // which in its body must call {@code goog.module}, and return the exports >+ // of the module. >+ var previousState = goog.moduleLoaderState_; >+ try { >+ goog.moduleLoaderState_ = { >+ moduleName: undefined, declareTestMethods: false}; >+ var exports; >+ if (goog.isFunction(moduleDef)) { >+ exports = moduleDef.call(goog.global, {}); >+ } else if (goog.isString(moduleDef)) { >+ exports = goog.loadModuleFromSource_.call(goog.global, moduleDef); >+ } else { >+ throw Error('Invalid module definition'); >+ } >+ >+ var moduleName = goog.moduleLoaderState_.moduleName; >+ if (!goog.isString(moduleName) || !moduleName) { >+ throw Error('Invalid module name \"' + moduleName + '\"'); >+ } >+ >+ // Don't seal legacy namespaces as they may be uses as a parent of >+ // another namespace >+ if (goog.moduleLoaderState_.declareLegacyNamespace) { >+ goog.constructNamespace_(moduleName, exports); >+ } else if (goog.SEAL_MODULE_EXPORTS && Object.seal) { >+ Object.seal(exports); >+ } >+ >+ goog.loadedModules_[moduleName] = exports; >+ if (goog.moduleLoaderState_.declareTestMethods) { >+ for (var entry in exports) { >+ if (entry.indexOf('test', 0) === 0 || >+ entry == 'tearDown' || >+ entry == 'setUp' || >+ entry == 'setUpPage' || >+ entry == 'tearDownPage') { >+ goog.global[entry] = exports[entry]; >+ } >+ } >+ } >+ } finally { >+ goog.moduleLoaderState_ = previousState; >+ } >+ }; >+ >+ >+ /** >+ * @param {string} source >+ * @return {!Object} >+ * @private >+ */ >+ goog.loadModuleFromSource_ = function(source) { >+ // NOTE: we avoid declaring parameters or local variables here to avoid >+ // masking globals or leaking values into the module definition. >+ 'use strict'; >+ var exports = {}; >+ eval(arguments[0]); >+ return exports; >+ }; >+ >+ >+ /** >+ * The default implementation of the import function. Writes a script tag to >+ * import the script. >+ * >+ * @param {string} src The script url. >+ * @param {string=} opt_sourceText The optionally source text to evaluate >+ * @return {boolean} True if the script was imported, false otherwise. >+ * @private >+ */ >+ goog.writeScriptTag_ = function(src, opt_sourceText) { >+ if (goog.inHtmlDocument_()) { >+ var doc = goog.global.document; >+ >+ // If the user tries to require a new symbol after document load, >+ // something has gone terribly wrong. Doing a document.write would >+ // wipe out the page. >+ if (doc.readyState == 'complete') { >+ // Certain test frameworks load base.js multiple times, which tries >+ // to write deps.js each time. If that happens, just fail silently. >+ // These frameworks wipe the page between each load of base.js, so this >+ // is OK. >+ var isDeps = /\bdeps.js$/.test(src); >+ if (isDeps) { >+ return false; >+ } else { >+ throw Error('Cannot write "' + src + '" after document load'); >+ } >+ } >+ >+ var isOldIE = goog.IS_OLD_IE_; >+ >+ if (opt_sourceText === undefined) { >+ if (!isOldIE) { >+ doc.write( >+ '<script type="application/javascript" src="' + >+ src + '"></' + 'script>'); >+ } else { >+ var state = " onreadystatechange='goog.onScriptLoad_(this, " + >+ ++goog.lastNonModuleScriptIndex_ + ")' "; >+ doc.write( >+ '<script type="application/javascript" src="' + >+ src + '"' + state + '></' + 'script>'); >+ } >+ } else { >+ doc.write( >+ '<script type="application/javascript">' + >+ opt_sourceText + >+ '</' + 'script>'); >+ } >+ return true; >+ } else { >+ return false; >+ } >+ }; >+ >+ >+ /** @private {number} */ >+ goog.lastNonModuleScriptIndex_ = 0; >+ >+ >+ /** >+ * A readystatechange handler for legacy IE >+ * @param {!HTMLScriptElement} script >+ * @param {number} scriptIndex >+ * @return {boolean} >+ * @private >+ */ >+ goog.onScriptLoad_ = function(script, scriptIndex) { >+ // for now load the modules when we reach the last script, >+ // later allow more inter-mingling. >+ if (script.readyState == 'complete' && >+ goog.lastNonModuleScriptIndex_ == scriptIndex) { >+ goog.loadQueuedModules_(); >+ } >+ return true; >+ }; >+ >+ /** >+ * Resolves dependencies based on the dependencies added using addDependency >+ * and calls importScript_ in the correct order. >+ * @private >+ */ >+ goog.writeScripts_ = function() { >+ /** @type {!Array<string>} The scripts we need to write this time. */ >+ var scripts = []; >+ var seenScript = {}; >+ var deps = goog.dependencies_; >+ >+ /** @param {string} path */ >+ function visitNode(path) { >+ if (path in deps.written) { >+ return; >+ } >+ >+ // We have already visited this one. We can get here if we have cyclic >+ // dependencies. >+ if (path in deps.visited) { >+ if (!(path in seenScript)) { >+ seenScript[path] = true; >+ scripts.push(path); >+ } >+ return; >+ } >+ >+ deps.visited[path] = true; >+ >+ if (path in deps.requires) { >+ for (var requireName in deps.requires[path]) { >+ // If the required name is defined, we assume that it was already >+ // bootstrapped by other means. >+ if (!goog.isProvided_(requireName)) { >+ if (requireName in deps.nameToPath) { >+ visitNode(deps.nameToPath[requireName]); >+ } else { >+ throw Error('Undefined nameToPath for ' + requireName); >+ } >+ } >+ } >+ } >+ >+ if (!(path in seenScript)) { >+ seenScript[path] = true; >+ scripts.push(path); >+ } >+ } >+ >+ for (var path in goog.included_) { >+ if (!deps.written[path]) { >+ visitNode(path); >+ } >+ } >+ >+ // record that we are going to load all these scripts. >+ for (var i = 0; i < scripts.length; i++) { >+ var path = scripts[i]; >+ goog.dependencies_.written[path] = true; >+ } >+ >+ // If a module is loaded synchronously then we need to >+ // clear the current inModuleLoader value, and restore it when we are >+ // done loading the current "requires". >+ var moduleState = goog.moduleLoaderState_; >+ goog.moduleLoaderState_ = null; >+ >+ var loadingModule = false; >+ for (var i = 0; i < scripts.length; i++) { >+ var path = scripts[i]; >+ if (path) { >+ if (!deps.pathIsModule[path]) { >+ goog.importScript_(goog.basePath + path); >+ } else { >+ loadingModule = true; >+ goog.importModule_(goog.basePath + path); >+ } >+ } else { >+ goog.moduleLoaderState_ = moduleState; >+ throw Error('Undefined script input'); >+ } >+ } >+ >+ // restore the current "module loading state" >+ goog.moduleLoaderState_ = moduleState; >+ }; >+ >+ >+ /** >+ * Looks at the dependency rules and tries to determine the script file that >+ * fulfills a particular rule. >+ * @param {string} rule In the form goog.namespace.Class or project.script. >+ * @return {?string} Url corresponding to the rule, or null. >+ * @private >+ */ >+ goog.getPathFromDeps_ = function(rule) { >+ if (rule in goog.dependencies_.nameToPath) { >+ return goog.dependencies_.nameToPath[rule]; >+ } else { >+ return null; >+ } >+ }; >+ >+ goog.findBasePath_(); >+ >+ // Allow projects to manage the deps files themselves. >+ if (!goog.global.CLOSURE_NO_DEPS) { >+ goog.importScript_(goog.basePath + 'deps.js'); >+ } >+} >+ >+ >+/** >+ * Normalize a file path by removing redundant ".." and extraneous "." file >+ * path components. >+ * @param {string} path >+ * @return {string} >+ * @private >+ */ >+goog.normalizePath_ = function(path) { >+ var components = path.split('/'); >+ var i = 0; >+ while (i < components.length) { >+ if (components[i] == '.') { >+ components.splice(i, 1); >+ } else if (i && components[i] == '..' && >+ components[i - 1] && components[i - 1] != '..') { >+ components.splice(--i, 2); >+ } else { >+ i++; >+ } >+ } >+ return components.join('/'); >+}; >+ >+ >+/** >+ * Retrieve and execute a module. >+ * @param {string} src Script source URL. >+ * @private >+ */ >+goog.retrieveAndExecModule_ = function(src) { >+ if (!COMPILED) { >+ // The full but non-canonicalized URL for later use. >+ var originalPath = src; >+ // Canonicalize the path, removing any /./ or /../ since Chrome's debugging >+ // console doesn't auto-canonicalize XHR loads as it does <script> srcs. >+ src = goog.normalizePath_(src); >+ >+ var importScript = goog.global.CLOSURE_IMPORT_SCRIPT || >+ goog.writeScriptTag_; >+ >+ var scriptText = null; >+ >+ var xhr = new goog.global['XMLHttpRequest'](); >+ >+ /** @this {Object} */ >+ xhr.onload = function() { >+ scriptText = this.responseText; >+ }; >+ xhr.open('get', src, false); >+ xhr.send(); >+ >+ scriptText = xhr.responseText; >+ >+ if (scriptText != null) { >+ var execModuleScript = goog.wrapModule_(src, scriptText); >+ var isOldIE = goog.IS_OLD_IE_; >+ if (isOldIE) { >+ goog.dependencies_.deferred[originalPath] = execModuleScript; >+ goog.queuedModules_.push(originalPath); >+ } else { >+ importScript(src, execModuleScript); >+ } >+ } else { >+ throw new Error('load of ' + src + 'failed'); >+ } >+ } >+}; >+ >+ >+//============================================================================== >+// Language Enhancements >+//============================================================================== >+ >+ >+/** >+ * This is a "fixed" version of the typeof operator. It differs from the typeof >+ * operator in such a way that null returns 'null' and arrays return 'array'. >+ * @param {*} value The value to get the type of. >+ * @return {string} The name of the type. >+ */ >+goog.typeOf = function(value) { >+ var s = typeof value; >+ if (s == 'object') { >+ if (value) { >+ // Check these first, so we can avoid calling Object.prototype.toString if >+ // possible. >+ // >+ // IE improperly marshals tyepof across execution contexts, but a >+ // cross-context object will still return false for "instanceof Object". >+ if (value instanceof Array) { >+ return 'array'; >+ } else if (value instanceof Object) { >+ return s; >+ } >+ >+ // HACK: In order to use an Object prototype method on the arbitrary >+ // value, the compiler requires the value be cast to type Object, >+ // even though the ECMA spec explicitly allows it. >+ var className = Object.prototype.toString.call( >+ /** @type {Object} */ (value)); >+ // In Firefox 3.6, attempting to access iframe window objects' length >+ // property throws an NS_ERROR_FAILURE, so we need to special-case it >+ // here. >+ if (className == '[object Window]') { >+ return 'object'; >+ } >+ >+ // We cannot always use constructor == Array or instanceof Array because >+ // different frames have different Array objects. In IE6, if the iframe >+ // where the array was created is destroyed, the array loses its >+ // prototype. Then dereferencing val.splice here throws an exception, so >+ // we can't use goog.isFunction. Calling typeof directly returns 'unknown' >+ // so that will work. In this case, this function will return false and >+ // most array functions will still work because the array is still >+ // array-like (supports length and []) even though it has lost its >+ // prototype. >+ // Mark Miller noticed that Object.prototype.toString >+ // allows access to the unforgeable [[Class]] property. >+ // 15.2.4.2 Object.prototype.toString ( ) >+ // When the toString method is called, the following steps are taken: >+ // 1. Get the [[Class]] property of this object. >+ // 2. Compute a string value by concatenating the three strings >+ // "[object ", Result(1), and "]". >+ // 3. Return Result(2). >+ // and this behavior survives the destruction of the execution context. >+ if ((className == '[object Array]' || >+ // In IE all non value types are wrapped as objects across window >+ // boundaries (not iframe though) so we have to do object detection >+ // for this edge case. >+ typeof value.length == 'number' && >+ typeof value.splice != 'undefined' && >+ typeof value.propertyIsEnumerable != 'undefined' && >+ !value.propertyIsEnumerable('splice') >+ >+ )) { >+ return 'array'; >+ } >+ // HACK: There is still an array case that fails. >+ // function ArrayImpostor() {} >+ // ArrayImpostor.prototype = []; >+ // var impostor = new ArrayImpostor; >+ // this can be fixed by getting rid of the fast path >+ // (value instanceof Array) and solely relying on >+ // (value && Object.prototype.toString.vall(value) === '[object Array]') >+ // but that would require many more function calls and is not warranted >+ // unless closure code is receiving objects from untrusted sources. >+ >+ // IE in cross-window calls does not correctly marshal the function type >+ // (it appears just as an object) so we cannot use just typeof val == >+ // 'function'. However, if the object has a call property, it is a >+ // function. >+ if ((className == '[object Function]' || >+ typeof value.call != 'undefined' && >+ typeof value.propertyIsEnumerable != 'undefined' && >+ !value.propertyIsEnumerable('call'))) { >+ return 'function'; >+ } >+ >+ } else { >+ return 'null'; >+ } >+ >+ } else if (s == 'function' && typeof value.call == 'undefined') { >+ // In Safari typeof nodeList returns 'function', and on Firefox typeof >+ // behaves similarly for HTML{Applet,Embed,Object}, Elements and RegExps. We >+ // would like to return object for those and we can detect an invalid >+ // function by making sure that the function object has a call method. >+ return 'object'; >+ } >+ return s; >+}; >+ >+ >+/** >+ * Returns true if the specified value is null. >+ * @param {?} val Variable to test. >+ * @return {boolean} Whether variable is null. >+ */ >+goog.isNull = function(val) { >+ return val === null; >+}; >+ >+ >+/** >+ * Returns true if the specified value is defined and not null. >+ * @param {?} val Variable to test. >+ * @return {boolean} Whether variable is defined and not null. >+ */ >+goog.isDefAndNotNull = function(val) { >+ // Note that undefined == null. >+ return val != null; >+}; >+ >+ >+/** >+ * Returns true if the specified value is an array. >+ * @param {?} val Variable to test. >+ * @return {boolean} Whether variable is an array. >+ */ >+goog.isArray = function(val) { >+ return goog.typeOf(val) == 'array'; >+}; >+ >+ >+/** >+ * Returns true if the object looks like an array. To qualify as array like >+ * the value needs to be either a NodeList or an object with a Number length >+ * property. As a special case, a function value is not array like, because its >+ * length property is fixed to correspond to the number of expected arguments. >+ * @param {?} val Variable to test. >+ * @return {boolean} Whether variable is an array. >+ */ >+goog.isArrayLike = function(val) { >+ var type = goog.typeOf(val); >+ // We do not use goog.isObject here in order to exclude function values. >+ return type == 'array' || type == 'object' && typeof val.length == 'number'; >+}; >+ >+ >+/** >+ * Returns true if the object looks like a Date. To qualify as Date-like the >+ * value needs to be an object and have a getFullYear() function. >+ * @param {?} val Variable to test. >+ * @return {boolean} Whether variable is a like a Date. >+ */ >+goog.isDateLike = function(val) { >+ return goog.isObject(val) && typeof val.getFullYear == 'function'; >+}; >+ >+ >+/** >+ * Returns true if the specified value is a string. >+ * @param {?} val Variable to test. >+ * @return {boolean} Whether variable is a string. >+ */ >+goog.isString = function(val) { >+ return typeof val == 'string'; >+}; >+ >+ >+/** >+ * Returns true if the specified value is a boolean. >+ * @param {?} val Variable to test. >+ * @return {boolean} Whether variable is boolean. >+ */ >+goog.isBoolean = function(val) { >+ return typeof val == 'boolean'; >+}; >+ >+ >+/** >+ * Returns true if the specified value is a number. >+ * @param {?} val Variable to test. >+ * @return {boolean} Whether variable is a number. >+ */ >+goog.isNumber = function(val) { >+ return typeof val == 'number'; >+}; >+ >+ >+/** >+ * Returns true if the specified value is a function. >+ * @param {?} val Variable to test. >+ * @return {boolean} Whether variable is a function. >+ */ >+goog.isFunction = function(val) { >+ return goog.typeOf(val) == 'function'; >+}; >+ >+ >+/** >+ * Returns true if the specified value is an object. This includes arrays and >+ * functions. >+ * @param {?} val Variable to test. >+ * @return {boolean} Whether variable is an object. >+ */ >+goog.isObject = function(val) { >+ var type = typeof val; >+ return type == 'object' && val != null || type == 'function'; >+ // return Object(val) === val also works, but is slower, especially if val is >+ // not an object. >+}; >+ >+ >+/** >+ * Gets a unique ID for an object. This mutates the object so that further calls >+ * with the same object as a parameter returns the same value. The unique ID is >+ * guaranteed to be unique across the current session amongst objects that are >+ * passed into {@code getUid}. There is no guarantee that the ID is unique or >+ * consistent across sessions. It is unsafe to generate unique ID for function >+ * prototypes. >+ * >+ * @param {Object} obj The object to get the unique ID for. >+ * @return {number} The unique ID for the object. >+ */ >+goog.getUid = function(obj) { >+ // TODO(arv): Make the type stricter, do not accept null. >+ >+ // In Opera window.hasOwnProperty exists but always returns false so we avoid >+ // using it. As a consequence the unique ID generated for BaseClass.prototype >+ // and SubClass.prototype will be the same. >+ return obj[goog.UID_PROPERTY_] || >+ (obj[goog.UID_PROPERTY_] = ++goog.uidCounter_); >+}; >+ >+ >+/** >+ * Whether the given object is already assigned a unique ID. >+ * >+ * This does not modify the object. >+ * >+ * @param {!Object} obj The object to check. >+ * @return {boolean} Whether there is an assigned unique id for the object. >+ */ >+goog.hasUid = function(obj) { >+ return !!obj[goog.UID_PROPERTY_]; >+}; >+ >+ >+/** >+ * Removes the unique ID from an object. This is useful if the object was >+ * previously mutated using {@code goog.getUid} in which case the mutation is >+ * undone. >+ * @param {Object} obj The object to remove the unique ID field from. >+ */ >+goog.removeUid = function(obj) { >+ // TODO(arv): Make the type stricter, do not accept null. >+ >+ // In IE, DOM nodes are not instances of Object and throw an exception if we >+ // try to delete. Instead we try to use removeAttribute. >+ if ('removeAttribute' in obj) { >+ obj.removeAttribute(goog.UID_PROPERTY_); >+ } >+ /** @preserveTry */ >+ try { >+ delete obj[goog.UID_PROPERTY_]; >+ } catch (ex) { >+ } >+}; >+ >+ >+/** >+ * Name for unique ID property. Initialized in a way to help avoid collisions >+ * with other closure JavaScript on the same page. >+ * @type {string} >+ * @private >+ */ >+goog.UID_PROPERTY_ = 'closure_uid_' + ((Math.random() * 1e9) >>> 0); >+ >+ >+/** >+ * Counter for UID. >+ * @type {number} >+ * @private >+ */ >+goog.uidCounter_ = 0; >+ >+ >+/** >+ * Adds a hash code field to an object. The hash code is unique for the >+ * given object. >+ * @param {Object} obj The object to get the hash code for. >+ * @return {number} The hash code for the object. >+ * @deprecated Use goog.getUid instead. >+ */ >+goog.getHashCode = goog.getUid; >+ >+ >+/** >+ * Removes the hash code field from an object. >+ * @param {Object} obj The object to remove the field from. >+ * @deprecated Use goog.removeUid instead. >+ */ >+goog.removeHashCode = goog.removeUid; >+ >+ >+/** >+ * Clones a value. The input may be an Object, Array, or basic type. Objects and >+ * arrays will be cloned recursively. >+ * >+ * WARNINGS: >+ * <code>goog.cloneObject</code> does not detect reference loops. Objects that >+ * refer to themselves will cause infinite recursion. >+ * >+ * <code>goog.cloneObject</code> is unaware of unique identifiers, and copies >+ * UIDs created by <code>getUid</code> into cloned results. >+ * >+ * @param {*} obj The value to clone. >+ * @return {*} A clone of the input value. >+ * @deprecated goog.cloneObject is unsafe. Prefer the goog.object methods. >+ */ >+goog.cloneObject = function(obj) { >+ var type = goog.typeOf(obj); >+ if (type == 'object' || type == 'array') { >+ if (obj.clone) { >+ return obj.clone(); >+ } >+ var clone = type == 'array' ? [] : {}; >+ for (var key in obj) { >+ clone[key] = goog.cloneObject(obj[key]); >+ } >+ return clone; >+ } >+ >+ return obj; >+}; >+ >+ >+/** >+ * A native implementation of goog.bind. >+ * @param {Function} fn A function to partially apply. >+ * @param {Object|undefined} selfObj Specifies the object which this should >+ * point to when the function is run. >+ * @param {...*} var_args Additional arguments that are partially applied to the >+ * function. >+ * @return {!Function} A partially-applied form of the function bind() was >+ * invoked as a method of. >+ * @private >+ * @suppress {deprecated} The compiler thinks that Function.prototype.bind is >+ * deprecated because some people have declared a pure-JS version. >+ * Only the pure-JS version is truly deprecated. >+ */ >+goog.bindNative_ = function(fn, selfObj, var_args) { >+ return /** @type {!Function} */ (fn.call.apply(fn.bind, arguments)); >+}; >+ >+ >+/** >+ * A pure-JS implementation of goog.bind. >+ * @param {Function} fn A function to partially apply. >+ * @param {Object|undefined} selfObj Specifies the object which this should >+ * point to when the function is run. >+ * @param {...*} var_args Additional arguments that are partially applied to the >+ * function. >+ * @return {!Function} A partially-applied form of the function bind() was >+ * invoked as a method of. >+ * @private >+ */ >+goog.bindJs_ = function(fn, selfObj, var_args) { >+ if (!fn) { >+ throw new Error(); >+ } >+ >+ if (arguments.length > 2) { >+ var boundArgs = Array.prototype.slice.call(arguments, 2); >+ return function() { >+ // Prepend the bound arguments to the current arguments. >+ var newArgs = Array.prototype.slice.call(arguments); >+ Array.prototype.unshift.apply(newArgs, boundArgs); >+ return fn.apply(selfObj, newArgs); >+ }; >+ >+ } else { >+ return function() { >+ return fn.apply(selfObj, arguments); >+ }; >+ } >+}; >+ >+ >+/** >+ * Partially applies this function to a particular 'this object' and zero or >+ * more arguments. The result is a new function with some arguments of the first >+ * function pre-filled and the value of this 'pre-specified'. >+ * >+ * Remaining arguments specified at call-time are appended to the pre-specified >+ * ones. >+ * >+ * Also see: {@link #partial}. >+ * >+ * Usage: >+ * <pre>var barMethBound = bind(myFunction, myObj, 'arg1', 'arg2'); >+ * barMethBound('arg3', 'arg4');</pre> >+ * >+ * @param {?function(this:T, ...)} fn A function to partially apply. >+ * @param {T} selfObj Specifies the object which this should point to when the >+ * function is run. >+ * @param {...*} var_args Additional arguments that are partially applied to the >+ * function. >+ * @return {!Function} A partially-applied form of the function bind() was >+ * invoked as a method of. >+ * @template T >+ * @suppress {deprecated} See above. >+ */ >+goog.bind = function(fn, selfObj, var_args) { >+ // TODO(nicksantos): narrow the type signature. >+ if (Function.prototype.bind && >+ // NOTE(nicksantos): Somebody pulled base.js into the default Chrome >+ // extension environment. This means that for Chrome extensions, they get >+ // the implementation of Function.prototype.bind that calls goog.bind >+ // instead of the native one. Even worse, we don't want to introduce a >+ // circular dependency between goog.bind and Function.prototype.bind, so >+ // we have to hack this to make sure it works correctly. >+ Function.prototype.bind.toString().indexOf('native code') != -1) { >+ goog.bind = goog.bindNative_; >+ } else { >+ goog.bind = goog.bindJs_; >+ } >+ return goog.bind.apply(null, arguments); >+}; >+ >+ >+/** >+ * Like bind(), except that a 'this object' is not required. Useful when the >+ * target function is already bound. >+ * >+ * Usage: >+ * var g = partial(f, arg1, arg2); >+ * g(arg3, arg4); >+ * >+ * @param {Function} fn A function to partially apply. >+ * @param {...*} var_args Additional arguments that are partially applied to fn. >+ * @return {!Function} A partially-applied form of the function bind() was >+ * invoked as a method of. >+ */ >+goog.partial = function(fn, var_args) { >+ var args = Array.prototype.slice.call(arguments, 1); >+ return function() { >+ // Clone the array (with slice()) and append additional arguments >+ // to the existing arguments. >+ var newArgs = args.slice(); >+ newArgs.push.apply(newArgs, arguments); >+ return fn.apply(this, newArgs); >+ }; >+}; >+ >+ >+/** >+ * Copies all the members of a source object to a target object. This method >+ * does not work on all browsers for all objects that contain keys such as >+ * toString or hasOwnProperty. Use goog.object.extend for this purpose. >+ * @param {Object} target Target. >+ * @param {Object} source Source. >+ */ >+goog.mixin = function(target, source) { >+ for (var x in source) { >+ target[x] = source[x]; >+ } >+ >+ // For IE7 or lower, the for-in-loop does not contain any properties that are >+ // not enumerable on the prototype object (for example, isPrototypeOf from >+ // Object.prototype) but also it will not include 'replace' on objects that >+ // extend String and change 'replace' (not that it is common for anyone to >+ // extend anything except Object). >+}; >+ >+ >+/** >+ * @return {number} An integer value representing the number of milliseconds >+ * between midnight, January 1, 1970 and the current time. >+ */ >+goog.now = (goog.TRUSTED_SITE && Date.now) || (function() { >+ // Unary plus operator converts its operand to a number which in the case of >+ // a date is done by calling getTime(). >+ return +new Date(); >+}); >+ >+ >+/** >+ * Evals JavaScript in the global scope. In IE this uses execScript, other >+ * browsers use goog.global.eval. If goog.global.eval does not evaluate in the >+ * global scope (for example, in Safari), appends a script tag instead. >+ * Throws an exception if neither execScript or eval is defined. >+ * @param {string} script JavaScript string. >+ */ >+goog.globalEval = function(script) { >+ if (goog.global.execScript) { >+ goog.global.execScript(script, 'JavaScript'); >+ } else if (goog.global.eval) { >+ // Test to see if eval works >+ if (goog.evalWorksForGlobals_ == null) { >+ goog.global.eval('var _et_ = 1;'); >+ if (typeof goog.global['_et_'] != 'undefined') { >+ delete goog.global['_et_']; >+ goog.evalWorksForGlobals_ = true; >+ } else { >+ goog.evalWorksForGlobals_ = false; >+ } >+ } >+ >+ if (goog.evalWorksForGlobals_) { >+ goog.global.eval(script); >+ } else { >+ var doc = goog.global.document; >+ var scriptElt = doc.createElement('SCRIPT'); >+ scriptElt.type = 'application/javascript'; >+ scriptElt.defer = false; >+ // Note(user): can't use .innerHTML since "t('<test>')" will fail and >+ // .text doesn't work in Safari 2. Therefore we append a text node. >+ scriptElt.appendChild(doc.createTextNode(script)); >+ doc.body.appendChild(scriptElt); >+ doc.body.removeChild(scriptElt); >+ } >+ } else { >+ throw Error('goog.globalEval not available'); >+ } >+}; >+ >+ >+/** >+ * Indicates whether or not we can call 'eval' directly to eval code in the >+ * global scope. Set to a Boolean by the first call to goog.globalEval (which >+ * empirically tests whether eval works for globals). @see goog.globalEval >+ * @type {?boolean} >+ * @private >+ */ >+goog.evalWorksForGlobals_ = null; >+ >+ >+/** >+ * Optional map of CSS class names to obfuscated names used with >+ * goog.getCssName(). >+ * @private {!Object<string, string>|undefined} >+ * @see goog.setCssNameMapping >+ */ >+goog.cssNameMapping_; >+ >+ >+/** >+ * Optional obfuscation style for CSS class names. Should be set to either >+ * 'BY_WHOLE' or 'BY_PART' if defined. >+ * @type {string|undefined} >+ * @private >+ * @see goog.setCssNameMapping >+ */ >+goog.cssNameMappingStyle_; >+ >+ >+/** >+ * Handles strings that are intended to be used as CSS class names. >+ * >+ * This function works in tandem with @see goog.setCssNameMapping. >+ * >+ * Without any mapping set, the arguments are simple joined with a hyphen and >+ * passed through unaltered. >+ * >+ * When there is a mapping, there are two possible styles in which these >+ * mappings are used. In the BY_PART style, each part (i.e. in between hyphens) >+ * of the passed in css name is rewritten according to the map. In the BY_WHOLE >+ * style, the full css name is looked up in the map directly. If a rewrite is >+ * not specified by the map, the compiler will output a warning. >+ * >+ * When the mapping is passed to the compiler, it will replace calls to >+ * goog.getCssName with the strings from the mapping, e.g. >+ * var x = goog.getCssName('foo'); >+ * var y = goog.getCssName(this.baseClass, 'active'); >+ * becomes: >+ * var x= 'foo'; >+ * var y = this.baseClass + '-active'; >+ * >+ * If one argument is passed it will be processed, if two are passed only the >+ * modifier will be processed, as it is assumed the first argument was generated >+ * as a result of calling goog.getCssName. >+ * >+ * @param {string} className The class name. >+ * @param {string=} opt_modifier A modifier to be appended to the class name. >+ * @return {string} The class name or the concatenation of the class name and >+ * the modifier. >+ */ >+goog.getCssName = function(className, opt_modifier) { >+ var getMapping = function(cssName) { >+ return goog.cssNameMapping_[cssName] || cssName; >+ }; >+ >+ var renameByParts = function(cssName) { >+ // Remap all the parts individually. >+ var parts = cssName.split('-'); >+ var mapped = []; >+ for (var i = 0; i < parts.length; i++) { >+ mapped.push(getMapping(parts[i])); >+ } >+ return mapped.join('-'); >+ }; >+ >+ var rename; >+ if (goog.cssNameMapping_) { >+ rename = goog.cssNameMappingStyle_ == 'BY_WHOLE' ? >+ getMapping : renameByParts; >+ } else { >+ rename = function(a) { >+ return a; >+ }; >+ } >+ >+ if (opt_modifier) { >+ return className + '-' + rename(opt_modifier); >+ } else { >+ return rename(className); >+ } >+}; >+ >+ >+/** >+ * Sets the map to check when returning a value from goog.getCssName(). Example: >+ * <pre> >+ * goog.setCssNameMapping({ >+ * "goog": "a", >+ * "disabled": "b", >+ * }); >+ * >+ * var x = goog.getCssName('goog'); >+ * // The following evaluates to: "a a-b". >+ * goog.getCssName('goog') + ' ' + goog.getCssName(x, 'disabled') >+ * </pre> >+ * When declared as a map of string literals to string literals, the JSCompiler >+ * will replace all calls to goog.getCssName() using the supplied map if the >+ * --closure_pass flag is set. >+ * >+ * @param {!Object} mapping A map of strings to strings where keys are possible >+ * arguments to goog.getCssName() and values are the corresponding values >+ * that should be returned. >+ * @param {string=} opt_style The style of css name mapping. There are two valid >+ * options: 'BY_PART', and 'BY_WHOLE'. >+ * @see goog.getCssName for a description. >+ */ >+goog.setCssNameMapping = function(mapping, opt_style) { >+ goog.cssNameMapping_ = mapping; >+ goog.cssNameMappingStyle_ = opt_style; >+}; >+ >+ >+/** >+ * To use CSS renaming in compiled mode, one of the input files should have a >+ * call to goog.setCssNameMapping() with an object literal that the JSCompiler >+ * can extract and use to replace all calls to goog.getCssName(). In uncompiled >+ * mode, JavaScript code should be loaded before this base.js file that declares >+ * a global variable, CLOSURE_CSS_NAME_MAPPING, which is used below. This is >+ * to ensure that the mapping is loaded before any calls to goog.getCssName() >+ * are made in uncompiled mode. >+ * >+ * A hook for overriding the CSS name mapping. >+ * @type {!Object<string, string>|undefined} >+ */ >+goog.global.CLOSURE_CSS_NAME_MAPPING; >+ >+ >+if (!COMPILED && goog.global.CLOSURE_CSS_NAME_MAPPING) { >+ // This does not call goog.setCssNameMapping() because the JSCompiler >+ // requires that goog.setCssNameMapping() be called with an object literal. >+ goog.cssNameMapping_ = goog.global.CLOSURE_CSS_NAME_MAPPING; >+} >+ >+ >+/** >+ * Gets a localized message. >+ * >+ * This function is a compiler primitive. If you give the compiler a localized >+ * message bundle, it will replace the string at compile-time with a localized >+ * version, and expand goog.getMsg call to a concatenated string. >+ * >+ * Messages must be initialized in the form: >+ * <code> >+ * var MSG_NAME = goog.getMsg('Hello {$placeholder}', {'placeholder': 'world'}); >+ * </code> >+ * >+ * @param {string} str Translatable string, places holders in the form {$foo}. >+ * @param {Object<string, string>=} opt_values Maps place holder name to value. >+ * @return {string} message with placeholders filled. >+ */ >+goog.getMsg = function(str, opt_values) { >+ if (opt_values) { >+ str = str.replace(/\{\$([^}]+)}/g, function(match, key) { >+ return key in opt_values ? opt_values[key] : match; >+ }); >+ } >+ return str; >+}; >+ >+ >+/** >+ * Gets a localized message. If the message does not have a translation, gives a >+ * fallback message. >+ * >+ * This is useful when introducing a new message that has not yet been >+ * translated into all languages. >+ * >+ * This function is a compiler primitive. Must be used in the form: >+ * <code>var x = goog.getMsgWithFallback(MSG_A, MSG_B);</code> >+ * where MSG_A and MSG_B were initialized with goog.getMsg. >+ * >+ * @param {string} a The preferred message. >+ * @param {string} b The fallback message. >+ * @return {string} The best translated message. >+ */ >+goog.getMsgWithFallback = function(a, b) { >+ return a; >+}; >+ >+ >+/** >+ * Exposes an unobfuscated global namespace path for the given object. >+ * Note that fields of the exported object *will* be obfuscated, unless they are >+ * exported in turn via this function or goog.exportProperty. >+ * >+ * Also handy for making public items that are defined in anonymous closures. >+ * >+ * ex. goog.exportSymbol('public.path.Foo', Foo); >+ * >+ * ex. goog.exportSymbol('public.path.Foo.staticFunction', Foo.staticFunction); >+ * public.path.Foo.staticFunction(); >+ * >+ * ex. goog.exportSymbol('public.path.Foo.prototype.myMethod', >+ * Foo.prototype.myMethod); >+ * new public.path.Foo().myMethod(); >+ * >+ * @param {string} publicPath Unobfuscated name to export. >+ * @param {*} object Object the name should point to. >+ * @param {Object=} opt_objectToExportTo The object to add the path to; default >+ * is goog.global. >+ */ >+goog.exportSymbol = function(publicPath, object, opt_objectToExportTo) { >+ goog.exportPath_(publicPath, object, opt_objectToExportTo); >+}; >+ >+ >+/** >+ * Exports a property unobfuscated into the object's namespace. >+ * ex. goog.exportProperty(Foo, 'staticFunction', Foo.staticFunction); >+ * ex. goog.exportProperty(Foo.prototype, 'myMethod', Foo.prototype.myMethod); >+ * @param {Object} object Object whose static property is being exported. >+ * @param {string} publicName Unobfuscated name to export. >+ * @param {*} symbol Object the name should point to. >+ */ >+goog.exportProperty = function(object, publicName, symbol) { >+ object[publicName] = symbol; >+}; >+ >+ >+/** >+ * Inherit the prototype methods from one constructor into another. >+ * >+ * Usage: >+ * <pre> >+ * function ParentClass(a, b) { } >+ * ParentClass.prototype.foo = function(a) { }; >+ * >+ * function ChildClass(a, b, c) { >+ * ChildClass.base(this, 'constructor', a, b); >+ * } >+ * goog.inherits(ChildClass, ParentClass); >+ * >+ * var child = new ChildClass('a', 'b', 'see'); >+ * child.foo(); // This works. >+ * </pre> >+ * >+ * @param {Function} childCtor Child class. >+ * @param {Function} parentCtor Parent class. >+ */ >+goog.inherits = function(childCtor, parentCtor) { >+ /** @constructor */ >+ function tempCtor() {}; >+ tempCtor.prototype = parentCtor.prototype; >+ childCtor.superClass_ = parentCtor.prototype; >+ childCtor.prototype = new tempCtor(); >+ /** @override */ >+ childCtor.prototype.constructor = childCtor; >+ >+ /** >+ * Calls superclass constructor/method. >+ * >+ * This function is only available if you use goog.inherits to >+ * express inheritance relationships between classes. >+ * >+ * NOTE: This is a replacement for goog.base and for superClass_ >+ * property defined in childCtor. >+ * >+ * @param {!Object} me Should always be "this". >+ * @param {string} methodName The method name to call. Calling >+ * superclass constructor can be done with the special string >+ * 'constructor'. >+ * @param {...*} var_args The arguments to pass to superclass >+ * method/constructor. >+ * @return {*} The return value of the superclass method/constructor. >+ */ >+ childCtor.base = function(me, methodName, var_args) { >+ // Copying using loop to avoid deop due to passing arguments object to >+ // function. This is faster in many JS engines as of late 2014. >+ var args = new Array(arguments.length - 2); >+ for (var i = 2; i < arguments.length; i++) { >+ args[i - 2] = arguments[i]; >+ } >+ return parentCtor.prototype[methodName].apply(me, args); >+ }; >+}; >+ >+ >+/** >+ * Call up to the superclass. >+ * >+ * If this is called from a constructor, then this calls the superclass >+ * constructor with arguments 1-N. >+ * >+ * If this is called from a prototype method, then you must pass the name of the >+ * method as the second argument to this function. If you do not, you will get a >+ * runtime error. This calls the superclass' method with arguments 2-N. >+ * >+ * This function only works if you use goog.inherits to express inheritance >+ * relationships between your classes. >+ * >+ * This function is a compiler primitive. At compile-time, the compiler will do >+ * macro expansion to remove a lot of the extra overhead that this function >+ * introduces. The compiler will also enforce a lot of the assumptions that this >+ * function makes, and treat it as a compiler error if you break them. >+ * >+ * @param {!Object} me Should always be "this". >+ * @param {*=} opt_methodName The method name if calling a super method. >+ * @param {...*} var_args The rest of the arguments. >+ * @return {*} The return value of the superclass method. >+ * @suppress {es5Strict} This method can not be used in strict mode, but >+ * all Closure Library consumers must depend on this file. >+ */ >+goog.base = function(me, opt_methodName, var_args) { >+ var caller = arguments.callee.caller; >+ >+ if (goog.STRICT_MODE_COMPATIBLE || (goog.DEBUG && !caller)) { >+ throw Error('arguments.caller not defined. goog.base() cannot be used ' + >+ 'with strict mode code. See ' + >+ 'http://www.ecma-international.org/ecma-262/5.1/#sec-C'); >+ } >+ >+ if (caller.superClass_) { >+ // Copying using loop to avoid deop due to passing arguments object to >+ // function. This is faster in many JS engines as of late 2014. >+ var ctorArgs = new Array(arguments.length - 1); >+ for (var i = 1; i < arguments.length; i++) { >+ ctorArgs[i - 1] = arguments[i]; >+ } >+ // This is a constructor. Call the superclass constructor. >+ return caller.superClass_.constructor.apply(me, ctorArgs); >+ } >+ >+ // Copying using loop to avoid deop due to passing arguments object to >+ // function. This is faster in many JS engines as of late 2014. >+ var args = new Array(arguments.length - 2); >+ for (var i = 2; i < arguments.length; i++) { >+ args[i - 2] = arguments[i]; >+ } >+ var foundCaller = false; >+ for (var ctor = me.constructor; >+ ctor; ctor = ctor.superClass_ && ctor.superClass_.constructor) { >+ if (ctor.prototype[opt_methodName] === caller) { >+ foundCaller = true; >+ } else if (foundCaller) { >+ return ctor.prototype[opt_methodName].apply(me, args); >+ } >+ } >+ >+ // If we did not find the caller in the prototype chain, then one of two >+ // things happened: >+ // 1) The caller is an instance method. >+ // 2) This method was not called by the right caller. >+ if (me[opt_methodName] === caller) { >+ return me.constructor.prototype[opt_methodName].apply(me, args); >+ } else { >+ throw Error( >+ 'goog.base called from a method of one name ' + >+ 'to a method of a different name'); >+ } >+}; >+ >+ >+/** >+ * Allow for aliasing within scope functions. This function exists for >+ * uncompiled code - in compiled code the calls will be inlined and the aliases >+ * applied. In uncompiled code the function is simply run since the aliases as >+ * written are valid JavaScript. >+ * >+ * >+ * @param {function()} fn Function to call. This function can contain aliases >+ * to namespaces (e.g. "var dom = goog.dom") or classes >+ * (e.g. "var Timer = goog.Timer"). >+ */ >+goog.scope = function(fn) { >+ fn.call(goog.global); >+}; >+ >+ >+/* >+ * To support uncompiled, strict mode bundles that use eval to divide source >+ * like so: >+ * eval('someSource;//# sourceUrl sourcefile.js'); >+ * We need to export the globally defined symbols "goog" and "COMPILED". >+ * Exporting "goog" breaks the compiler optimizations, so we required that >+ * be defined externally. >+ * NOTE: We don't use goog.exportSymbol here because we don't want to trigger >+ * extern generation when that compiler option is enabled. >+ */ >+if (!COMPILED) { >+ goog.global['COMPILED'] = COMPILED; >+} >+ >+ >+ >+//============================================================================== >+// goog.defineClass implementation >+//============================================================================== >+ >+ >+/** >+ * Creates a restricted form of a Closure "class": >+ * - from the compiler's perspective, the instance returned from the >+ * constructor is sealed (no new properties may be added). This enables >+ * better checks. >+ * - the compiler will rewrite this definition to a form that is optimal >+ * for type checking and optimization (initially this will be a more >+ * traditional form). >+ * >+ * @param {Function} superClass The superclass, Object or null. >+ * @param {goog.defineClass.ClassDescriptor} def >+ * An object literal describing >+ * the class. It may have the following properties: >+ * "constructor": the constructor function >+ * "statics": an object literal containing methods to add to the constructor >+ * as "static" methods or a function that will receive the constructor >+ * function as its only parameter to which static properties can >+ * be added. >+ * all other properties are added to the prototype. >+ * @return {!Function} The class constructor. >+ */ >+goog.defineClass = function(superClass, def) { >+ // TODO(johnlenz): consider making the superClass an optional parameter. >+ var constructor = def.constructor; >+ var statics = def.statics; >+ // Wrap the constructor prior to setting up the prototype and static methods. >+ if (!constructor || constructor == Object.prototype.constructor) { >+ constructor = function() { >+ throw Error('cannot instantiate an interface (no constructor defined).'); >+ }; >+ } >+ >+ var cls = goog.defineClass.createSealingConstructor_(constructor, superClass); >+ if (superClass) { >+ goog.inherits(cls, superClass); >+ } >+ >+ // Remove all the properties that should not be copied to the prototype. >+ delete def.constructor; >+ delete def.statics; >+ >+ goog.defineClass.applyProperties_(cls.prototype, def); >+ if (statics != null) { >+ if (statics instanceof Function) { >+ statics(cls); >+ } else { >+ goog.defineClass.applyProperties_(cls, statics); >+ } >+ } >+ >+ return cls; >+}; >+ >+ >+/** >+ * @typedef { >+ * !Object| >+ * {constructor:!Function}| >+ * {constructor:!Function, statics:(Object|function(Function):void)}} >+ * @suppress {missingProvide} >+ */ >+goog.defineClass.ClassDescriptor; >+ >+ >+/** >+ * @define {boolean} Whether the instances returned by >+ * goog.defineClass should be sealed when possible. >+ */ >+goog.define('goog.defineClass.SEAL_CLASS_INSTANCES', goog.DEBUG); >+ >+ >+/** >+ * If goog.defineClass.SEAL_CLASS_INSTANCES is enabled and Object.seal is >+ * defined, this function will wrap the constructor in a function that seals the >+ * results of the provided constructor function. >+ * >+ * @param {!Function} ctr The constructor whose results maybe be sealed. >+ * @param {Function} superClass The superclass constructor. >+ * @return {!Function} The replacement constructor. >+ * @private >+ */ >+goog.defineClass.createSealingConstructor_ = function(ctr, superClass) { >+ if (goog.defineClass.SEAL_CLASS_INSTANCES && >+ Object.seal instanceof Function) { >+ // Don't seal subclasses of unsealable-tagged legacy classes. >+ if (superClass && superClass.prototype && >+ superClass.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]) { >+ return ctr; >+ } >+ /** >+ * @this {Object} >+ * @return {?} >+ */ >+ var wrappedCtr = function() { >+ // Don't seal an instance of a subclass when it calls the constructor of >+ // its super class as there is most likely still setup to do. >+ var instance = ctr.apply(this, arguments) || this; >+ instance[goog.UID_PROPERTY_] = instance[goog.UID_PROPERTY_]; >+ if (this.constructor === wrappedCtr) { >+ Object.seal(instance); >+ } >+ return instance; >+ }; >+ return wrappedCtr; >+ } >+ return ctr; >+}; >+ >+ >+// TODO(johnlenz): share these values with the goog.object >+/** >+ * The names of the fields that are defined on Object.prototype. >+ * @type {!Array<string>} >+ * @private >+ * @const >+ */ >+goog.defineClass.OBJECT_PROTOTYPE_FIELDS_ = [ >+ 'constructor', >+ 'hasOwnProperty', >+ 'isPrototypeOf', >+ 'propertyIsEnumerable', >+ 'toLocaleString', >+ 'toString', >+ 'valueOf' >+]; >+ >+ >+// TODO(johnlenz): share this function with the goog.object >+/** >+ * @param {!Object} target The object to add properties to. >+ * @param {!Object} source The object to copy properties from. >+ * @private >+ */ >+goog.defineClass.applyProperties_ = function(target, source) { >+ // TODO(johnlenz): update this to support ES5 getters/setters >+ >+ var key; >+ for (key in source) { >+ if (Object.prototype.hasOwnProperty.call(source, key)) { >+ target[key] = source[key]; >+ } >+ } >+ >+ // For IE the for-in-loop does not contain any properties that are not >+ // enumerable on the prototype object (for example isPrototypeOf from >+ // Object.prototype) and it will also not include 'replace' on objects that >+ // extend String and change 'replace' (not that it is common for anyone to >+ // extend anything except Object). >+ for (var i = 0; i < goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length; i++) { >+ key = goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[i]; >+ if (Object.prototype.hasOwnProperty.call(source, key)) { >+ target[key] = source[key]; >+ } >+ } >+}; >+ >+ >+/** >+ * Sealing classes breaks the older idiom of assigning properties on the >+ * prototype rather than in the constructor. As such, goog.defineClass >+ * must not seal subclasses of these old-style classes until they are fixed. >+ * Until then, this marks a class as "broken", instructing defineClass >+ * not to seal subclasses. >+ * @param {!Function} ctr The legacy constructor to tag as unsealable. >+ */ >+goog.tagUnsealableClass = function(ctr) { >+ if (!COMPILED && goog.defineClass.SEAL_CLASS_INSTANCES) { >+ ctr.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_] = true; >+ } >+}; >+ >+ >+/** >+ * Name for unsealable tag property. >+ * @const @private {string} >+ */ >+goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_ = 'goog_defineClass_legacy_unsealable'; >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/closure/goog/deps.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/closure/goog/deps.js >new file mode 100644 >index 00000000000..c64782643cb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/closure-library/closure/goog/deps.js >@@ -0,0 +1,1465 @@ >+// Copyright 2015 The Closure Library Authors. All Rights Reserved. >+// >+// Licensed under the Apache License, Version 2.0 (the "License"); >+// you may not use this file except in compliance with the License. >+// You may obtain a copy of the License at >+// >+// http://www.apache.org/licenses/LICENSE-2.0 >+// >+// Unless required by applicable law or agreed to in writing, software >+// distributed under the License is distributed on an "AS-IS" BASIS, >+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >+// See the License for the specific language governing permissions and >+// limitations under the License. >+// >+// This file has been auto-generated by GenJsDeps, please do not edit. >+ >+goog.addDependency('../../third_party/closure/goog/caja/string/html/htmlparser.js', ['goog.string.html.HtmlParser', 'goog.string.html.HtmlParser.EFlags', 'goog.string.html.HtmlParser.Elements', 'goog.string.html.HtmlParser.Entities', 'goog.string.html.HtmlSaxHandler'], [], false); >+goog.addDependency('../../third_party/closure/goog/caja/string/html/htmlsanitizer.js', ['goog.string.html.HtmlSanitizer', 'goog.string.html.HtmlSanitizer.AttributeType', 'goog.string.html.HtmlSanitizer.Attributes', 'goog.string.html.htmlSanitize'], ['goog.string.StringBuffer', 'goog.string.html.HtmlParser', 'goog.string.html.HtmlParser.EFlags', 'goog.string.html.HtmlParser.Elements', 'goog.string.html.HtmlSaxHandler'], false); >+goog.addDependency('../../third_party/closure/goog/dojo/dom/query.js', ['goog.dom.query'], ['goog.array', 'goog.dom', 'goog.functions', 'goog.string', 'goog.userAgent'], false); >+goog.addDependency('../../third_party/closure/goog/jpeg_encoder/jpeg_encoder_basic.js', ['goog.crypt.JpegEncoder'], ['goog.crypt.base64'], false); >+goog.addDependency('../../third_party/closure/goog/loremipsum/text/loremipsum.js', ['goog.text.LoremIpsum'], ['goog.array', 'goog.math', 'goog.string', 'goog.structs.Map', 'goog.structs.Set'], false); >+goog.addDependency('../../third_party/closure/goog/mochikit/async/deferred.js', ['goog.async.Deferred', 'goog.async.Deferred.AlreadyCalledError', 'goog.async.Deferred.CanceledError'], ['goog.Promise', 'goog.Thenable', 'goog.array', 'goog.asserts', 'goog.debug.Error'], false); >+goog.addDependency('../../third_party/closure/goog/mochikit/async/deferredlist.js', ['goog.async.DeferredList'], ['goog.async.Deferred'], false); >+goog.addDependency('../../third_party/closure/goog/osapi/osapi.js', ['goog.osapi'], [], false); >+goog.addDependency('../../third_party/closure/goog/svgpan/svgpan.js', ['svgpan.SvgPan'], ['goog.Disposable', 'goog.events', 'goog.events.EventType', 'goog.events.MouseWheelHandler'], false); >+goog.addDependency('a11y/aria/announcer.js', ['goog.a11y.aria.Announcer'], ['goog.Disposable', 'goog.Timer', 'goog.a11y.aria', 'goog.a11y.aria.LivePriority', 'goog.a11y.aria.State', 'goog.dom', 'goog.dom.TagName', 'goog.object'], false); >+goog.addDependency('a11y/aria/announcer_test.js', ['goog.a11y.aria.AnnouncerTest'], ['goog.a11y.aria', 'goog.a11y.aria.Announcer', 'goog.a11y.aria.LivePriority', 'goog.a11y.aria.State', 'goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.dom.iframe', 'goog.testing.MockClock', 'goog.testing.jsunit'], false); >+goog.addDependency('a11y/aria/aria.js', ['goog.a11y.aria'], ['goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.a11y.aria.datatables', 'goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.object', 'goog.string'], false); >+goog.addDependency('a11y/aria/aria_test.js', ['goog.a11y.ariaTest'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.dom', 'goog.dom.TagName', 'goog.testing.jsunit'], false); >+goog.addDependency('a11y/aria/attributes.js', ['goog.a11y.aria.AutoCompleteValues', 'goog.a11y.aria.CheckedValues', 'goog.a11y.aria.DropEffectValues', 'goog.a11y.aria.ExpandedValues', 'goog.a11y.aria.GrabbedValues', 'goog.a11y.aria.InvalidValues', 'goog.a11y.aria.LivePriority', 'goog.a11y.aria.OrientationValues', 'goog.a11y.aria.PressedValues', 'goog.a11y.aria.RelevantValues', 'goog.a11y.aria.SelectedValues', 'goog.a11y.aria.SortValues', 'goog.a11y.aria.State'], [], false); >+goog.addDependency('a11y/aria/datatables.js', ['goog.a11y.aria.datatables'], ['goog.a11y.aria.State', 'goog.object'], false); >+goog.addDependency('a11y/aria/roles.js', ['goog.a11y.aria.Role'], [], false); >+goog.addDependency('array/array.js', ['goog.array', 'goog.array.ArrayLike'], ['goog.asserts'], false); >+goog.addDependency('array/array_test.js', ['goog.arrayTest'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('asserts/asserts.js', ['goog.asserts', 'goog.asserts.AssertionError'], ['goog.debug.Error', 'goog.dom.NodeType', 'goog.string'], false); >+goog.addDependency('asserts/asserts_test.js', ['goog.assertsTest'], ['goog.asserts', 'goog.asserts.AssertionError', 'goog.dom', 'goog.dom.TagName', 'goog.string', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('async/animationdelay.js', ['goog.async.AnimationDelay'], ['goog.Disposable', 'goog.events', 'goog.functions'], false); >+goog.addDependency('async/animationdelay_test.js', ['goog.async.AnimationDelayTest'], ['goog.async.AnimationDelay', 'goog.testing.AsyncTestCase', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('async/conditionaldelay.js', ['goog.async.ConditionalDelay'], ['goog.Disposable', 'goog.async.Delay'], false); >+goog.addDependency('async/conditionaldelay_test.js', ['goog.async.ConditionalDelayTest'], ['goog.async.ConditionalDelay', 'goog.testing.MockClock', 'goog.testing.jsunit'], false); >+goog.addDependency('async/delay.js', ['goog.Delay', 'goog.async.Delay'], ['goog.Disposable', 'goog.Timer'], false); >+goog.addDependency('async/delay_test.js', ['goog.async.DelayTest'], ['goog.async.Delay', 'goog.testing.MockClock', 'goog.testing.jsunit'], false); >+goog.addDependency('async/freelist.js', ['goog.async.FreeList'], [], false); >+goog.addDependency('async/freelist_test.js', ['goog.async.FreeListTest'], ['goog.async.FreeList', 'goog.testing.jsunit'], false); >+goog.addDependency('async/nexttick.js', ['goog.async.nextTick', 'goog.async.throwException'], ['goog.debug.entryPointRegistry', 'goog.dom.TagName', 'goog.functions', 'goog.labs.userAgent.browser', 'goog.labs.userAgent.engine'], false); >+goog.addDependency('async/nexttick_test.js', ['goog.async.nextTickTest'], ['goog.async.nextTick', 'goog.debug.ErrorHandler', 'goog.debug.entryPointRegistry', 'goog.dom', 'goog.dom.TagName', 'goog.labs.userAgent.browser', 'goog.testing.AsyncTestCase', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], false); >+goog.addDependency('async/run.js', ['goog.async.run'], ['goog.async.WorkQueue', 'goog.async.nextTick', 'goog.async.throwException', 'goog.testing.watchers'], false); >+goog.addDependency('async/run_test.js', ['goog.async.runTest'], ['goog.async.run', 'goog.testing.MockClock', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('async/throttle.js', ['goog.Throttle', 'goog.async.Throttle'], ['goog.Disposable', 'goog.Timer'], false); >+goog.addDependency('async/throttle_test.js', ['goog.async.ThrottleTest'], ['goog.async.Throttle', 'goog.testing.MockClock', 'goog.testing.jsunit'], false); >+goog.addDependency('async/workqueue.js', ['goog.async.WorkItem', 'goog.async.WorkQueue'], ['goog.asserts', 'goog.async.FreeList'], false); >+goog.addDependency('async/workqueue_test.js', ['goog.async.WorkQueueTest'], ['goog.async.WorkQueue', 'goog.testing.jsunit'], false); >+goog.addDependency('base.js', ['goog'], [], false); >+goog.addDependency('base_module_test.js', ['goog.baseModuleTest'], ['goog.Timer', 'goog.test_module', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], true); >+goog.addDependency('base_test.js', ['an.existing.path', 'dup.base', 'far.out', 'goog.baseTest', 'goog.explicit', 'goog.implicit.explicit', 'goog.test', 'goog.test.name', 'goog.test.name.space', 'goog.xy', 'goog.xy.z', 'ns', 'testDep.bar'], ['goog.Timer', 'goog.dom.TagName', 'goog.functions', 'goog.test_module', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.userAgent'], false); >+goog.addDependency('color/alpha.js', ['goog.color.alpha'], ['goog.color'], false); >+goog.addDependency('color/alpha_test.js', ['goog.color.alphaTest'], ['goog.array', 'goog.color', 'goog.color.alpha', 'goog.testing.jsunit'], false); >+goog.addDependency('color/color.js', ['goog.color', 'goog.color.Hsl', 'goog.color.Hsv', 'goog.color.Rgb'], ['goog.color.names', 'goog.math'], false); >+goog.addDependency('color/color_test.js', ['goog.colorTest'], ['goog.array', 'goog.color', 'goog.color.names', 'goog.testing.jsunit'], false); >+goog.addDependency('color/names.js', ['goog.color.names'], [], false); >+goog.addDependency('crypt/aes.js', ['goog.crypt.Aes'], ['goog.asserts', 'goog.crypt.BlockCipher'], false); >+goog.addDependency('crypt/aes_test.js', ['goog.crypt.AesTest'], ['goog.crypt', 'goog.crypt.Aes', 'goog.testing.jsunit'], false); >+goog.addDependency('crypt/arc4.js', ['goog.crypt.Arc4'], ['goog.asserts'], false); >+goog.addDependency('crypt/arc4_test.js', ['goog.crypt.Arc4Test'], ['goog.array', 'goog.crypt.Arc4', 'goog.testing.jsunit'], false); >+goog.addDependency('crypt/base64.js', ['goog.crypt.base64'], ['goog.crypt', 'goog.userAgent'], false); >+goog.addDependency('crypt/base64_test.js', ['goog.crypt.base64Test'], ['goog.crypt', 'goog.crypt.base64', 'goog.testing.jsunit'], false); >+goog.addDependency('crypt/basen.js', ['goog.crypt.baseN'], [], false); >+goog.addDependency('crypt/basen_test.js', ['goog.crypt.baseNTest'], ['goog.crypt.baseN', 'goog.testing.jsunit'], false); >+goog.addDependency('crypt/blobhasher.js', ['goog.crypt.BlobHasher', 'goog.crypt.BlobHasher.EventType'], ['goog.asserts', 'goog.events.EventTarget', 'goog.fs', 'goog.log'], false); >+goog.addDependency('crypt/blobhasher_test.js', ['goog.crypt.BlobHasherTest'], ['goog.crypt', 'goog.crypt.BlobHasher', 'goog.crypt.Md5', 'goog.events', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], false); >+goog.addDependency('crypt/blockcipher.js', ['goog.crypt.BlockCipher'], [], false); >+goog.addDependency('crypt/bytestring_perf.js', ['goog.crypt.byteArrayToStringPerf'], ['goog.array', 'goog.dom', 'goog.testing.PerformanceTable'], false); >+goog.addDependency('crypt/cbc.js', ['goog.crypt.Cbc'], ['goog.array', 'goog.asserts', 'goog.crypt'], false); >+goog.addDependency('crypt/cbc_test.js', ['goog.crypt.CbcTest'], ['goog.crypt', 'goog.crypt.Aes', 'goog.crypt.Cbc', 'goog.testing.jsunit'], false); >+goog.addDependency('crypt/crypt.js', ['goog.crypt'], ['goog.array', 'goog.asserts'], false); >+goog.addDependency('crypt/crypt_test.js', ['goog.cryptTest'], ['goog.crypt', 'goog.string', 'goog.testing.jsunit'], false); >+goog.addDependency('crypt/hash.js', ['goog.crypt.Hash'], [], false); >+goog.addDependency('crypt/hash32.js', ['goog.crypt.hash32'], ['goog.crypt'], false); >+goog.addDependency('crypt/hash32_test.js', ['goog.crypt.hash32Test'], ['goog.crypt.hash32', 'goog.testing.TestCase', 'goog.testing.jsunit'], false); >+goog.addDependency('crypt/hashtester.js', ['goog.crypt.hashTester'], ['goog.array', 'goog.crypt', 'goog.dom', 'goog.dom.TagName', 'goog.testing.PerformanceTable', 'goog.testing.PseudoRandom', 'goog.testing.asserts'], false); >+goog.addDependency('crypt/hmac.js', ['goog.crypt.Hmac'], ['goog.crypt.Hash'], false); >+goog.addDependency('crypt/hmac_test.js', ['goog.crypt.HmacTest'], ['goog.crypt.Hmac', 'goog.crypt.Sha1', 'goog.crypt.hashTester', 'goog.testing.jsunit'], false); >+goog.addDependency('crypt/md5.js', ['goog.crypt.Md5'], ['goog.crypt.Hash'], false); >+goog.addDependency('crypt/md5_test.js', ['goog.crypt.Md5Test'], ['goog.crypt', 'goog.crypt.Md5', 'goog.crypt.hashTester', 'goog.testing.jsunit'], false); >+goog.addDependency('crypt/pbkdf2.js', ['goog.crypt.pbkdf2'], ['goog.array', 'goog.asserts', 'goog.crypt', 'goog.crypt.Hmac', 'goog.crypt.Sha1'], false); >+goog.addDependency('crypt/pbkdf2_test.js', ['goog.crypt.pbkdf2Test'], ['goog.crypt', 'goog.crypt.pbkdf2', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('crypt/sha1.js', ['goog.crypt.Sha1'], ['goog.crypt.Hash'], false); >+goog.addDependency('crypt/sha1_test.js', ['goog.crypt.Sha1Test'], ['goog.crypt', 'goog.crypt.Sha1', 'goog.crypt.hashTester', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('crypt/sha2.js', ['goog.crypt.Sha2'], ['goog.array', 'goog.asserts', 'goog.crypt.Hash'], false); >+goog.addDependency('crypt/sha224.js', ['goog.crypt.Sha224'], ['goog.crypt.Sha2'], false); >+goog.addDependency('crypt/sha224_test.js', ['goog.crypt.Sha224Test'], ['goog.crypt', 'goog.crypt.Sha224', 'goog.crypt.hashTester', 'goog.testing.jsunit'], false); >+goog.addDependency('crypt/sha256.js', ['goog.crypt.Sha256'], ['goog.crypt.Sha2'], false); >+goog.addDependency('crypt/sha256_test.js', ['goog.crypt.Sha256Test'], ['goog.crypt', 'goog.crypt.Sha256', 'goog.crypt.hashTester', 'goog.testing.jsunit'], false); >+goog.addDependency('crypt/sha2_64bit.js', ['goog.crypt.Sha2_64bit'], ['goog.array', 'goog.asserts', 'goog.crypt.Hash', 'goog.math.Long'], false); >+goog.addDependency('crypt/sha2_64bit_test.js', ['goog.crypt.Sha2_64bit_test'], ['goog.array', 'goog.crypt', 'goog.crypt.Sha384', 'goog.crypt.Sha512', 'goog.crypt.Sha512_256', 'goog.crypt.hashTester', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('crypt/sha384.js', ['goog.crypt.Sha384'], ['goog.crypt.Sha2_64bit'], false); >+goog.addDependency('crypt/sha512.js', ['goog.crypt.Sha512'], ['goog.crypt.Sha2_64bit'], false); >+goog.addDependency('crypt/sha512_256.js', ['goog.crypt.Sha512_256'], ['goog.crypt.Sha2_64bit'], false); >+goog.addDependency('cssom/cssom.js', ['goog.cssom', 'goog.cssom.CssRuleType'], ['goog.array', 'goog.dom', 'goog.dom.TagName'], false); >+goog.addDependency('cssom/cssom_test.js', ['goog.cssomTest'], ['goog.array', 'goog.cssom', 'goog.cssom.CssRuleType', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('cssom/iframe/style.js', ['goog.cssom.iframe.style'], ['goog.asserts', 'goog.cssom', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.string', 'goog.style', 'goog.userAgent'], false); >+goog.addDependency('cssom/iframe/style_test.js', ['goog.cssom.iframe.styleTest'], ['goog.cssom', 'goog.cssom.iframe.style', 'goog.dom', 'goog.dom.DomHelper', 'goog.dom.TagName', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('datasource/datamanager.js', ['goog.ds.DataManager'], ['goog.ds.BasicNodeList', 'goog.ds.DataNode', 'goog.ds.Expr', 'goog.object', 'goog.string', 'goog.structs', 'goog.structs.Map'], false); >+goog.addDependency('datasource/datasource.js', ['goog.ds.BaseDataNode', 'goog.ds.BasicNodeList', 'goog.ds.DataNode', 'goog.ds.DataNodeList', 'goog.ds.EmptyNodeList', 'goog.ds.LoadState', 'goog.ds.SortedNodeList', 'goog.ds.Util', 'goog.ds.logger'], ['goog.array', 'goog.log'], false); >+goog.addDependency('datasource/datasource_test.js', ['goog.ds.JsDataSourceTest'], ['goog.dom.xml', 'goog.ds.DataManager', 'goog.ds.JsDataSource', 'goog.ds.SortedNodeList', 'goog.ds.XmlDataSource', 'goog.testing.jsunit'], false); >+goog.addDependency('datasource/expr.js', ['goog.ds.Expr'], ['goog.ds.BasicNodeList', 'goog.ds.EmptyNodeList', 'goog.string'], false); >+goog.addDependency('datasource/expr_test.js', ['goog.ds.ExprTest'], ['goog.ds.DataManager', 'goog.ds.Expr', 'goog.ds.JsDataSource', 'goog.testing.jsunit'], false); >+goog.addDependency('datasource/fastdatanode.js', ['goog.ds.AbstractFastDataNode', 'goog.ds.FastDataNode', 'goog.ds.FastListNode', 'goog.ds.PrimitiveFastDataNode'], ['goog.ds.DataManager', 'goog.ds.DataNodeList', 'goog.ds.EmptyNodeList', 'goog.string'], false); >+goog.addDependency('datasource/fastdatanode_test.js', ['goog.ds.FastDataNodeTest'], ['goog.array', 'goog.ds.DataManager', 'goog.ds.Expr', 'goog.ds.FastDataNode', 'goog.testing.jsunit'], false); >+goog.addDependency('datasource/jsdatasource.js', ['goog.ds.JsDataSource', 'goog.ds.JsPropertyDataSource'], ['goog.ds.BaseDataNode', 'goog.ds.BasicNodeList', 'goog.ds.DataManager', 'goog.ds.DataNode', 'goog.ds.EmptyNodeList', 'goog.ds.LoadState'], false); >+goog.addDependency('datasource/jsondatasource.js', ['goog.ds.JsonDataSource'], ['goog.Uri', 'goog.dom', 'goog.dom.TagName', 'goog.ds.DataManager', 'goog.ds.JsDataSource', 'goog.ds.LoadState', 'goog.ds.logger', 'goog.log'], false); >+goog.addDependency('datasource/jsxmlhttpdatasource.js', ['goog.ds.JsXmlHttpDataSource'], ['goog.Uri', 'goog.ds.DataManager', 'goog.ds.FastDataNode', 'goog.ds.LoadState', 'goog.ds.logger', 'goog.events', 'goog.log', 'goog.net.EventType', 'goog.net.XhrIo'], false); >+goog.addDependency('datasource/jsxmlhttpdatasource_test.js', ['goog.ds.JsXmlHttpDataSourceTest'], ['goog.ds.JsXmlHttpDataSource', 'goog.testing.TestQueue', 'goog.testing.jsunit', 'goog.testing.net.XhrIo'], false); >+goog.addDependency('datasource/xmldatasource.js', ['goog.ds.XmlDataSource', 'goog.ds.XmlHttpDataSource'], ['goog.Uri', 'goog.dom.NodeType', 'goog.dom.xml', 'goog.ds.BasicNodeList', 'goog.ds.DataManager', 'goog.ds.DataNode', 'goog.ds.LoadState', 'goog.ds.logger', 'goog.net.XhrIo', 'goog.string'], false); >+goog.addDependency('date/date.js', ['goog.date', 'goog.date.Date', 'goog.date.DateTime', 'goog.date.Interval', 'goog.date.month', 'goog.date.weekDay'], ['goog.asserts', 'goog.date.DateLike', 'goog.i18n.DateTimeSymbols', 'goog.string'], false); >+goog.addDependency('date/date_test.js', ['goog.dateTest'], ['goog.array', 'goog.date', 'goog.date.Date', 'goog.date.DateTime', 'goog.date.Interval', 'goog.date.month', 'goog.date.weekDay', 'goog.i18n.DateTimeSymbols', 'goog.testing.ExpectedFailures', 'goog.testing.jsunit', 'goog.userAgent', 'goog.userAgent.platform', 'goog.userAgent.product', 'goog.userAgent.product.isVersion'], false); >+goog.addDependency('date/datelike.js', ['goog.date.DateLike'], [], false); >+goog.addDependency('date/daterange.js', ['goog.date.DateRange', 'goog.date.DateRange.Iterator', 'goog.date.DateRange.StandardDateRangeKeys'], ['goog.date.Date', 'goog.date.Interval', 'goog.iter.Iterator', 'goog.iter.StopIteration'], false); >+goog.addDependency('date/daterange_test.js', ['goog.date.DateRangeTest'], ['goog.date.Date', 'goog.date.DateRange', 'goog.date.Interval', 'goog.i18n.DateTimeSymbols', 'goog.testing.jsunit'], false); >+goog.addDependency('date/duration.js', ['goog.date.duration'], ['goog.i18n.DateTimeFormat', 'goog.i18n.MessageFormat'], false); >+goog.addDependency('date/duration_test.js', ['goog.date.durationTest'], ['goog.date.duration', 'goog.i18n.DateTimeFormat', 'goog.i18n.DateTimeSymbols', 'goog.i18n.DateTimeSymbols_bn', 'goog.i18n.DateTimeSymbols_en', 'goog.i18n.DateTimeSymbols_fa', 'goog.testing.jsunit'], false); >+goog.addDependency('date/relative.js', ['goog.date.relative', 'goog.date.relative.TimeDeltaFormatter', 'goog.date.relative.Unit'], ['goog.i18n.DateTimeFormat'], false); >+goog.addDependency('date/relative_test.js', ['goog.date.relativeTest'], ['goog.date.DateTime', 'goog.date.relative', 'goog.i18n.DateTimeFormat', 'goog.testing.jsunit'], false); >+goog.addDependency('date/relativewithplurals.js', ['goog.date.relativeWithPlurals'], ['goog.date.relative', 'goog.date.relative.Unit', 'goog.i18n.MessageFormat'], false); >+goog.addDependency('date/relativewithplurals_test.js', ['goog.date.relativeWithPluralsTest'], ['goog.date.relative', 'goog.date.relativeTest', 'goog.date.relativeWithPlurals', 'goog.i18n.DateTimeFormat', 'goog.i18n.DateTimeSymbols', 'goog.i18n.DateTimeSymbols_bn', 'goog.i18n.DateTimeSymbols_en', 'goog.i18n.DateTimeSymbols_fa', 'goog.i18n.NumberFormatSymbols', 'goog.i18n.NumberFormatSymbols_bn', 'goog.i18n.NumberFormatSymbols_en', 'goog.i18n.NumberFormatSymbols_fa'], false); >+goog.addDependency('date/utcdatetime.js', ['goog.date.UtcDateTime'], ['goog.date', 'goog.date.Date', 'goog.date.DateTime', 'goog.date.Interval'], false); >+goog.addDependency('date/utcdatetime_test.js', ['goog.date.UtcDateTimeTest'], ['goog.date.Interval', 'goog.date.UtcDateTime', 'goog.date.month', 'goog.date.weekDay', 'goog.testing.jsunit'], false); >+goog.addDependency('db/cursor.js', ['goog.db.Cursor'], ['goog.async.Deferred', 'goog.db.Error', 'goog.debug', 'goog.events.EventTarget'], false); >+goog.addDependency('db/db.js', ['goog.db', 'goog.db.BlockedCallback', 'goog.db.UpgradeNeededCallback'], ['goog.asserts', 'goog.async.Deferred', 'goog.db.Error', 'goog.db.IndexedDb', 'goog.db.Transaction'], false); >+goog.addDependency('db/db_test.js', ['goog.dbTest'], ['goog.Disposable', 'goog.array', 'goog.async.Deferred', 'goog.async.DeferredList', 'goog.db', 'goog.db.Cursor', 'goog.db.Error', 'goog.db.IndexedDb', 'goog.db.KeyRange', 'goog.db.Transaction', 'goog.events', 'goog.object', 'goog.testing.AsyncTestCase', 'goog.testing.PropertyReplacer', 'goog.testing.asserts', 'goog.testing.jsunit', 'goog.userAgent.product', 'goog.userAgent.product.isVersion'], false); >+goog.addDependency('db/error.js', ['goog.db.Error', 'goog.db.Error.ErrorCode', 'goog.db.Error.ErrorName', 'goog.db.Error.VersionChangeBlockedError'], ['goog.debug.Error'], false); >+goog.addDependency('db/index.js', ['goog.db.Index'], ['goog.async.Deferred', 'goog.db.Cursor', 'goog.db.Error', 'goog.debug'], false); >+goog.addDependency('db/indexeddb.js', ['goog.db.IndexedDb'], ['goog.async.Deferred', 'goog.db.Error', 'goog.db.ObjectStore', 'goog.db.Transaction', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventTarget'], false); >+goog.addDependency('db/keyrange.js', ['goog.db.KeyRange'], [], false); >+goog.addDependency('db/objectstore.js', ['goog.db.ObjectStore'], ['goog.async.Deferred', 'goog.db.Cursor', 'goog.db.Error', 'goog.db.Index', 'goog.debug', 'goog.events'], false); >+goog.addDependency('db/old_db_test.js', ['goog.oldDbTest'], ['goog.async.Deferred', 'goog.db', 'goog.db.Cursor', 'goog.db.Error', 'goog.db.IndexedDb', 'goog.db.KeyRange', 'goog.db.Transaction', 'goog.events', 'goog.testing.AsyncTestCase', 'goog.testing.asserts', 'goog.testing.jsunit', 'goog.userAgent.product', 'goog.userAgent.product.isVersion'], false); >+goog.addDependency('db/transaction.js', ['goog.db.Transaction', 'goog.db.Transaction.TransactionMode'], ['goog.async.Deferred', 'goog.db.Error', 'goog.db.ObjectStore', 'goog.events', 'goog.events.EventHandler', 'goog.events.EventTarget'], false); >+goog.addDependency('debug/console.js', ['goog.debug.Console'], ['goog.debug.LogManager', 'goog.debug.Logger', 'goog.debug.TextFormatter'], false); >+goog.addDependency('debug/console_test.js', ['goog.debug.ConsoleTest'], ['goog.debug.Console', 'goog.debug.LogRecord', 'goog.debug.Logger', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('debug/debug.js', ['goog.debug'], ['goog.array', 'goog.html.SafeHtml', 'goog.html.SafeUrl', 'goog.html.uncheckedconversions', 'goog.string.Const', 'goog.structs.Set', 'goog.userAgent'], false); >+goog.addDependency('debug/debug_test.js', ['goog.debugTest'], ['goog.debug', 'goog.html.SafeHtml', 'goog.structs.Set', 'goog.testing.jsunit'], false); >+goog.addDependency('debug/debugwindow.js', ['goog.debug.DebugWindow'], ['goog.debug.HtmlFormatter', 'goog.debug.LogManager', 'goog.debug.Logger', 'goog.dom.safe', 'goog.html.SafeHtml', 'goog.html.SafeStyleSheet', 'goog.string.Const', 'goog.structs.CircularBuffer', 'goog.userAgent'], false); >+goog.addDependency('debug/debugwindow_test.js', ['goog.debug.DebugWindowTest'], ['goog.debug.DebugWindow', 'goog.testing.jsunit'], false); >+goog.addDependency('debug/devcss/devcss.js', ['goog.debug.DevCss', 'goog.debug.DevCss.UserAgent'], ['goog.asserts', 'goog.cssom', 'goog.dom.classlist', 'goog.events', 'goog.events.EventType', 'goog.string', 'goog.userAgent'], false); >+goog.addDependency('debug/devcss/devcss_test.js', ['goog.debug.DevCssTest'], ['goog.debug.DevCss', 'goog.style', 'goog.testing.jsunit'], false); >+goog.addDependency('debug/devcss/devcssrunner.js', ['goog.debug.devCssRunner'], ['goog.debug.DevCss'], false); >+goog.addDependency('debug/divconsole.js', ['goog.debug.DivConsole'], ['goog.debug.HtmlFormatter', 'goog.debug.LogManager', 'goog.dom.TagName', 'goog.dom.safe', 'goog.html.SafeHtml', 'goog.style'], false); >+goog.addDependency('debug/enhanceerror_test.js', ['goog.debugEnhanceErrorTest'], ['goog.debug', 'goog.testing.jsunit'], false); >+goog.addDependency('debug/entrypointregistry.js', ['goog.debug.EntryPointMonitor', 'goog.debug.entryPointRegistry'], ['goog.asserts'], false); >+goog.addDependency('debug/entrypointregistry_test.js', ['goog.debug.entryPointRegistryTest'], ['goog.debug.ErrorHandler', 'goog.debug.entryPointRegistry', 'goog.testing.jsunit'], false); >+goog.addDependency('debug/error.js', ['goog.debug.Error'], [], false); >+goog.addDependency('debug/error_test.js', ['goog.debug.ErrorTest'], ['goog.debug.Error', 'goog.testing.ExpectedFailures', 'goog.testing.jsunit', 'goog.userAgent', 'goog.userAgent.product'], false); >+goog.addDependency('debug/errorhandler.js', ['goog.debug.ErrorHandler', 'goog.debug.ErrorHandler.ProtectedFunctionError'], ['goog.Disposable', 'goog.asserts', 'goog.debug', 'goog.debug.EntryPointMonitor', 'goog.debug.Error', 'goog.debug.Trace'], false); >+goog.addDependency('debug/errorhandler_async_test.js', ['goog.debug.ErrorHandlerAsyncTest'], ['goog.debug.ErrorHandler', 'goog.testing.AsyncTestCase', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('debug/errorhandler_test.js', ['goog.debug.ErrorHandlerTest'], ['goog.debug.ErrorHandler', 'goog.testing.MockControl', 'goog.testing.jsunit'], false); >+goog.addDependency('debug/errorhandlerweakdep.js', ['goog.debug.errorHandlerWeakDep'], [], false); >+goog.addDependency('debug/errorreporter.js', ['goog.debug.ErrorReporter', 'goog.debug.ErrorReporter.ExceptionEvent'], ['goog.asserts', 'goog.debug', 'goog.debug.Error', 'goog.debug.ErrorHandler', 'goog.debug.entryPointRegistry', 'goog.events', 'goog.events.Event', 'goog.events.EventTarget', 'goog.log', 'goog.net.XhrIo', 'goog.object', 'goog.string', 'goog.uri.utils', 'goog.userAgent'], false); >+goog.addDependency('debug/errorreporter_test.js', ['goog.debug.ErrorReporterTest'], ['goog.debug.Error', 'goog.debug.ErrorReporter', 'goog.events', 'goog.functions', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('debug/fancywindow.js', ['goog.debug.FancyWindow'], ['goog.array', 'goog.debug.DebugWindow', 'goog.debug.LogManager', 'goog.debug.Logger', 'goog.dom.DomHelper', 'goog.dom.TagName', 'goog.dom.safe', 'goog.html.SafeHtml', 'goog.html.SafeStyleSheet', 'goog.object', 'goog.string', 'goog.string.Const', 'goog.userAgent'], false); >+goog.addDependency('debug/formatter.js', ['goog.debug.Formatter', 'goog.debug.HtmlFormatter', 'goog.debug.TextFormatter'], ['goog.debug', 'goog.debug.Logger', 'goog.debug.RelativeTimeProvider', 'goog.html.SafeHtml'], false); >+goog.addDependency('debug/formatter_test.js', ['goog.debug.FormatterTest'], ['goog.debug.HtmlFormatter', 'goog.debug.LogRecord', 'goog.debug.Logger', 'goog.html.SafeHtml', 'goog.testing.jsunit'], false); >+goog.addDependency('debug/fpsdisplay.js', ['goog.debug.FpsDisplay'], ['goog.asserts', 'goog.async.AnimationDelay', 'goog.dom', 'goog.dom.TagName', 'goog.ui.Component'], false); >+goog.addDependency('debug/fpsdisplay_test.js', ['goog.debug.FpsDisplayTest'], ['goog.debug.FpsDisplay', 'goog.testing.AsyncTestCase', 'goog.testing.jsunit'], false); >+goog.addDependency('debug/gcdiagnostics.js', ['goog.debug.GcDiagnostics'], ['goog.debug.Trace', 'goog.log', 'goog.userAgent'], false); >+goog.addDependency('debug/logbuffer.js', ['goog.debug.LogBuffer'], ['goog.asserts', 'goog.debug.LogRecord'], false); >+goog.addDependency('debug/logbuffer_test.js', ['goog.debug.LogBufferTest'], ['goog.debug.LogBuffer', 'goog.debug.Logger', 'goog.testing.jsunit'], false); >+goog.addDependency('debug/logger.js', ['goog.debug.LogManager', 'goog.debug.Loggable', 'goog.debug.Logger', 'goog.debug.Logger.Level'], ['goog.array', 'goog.asserts', 'goog.debug', 'goog.debug.LogBuffer', 'goog.debug.LogRecord'], false); >+goog.addDependency('debug/logger_test.js', ['goog.debug.LoggerTest'], ['goog.debug.LogManager', 'goog.debug.Logger', 'goog.testing.jsunit'], false); >+goog.addDependency('debug/logrecord.js', ['goog.debug.LogRecord'], [], false); >+goog.addDependency('debug/logrecordserializer.js', ['goog.debug.logRecordSerializer'], ['goog.debug.LogRecord', 'goog.debug.Logger', 'goog.json', 'goog.object'], false); >+goog.addDependency('debug/logrecordserializer_test.js', ['goog.debug.logRecordSerializerTest'], ['goog.debug.LogRecord', 'goog.debug.Logger', 'goog.debug.logRecordSerializer', 'goog.testing.jsunit'], false); >+goog.addDependency('debug/relativetimeprovider.js', ['goog.debug.RelativeTimeProvider'], [], false); >+goog.addDependency('debug/tracer.js', ['goog.debug.Trace'], ['goog.array', 'goog.debug.Logger', 'goog.iter', 'goog.log', 'goog.structs.Map', 'goog.structs.SimplePool'], false); >+goog.addDependency('debug/tracer_test.js', ['goog.debug.TraceTest'], ['goog.debug.Trace', 'goog.testing.jsunit'], false); >+goog.addDependency('defineclass_test.js', ['goog.defineClassTest'], ['goog.testing.jsunit'], false); >+goog.addDependency('disposable/disposable.js', ['goog.Disposable', 'goog.dispose', 'goog.disposeAll'], ['goog.disposable.IDisposable'], false); >+goog.addDependency('disposable/disposable_test.js', ['goog.DisposableTest'], ['goog.Disposable', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('disposable/idisposable.js', ['goog.disposable.IDisposable'], [], false); >+goog.addDependency('dom/abstractmultirange.js', ['goog.dom.AbstractMultiRange'], ['goog.array', 'goog.dom', 'goog.dom.AbstractRange'], false); >+goog.addDependency('dom/abstractrange.js', ['goog.dom.AbstractRange', 'goog.dom.RangeIterator', 'goog.dom.RangeType'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.SavedCaretRange', 'goog.dom.TagIterator', 'goog.userAgent'], false); >+goog.addDependency('dom/abstractrange_test.js', ['goog.dom.AbstractRangeTest'], ['goog.dom', 'goog.dom.AbstractRange', 'goog.dom.Range', 'goog.dom.TagName', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/animationframe/animationframe.js', ['goog.dom.animationFrame', 'goog.dom.animationFrame.Spec', 'goog.dom.animationFrame.State'], ['goog.dom.animationFrame.polyfill'], false); >+goog.addDependency('dom/animationframe/polyfill.js', ['goog.dom.animationFrame.polyfill'], [], false); >+goog.addDependency('dom/annotate.js', ['goog.dom.annotate', 'goog.dom.annotate.AnnotateFn'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.safe', 'goog.html.SafeHtml'], false); >+goog.addDependency('dom/annotate_test.js', ['goog.dom.annotateTest'], ['goog.dom', 'goog.dom.TagName', 'goog.dom.annotate', 'goog.html.SafeHtml', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/browserfeature.js', ['goog.dom.BrowserFeature'], ['goog.userAgent'], false); >+goog.addDependency('dom/browserrange/abstractrange.js', ['goog.dom.browserrange.AbstractRange'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.RangeEndpoint', 'goog.dom.TagName', 'goog.dom.TextRangeIterator', 'goog.iter', 'goog.math.Coordinate', 'goog.string', 'goog.string.StringBuffer', 'goog.userAgent'], false); >+goog.addDependency('dom/browserrange/browserrange.js', ['goog.dom.browserrange', 'goog.dom.browserrange.Error'], ['goog.dom', 'goog.dom.BrowserFeature', 'goog.dom.NodeType', 'goog.dom.browserrange.GeckoRange', 'goog.dom.browserrange.IeRange', 'goog.dom.browserrange.OperaRange', 'goog.dom.browserrange.W3cRange', 'goog.dom.browserrange.WebKitRange', 'goog.userAgent'], false); >+goog.addDependency('dom/browserrange/browserrange_test.js', ['goog.dom.browserrangeTest'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.dom.RangeEndpoint', 'goog.dom.TagName', 'goog.dom.browserrange', 'goog.testing.dom', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('dom/browserrange/geckorange.js', ['goog.dom.browserrange.GeckoRange'], ['goog.dom.browserrange.W3cRange'], false); >+goog.addDependency('dom/browserrange/ierange.js', ['goog.dom.browserrange.IeRange'], ['goog.array', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.RangeEndpoint', 'goog.dom.TagName', 'goog.dom.browserrange.AbstractRange', 'goog.log', 'goog.string'], false); >+goog.addDependency('dom/browserrange/operarange.js', ['goog.dom.browserrange.OperaRange'], ['goog.dom.browserrange.W3cRange'], false); >+goog.addDependency('dom/browserrange/w3crange.js', ['goog.dom.browserrange.W3cRange'], ['goog.array', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.RangeEndpoint', 'goog.dom.TagName', 'goog.dom.browserrange.AbstractRange', 'goog.string', 'goog.userAgent'], false); >+goog.addDependency('dom/browserrange/webkitrange.js', ['goog.dom.browserrange.WebKitRange'], ['goog.dom.RangeEndpoint', 'goog.dom.browserrange.W3cRange', 'goog.userAgent'], false); >+goog.addDependency('dom/bufferedviewportsizemonitor.js', ['goog.dom.BufferedViewportSizeMonitor'], ['goog.asserts', 'goog.async.Delay', 'goog.events', 'goog.events.EventTarget', 'goog.events.EventType'], false); >+goog.addDependency('dom/bufferedviewportsizemonitor_test.js', ['goog.dom.BufferedViewportSizeMonitorTest'], ['goog.dom.BufferedViewportSizeMonitor', 'goog.dom.ViewportSizeMonitor', 'goog.events', 'goog.events.EventType', 'goog.math.Size', 'goog.testing.MockClock', 'goog.testing.events', 'goog.testing.events.Event', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/classes.js', ['goog.dom.classes'], ['goog.array'], false); >+goog.addDependency('dom/classes_test.js', ['goog.dom.classes_test'], ['goog.dom', 'goog.dom.TagName', 'goog.dom.classes', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/classlist.js', ['goog.dom.classlist'], ['goog.array'], false); >+goog.addDependency('dom/classlist_test.js', ['goog.dom.classlist_test'], ['goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.testing.ExpectedFailures', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/controlrange.js', ['goog.dom.ControlRange', 'goog.dom.ControlRangeIterator'], ['goog.array', 'goog.dom', 'goog.dom.AbstractMultiRange', 'goog.dom.AbstractRange', 'goog.dom.RangeIterator', 'goog.dom.RangeType', 'goog.dom.SavedRange', 'goog.dom.TagWalkType', 'goog.dom.TextRange', 'goog.iter.StopIteration', 'goog.userAgent'], false); >+goog.addDependency('dom/controlrange_test.js', ['goog.dom.ControlRangeTest'], ['goog.dom', 'goog.dom.ControlRange', 'goog.dom.RangeType', 'goog.dom.TagName', 'goog.dom.TextRange', 'goog.testing.dom', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('dom/dataset.js', ['goog.dom.dataset'], ['goog.string', 'goog.userAgent.product'], false); >+goog.addDependency('dom/dataset_test.js', ['goog.dom.datasetTest'], ['goog.dom', 'goog.dom.dataset', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/dom.js', ['goog.dom', 'goog.dom.Appendable', 'goog.dom.DomHelper'], ['goog.array', 'goog.asserts', 'goog.dom.BrowserFeature', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.safe', 'goog.html.SafeHtml', 'goog.math.Coordinate', 'goog.math.Size', 'goog.object', 'goog.string', 'goog.string.Unicode', 'goog.userAgent'], false); >+goog.addDependency('dom/dom_test.js', ['goog.dom.dom_test'], ['goog.dom', 'goog.dom.BrowserFeature', 'goog.dom.DomHelper', 'goog.dom.InputType', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.functions', 'goog.html.testing', 'goog.object', 'goog.string.Unicode', 'goog.testing.PropertyReplacer', 'goog.testing.asserts', 'goog.userAgent', 'goog.userAgent.product', 'goog.userAgent.product.isVersion'], false); >+goog.addDependency('dom/fontsizemonitor.js', ['goog.dom.FontSizeMonitor', 'goog.dom.FontSizeMonitor.EventType'], ['goog.dom', 'goog.events', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.userAgent'], false); >+goog.addDependency('dom/fontsizemonitor_test.js', ['goog.dom.FontSizeMonitorTest'], ['goog.dom', 'goog.dom.FontSizeMonitor', 'goog.dom.TagName', 'goog.events', 'goog.events.Event', 'goog.testing.PropertyReplacer', 'goog.testing.events', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('dom/forms.js', ['goog.dom.forms'], ['goog.dom.InputType', 'goog.dom.TagName', 'goog.structs.Map'], false); >+goog.addDependency('dom/forms_test.js', ['goog.dom.formsTest'], ['goog.dom', 'goog.dom.forms', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/fullscreen.js', ['goog.dom.fullscreen', 'goog.dom.fullscreen.EventType'], ['goog.dom', 'goog.userAgent'], false); >+goog.addDependency('dom/iframe.js', ['goog.dom.iframe'], ['goog.dom', 'goog.dom.safe', 'goog.html.SafeHtml', 'goog.html.SafeStyle', 'goog.html.legacyconversions', 'goog.userAgent'], false); >+goog.addDependency('dom/iframe_test.js', ['goog.dom.iframeTest'], ['goog.dom', 'goog.dom.iframe', 'goog.html.SafeHtml', 'goog.html.SafeStyle', 'goog.string.Const', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/inputtype.js', ['goog.dom.InputType'], [], false); >+goog.addDependency('dom/inputtype_test.js', ['goog.dom.InputTypeTest'], ['goog.dom.InputType', 'goog.object'], false); >+goog.addDependency('dom/iter.js', ['goog.dom.iter.AncestorIterator', 'goog.dom.iter.ChildIterator', 'goog.dom.iter.SiblingIterator'], ['goog.iter.Iterator', 'goog.iter.StopIteration'], false); >+goog.addDependency('dom/iter_test.js', ['goog.dom.iterTest'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.iter.AncestorIterator', 'goog.dom.iter.ChildIterator', 'goog.dom.iter.SiblingIterator', 'goog.testing.dom', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/multirange.js', ['goog.dom.MultiRange', 'goog.dom.MultiRangeIterator'], ['goog.array', 'goog.dom.AbstractMultiRange', 'goog.dom.AbstractRange', 'goog.dom.RangeIterator', 'goog.dom.RangeType', 'goog.dom.SavedRange', 'goog.dom.TextRange', 'goog.iter.StopIteration', 'goog.log'], false); >+goog.addDependency('dom/multirange_test.js', ['goog.dom.MultiRangeTest'], ['goog.dom', 'goog.dom.MultiRange', 'goog.dom.Range', 'goog.iter', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/nodeiterator.js', ['goog.dom.NodeIterator'], ['goog.dom.TagIterator'], false); >+goog.addDependency('dom/nodeiterator_test.js', ['goog.dom.NodeIteratorTest'], ['goog.dom', 'goog.dom.NodeIterator', 'goog.testing.dom', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/nodeoffset.js', ['goog.dom.NodeOffset'], ['goog.Disposable', 'goog.dom.TagName'], false); >+goog.addDependency('dom/nodeoffset_test.js', ['goog.dom.NodeOffsetTest'], ['goog.dom', 'goog.dom.NodeOffset', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/nodetype.js', ['goog.dom.NodeType'], [], false); >+goog.addDependency('dom/pattern/abstractpattern.js', ['goog.dom.pattern.AbstractPattern'], ['goog.dom.pattern.MatchType'], false); >+goog.addDependency('dom/pattern/allchildren.js', ['goog.dom.pattern.AllChildren'], ['goog.dom.pattern.AbstractPattern', 'goog.dom.pattern.MatchType'], false); >+goog.addDependency('dom/pattern/callback/callback.js', ['goog.dom.pattern.callback'], ['goog.dom', 'goog.dom.TagWalkType', 'goog.iter'], false); >+goog.addDependency('dom/pattern/callback/counter.js', ['goog.dom.pattern.callback.Counter'], [], false); >+goog.addDependency('dom/pattern/callback/test.js', ['goog.dom.pattern.callback.Test'], ['goog.iter.StopIteration'], false); >+goog.addDependency('dom/pattern/childmatches.js', ['goog.dom.pattern.ChildMatches'], ['goog.dom.pattern.AllChildren', 'goog.dom.pattern.MatchType'], false); >+goog.addDependency('dom/pattern/endtag.js', ['goog.dom.pattern.EndTag'], ['goog.dom.TagWalkType', 'goog.dom.pattern.Tag'], false); >+goog.addDependency('dom/pattern/fulltag.js', ['goog.dom.pattern.FullTag'], ['goog.dom.pattern.MatchType', 'goog.dom.pattern.StartTag', 'goog.dom.pattern.Tag'], false); >+goog.addDependency('dom/pattern/matcher.js', ['goog.dom.pattern.Matcher'], ['goog.dom.TagIterator', 'goog.dom.pattern.MatchType', 'goog.iter'], false); >+goog.addDependency('dom/pattern/matcher_test.js', ['goog.dom.pattern.matcherTest'], ['goog.dom', 'goog.dom.TagName', 'goog.dom.pattern.EndTag', 'goog.dom.pattern.FullTag', 'goog.dom.pattern.Matcher', 'goog.dom.pattern.Repeat', 'goog.dom.pattern.Sequence', 'goog.dom.pattern.StartTag', 'goog.dom.pattern.callback.Counter', 'goog.dom.pattern.callback.Test', 'goog.iter.StopIteration', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/pattern/nodetype.js', ['goog.dom.pattern.NodeType'], ['goog.dom.pattern.AbstractPattern', 'goog.dom.pattern.MatchType'], false); >+goog.addDependency('dom/pattern/pattern.js', ['goog.dom.pattern', 'goog.dom.pattern.MatchType'], [], false); >+goog.addDependency('dom/pattern/pattern_test.js', ['goog.dom.patternTest'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.TagWalkType', 'goog.dom.pattern.AllChildren', 'goog.dom.pattern.ChildMatches', 'goog.dom.pattern.EndTag', 'goog.dom.pattern.FullTag', 'goog.dom.pattern.MatchType', 'goog.dom.pattern.NodeType', 'goog.dom.pattern.Repeat', 'goog.dom.pattern.Sequence', 'goog.dom.pattern.StartTag', 'goog.dom.pattern.Text', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/pattern/repeat.js', ['goog.dom.pattern.Repeat'], ['goog.dom.NodeType', 'goog.dom.pattern.AbstractPattern', 'goog.dom.pattern.MatchType'], false); >+goog.addDependency('dom/pattern/sequence.js', ['goog.dom.pattern.Sequence'], ['goog.dom.NodeType', 'goog.dom.pattern', 'goog.dom.pattern.AbstractPattern', 'goog.dom.pattern.MatchType'], false); >+goog.addDependency('dom/pattern/starttag.js', ['goog.dom.pattern.StartTag'], ['goog.dom.TagWalkType', 'goog.dom.pattern.Tag'], false); >+goog.addDependency('dom/pattern/tag.js', ['goog.dom.pattern.Tag'], ['goog.dom.pattern', 'goog.dom.pattern.AbstractPattern', 'goog.dom.pattern.MatchType', 'goog.object'], false); >+goog.addDependency('dom/pattern/text.js', ['goog.dom.pattern.Text'], ['goog.dom.NodeType', 'goog.dom.pattern', 'goog.dom.pattern.AbstractPattern', 'goog.dom.pattern.MatchType'], false); >+goog.addDependency('dom/range.js', ['goog.dom.Range'], ['goog.dom', 'goog.dom.AbstractRange', 'goog.dom.BrowserFeature', 'goog.dom.ControlRange', 'goog.dom.MultiRange', 'goog.dom.NodeType', 'goog.dom.TextRange', 'goog.userAgent'], false); >+goog.addDependency('dom/range_test.js', ['goog.dom.RangeTest'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.dom.RangeType', 'goog.dom.TagName', 'goog.dom.TextRange', 'goog.dom.browserrange', 'goog.testing.dom', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('dom/rangeendpoint.js', ['goog.dom.RangeEndpoint'], [], false); >+goog.addDependency('dom/safe.js', ['goog.dom.safe'], ['goog.html.SafeHtml', 'goog.html.SafeUrl'], false); >+goog.addDependency('dom/safe_test.js', ['goog.dom.safeTest'], ['goog.dom.safe', 'goog.html.SafeUrl', 'goog.html.testing', 'goog.string.Const', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/savedcaretrange.js', ['goog.dom.SavedCaretRange'], ['goog.array', 'goog.dom', 'goog.dom.SavedRange', 'goog.dom.TagName', 'goog.string'], false); >+goog.addDependency('dom/savedcaretrange_test.js', ['goog.dom.SavedCaretRangeTest'], ['goog.dom', 'goog.dom.Range', 'goog.dom.SavedCaretRange', 'goog.testing.dom', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('dom/savedrange.js', ['goog.dom.SavedRange'], ['goog.Disposable', 'goog.log'], false); >+goog.addDependency('dom/savedrange_test.js', ['goog.dom.SavedRangeTest'], ['goog.dom', 'goog.dom.Range', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('dom/selection.js', ['goog.dom.selection'], ['goog.dom.InputType', 'goog.string', 'goog.userAgent'], false); >+goog.addDependency('dom/selection_test.js', ['goog.dom.selectionTest'], ['goog.dom', 'goog.dom.InputType', 'goog.dom.TagName', 'goog.dom.selection', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('dom/tagiterator.js', ['goog.dom.TagIterator', 'goog.dom.TagWalkType'], ['goog.dom', 'goog.dom.NodeType', 'goog.iter.Iterator', 'goog.iter.StopIteration'], false); >+goog.addDependency('dom/tagiterator_test.js', ['goog.dom.TagIteratorTest'], ['goog.dom', 'goog.dom.TagIterator', 'goog.dom.TagName', 'goog.dom.TagWalkType', 'goog.iter', 'goog.iter.StopIteration', 'goog.testing.dom', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/tagname.js', ['goog.dom.TagName'], [], false); >+goog.addDependency('dom/tagname_test.js', ['goog.dom.TagNameTest'], ['goog.dom.TagName', 'goog.object', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/tags.js', ['goog.dom.tags'], ['goog.object'], false); >+goog.addDependency('dom/tags_test.js', ['goog.dom.tagsTest'], ['goog.dom.tags', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/textrange.js', ['goog.dom.TextRange'], ['goog.array', 'goog.dom', 'goog.dom.AbstractRange', 'goog.dom.RangeType', 'goog.dom.SavedRange', 'goog.dom.TagName', 'goog.dom.TextRangeIterator', 'goog.dom.browserrange', 'goog.string', 'goog.userAgent'], false); >+goog.addDependency('dom/textrange_test.js', ['goog.dom.TextRangeTest'], ['goog.dom', 'goog.dom.ControlRange', 'goog.dom.Range', 'goog.dom.TextRange', 'goog.math.Coordinate', 'goog.style', 'goog.testing.ExpectedFailures', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('dom/textrangeiterator.js', ['goog.dom.TextRangeIterator'], ['goog.array', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.RangeIterator', 'goog.dom.TagName', 'goog.iter.StopIteration'], false); >+goog.addDependency('dom/textrangeiterator_test.js', ['goog.dom.TextRangeIteratorTest'], ['goog.dom', 'goog.dom.TagName', 'goog.dom.TextRangeIterator', 'goog.iter.StopIteration', 'goog.testing.dom', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/vendor.js', ['goog.dom.vendor'], ['goog.string', 'goog.userAgent'], false); >+goog.addDependency('dom/vendor_test.js', ['goog.dom.vendorTest'], ['goog.array', 'goog.dom.vendor', 'goog.labs.userAgent.util', 'goog.testing.MockUserAgent', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.userAgent', 'goog.userAgentTestUtil'], false); >+goog.addDependency('dom/viewportsizemonitor.js', ['goog.dom.ViewportSizeMonitor'], ['goog.dom', 'goog.events', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.math.Size'], false); >+goog.addDependency('dom/viewportsizemonitor_test.js', ['goog.dom.ViewportSizeMonitorTest'], ['goog.dom.ViewportSizeMonitor', 'goog.events', 'goog.events.Event', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.math.Size', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], false); >+goog.addDependency('dom/xml.js', ['goog.dom.xml'], ['goog.dom', 'goog.dom.NodeType'], false); >+goog.addDependency('dom/xml_test.js', ['goog.dom.xmlTest'], ['goog.dom.TagName', 'goog.dom.xml', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('editor/browserfeature.js', ['goog.editor.BrowserFeature'], ['goog.editor.defines', 'goog.userAgent', 'goog.userAgent.product', 'goog.userAgent.product.isVersion'], false); >+goog.addDependency('editor/browserfeature_test.js', ['goog.editor.BrowserFeatureTest'], ['goog.dom', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.testing.ExpectedFailures', 'goog.testing.jsunit'], false); >+goog.addDependency('editor/clicktoeditwrapper.js', ['goog.editor.ClickToEditWrapper'], ['goog.Disposable', 'goog.dom', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Command', 'goog.editor.Field', 'goog.editor.range', 'goog.events.BrowserEvent', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.log'], false); >+goog.addDependency('editor/clicktoeditwrapper_test.js', ['goog.editor.ClickToEditWrapperTest'], ['goog.dom', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.ClickToEditWrapper', 'goog.editor.SeamlessField', 'goog.testing.MockClock', 'goog.testing.events', 'goog.testing.jsunit', 'goog.userAgent', 'goog.userAgent.product'], false); >+goog.addDependency('editor/command.js', ['goog.editor.Command'], [], false); >+goog.addDependency('editor/contenteditablefield.js', ['goog.editor.ContentEditableField'], ['goog.asserts', 'goog.editor.Field', 'goog.log'], false); >+goog.addDependency('editor/contenteditablefield_test.js', ['goog.editor.ContentEditableFieldTest'], ['goog.dom', 'goog.editor.ContentEditableField', 'goog.editor.field_test', 'goog.testing.jsunit'], false); >+goog.addDependency('editor/defines.js', ['goog.editor.defines'], [], false); >+goog.addDependency('editor/field.js', ['goog.editor.Field', 'goog.editor.Field.EventType'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.array', 'goog.asserts', 'goog.async.Delay', 'goog.dom', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Command', 'goog.editor.Plugin', 'goog.editor.icontent', 'goog.editor.icontent.FieldFormatInfo', 'goog.editor.icontent.FieldStyleInfo', 'goog.editor.node', 'goog.editor.range', 'goog.events', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.functions', 'goog.log', 'goog.log.Level', 'goog.string', 'goog.string.Unicode', 'goog.style', 'goog.userAgent', 'goog.userAgent.product'], false); >+goog.addDependency('editor/field_test.js', ['goog.editor.field_test'], ['goog.dom', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Field', 'goog.editor.Plugin', 'goog.editor.range', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.functions', 'goog.testing.LooseMock', 'goog.testing.MockClock', 'goog.testing.dom', 'goog.testing.events', 'goog.testing.events.Event', 'goog.testing.recordFunction', 'goog.userAgent'], false); >+goog.addDependency('editor/focus.js', ['goog.editor.focus'], ['goog.dom.selection'], false); >+goog.addDependency('editor/focus_test.js', ['goog.editor.focusTest'], ['goog.dom.selection', 'goog.editor.BrowserFeature', 'goog.editor.focus', 'goog.testing.jsunit'], false); >+goog.addDependency('editor/icontent.js', ['goog.editor.icontent', 'goog.editor.icontent.FieldFormatInfo', 'goog.editor.icontent.FieldStyleInfo'], ['goog.dom', 'goog.editor.BrowserFeature', 'goog.style', 'goog.userAgent'], false); >+goog.addDependency('editor/icontent_test.js', ['goog.editor.icontentTest'], ['goog.dom', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.icontent', 'goog.editor.icontent.FieldFormatInfo', 'goog.editor.icontent.FieldStyleInfo', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('editor/link.js', ['goog.editor.Link'], ['goog.array', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Command', 'goog.editor.node', 'goog.editor.range', 'goog.string', 'goog.string.Unicode', 'goog.uri.utils', 'goog.uri.utils.ComponentIndex'], false); >+goog.addDependency('editor/link_test.js', ['goog.editor.LinkTest'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.Link', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('editor/node.js', ['goog.editor.node'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.iter.ChildIterator', 'goog.dom.iter.SiblingIterator', 'goog.iter', 'goog.object', 'goog.string', 'goog.string.Unicode', 'goog.userAgent'], false); >+goog.addDependency('editor/node_test.js', ['goog.editor.nodeTest'], ['goog.array', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.editor.node', 'goog.style', 'goog.testing.ExpectedFailures', 'goog.testing.dom', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('editor/plugin.js', ['goog.editor.Plugin'], ['goog.events.EventTarget', 'goog.functions', 'goog.log', 'goog.object', 'goog.reflect', 'goog.userAgent'], false); >+goog.addDependency('editor/plugin_test.js', ['goog.editor.PluginTest'], ['goog.editor.Field', 'goog.editor.Plugin', 'goog.functions', 'goog.testing.StrictMock', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/abstractbubbleplugin.js', ['goog.editor.plugins.AbstractBubblePlugin'], ['goog.array', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.editor.Plugin', 'goog.editor.style', 'goog.events', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.actionEventWrapper', 'goog.functions', 'goog.string.Unicode', 'goog.ui.Component', 'goog.ui.editor.Bubble', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/abstractbubbleplugin_test.js', ['goog.editor.plugins.AbstractBubblePluginTest'], ['goog.dom', 'goog.dom.TagName', 'goog.editor.plugins.AbstractBubblePlugin', 'goog.events.BrowserEvent', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.functions', 'goog.style', 'goog.testing.editor.FieldMock', 'goog.testing.editor.TestHelper', 'goog.testing.events', 'goog.testing.events.Event', 'goog.testing.jsunit', 'goog.ui.editor.Bubble', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/abstractdialogplugin.js', ['goog.editor.plugins.AbstractDialogPlugin', 'goog.editor.plugins.AbstractDialogPlugin.EventType'], ['goog.dom', 'goog.dom.Range', 'goog.editor.Field', 'goog.editor.Plugin', 'goog.editor.range', 'goog.events', 'goog.ui.editor.AbstractDialog'], false); >+goog.addDependency('editor/plugins/abstractdialogplugin_test.js', ['goog.editor.plugins.AbstractDialogPluginTest'], ['goog.dom.SavedRange', 'goog.dom.TagName', 'goog.editor.Field', 'goog.editor.plugins.AbstractDialogPlugin', 'goog.events.Event', 'goog.events.EventHandler', 'goog.functions', 'goog.testing.MockClock', 'goog.testing.MockControl', 'goog.testing.PropertyReplacer', 'goog.testing.editor.FieldMock', 'goog.testing.editor.TestHelper', 'goog.testing.events', 'goog.testing.jsunit', 'goog.testing.mockmatchers.ArgumentMatcher', 'goog.ui.editor.AbstractDialog', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/abstracttabhandler.js', ['goog.editor.plugins.AbstractTabHandler'], ['goog.editor.Plugin', 'goog.events.KeyCodes', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/abstracttabhandler_test.js', ['goog.editor.plugins.AbstractTabHandlerTest'], ['goog.editor.Field', 'goog.editor.plugins.AbstractTabHandler', 'goog.events.BrowserEvent', 'goog.events.KeyCodes', 'goog.testing.StrictMock', 'goog.testing.editor.FieldMock', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/basictextformatter.js', ['goog.editor.plugins.BasicTextFormatter', 'goog.editor.plugins.BasicTextFormatter.COMMAND'], ['goog.array', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Command', 'goog.editor.Link', 'goog.editor.Plugin', 'goog.editor.node', 'goog.editor.range', 'goog.editor.style', 'goog.iter', 'goog.iter.StopIteration', 'goog.log', 'goog.object', 'goog.string', 'goog.string.Unicode', 'goog.style', 'goog.ui.editor.messages', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/basictextformatter_test.js', ['goog.editor.plugins.BasicTextFormatterTest'], ['goog.dom', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Command', 'goog.editor.Field', 'goog.editor.Plugin', 'goog.editor.plugins.BasicTextFormatter', 'goog.object', 'goog.style', 'goog.testing.ExpectedFailures', 'goog.testing.LooseMock', 'goog.testing.PropertyReplacer', 'goog.testing.editor.FieldMock', 'goog.testing.editor.TestHelper', 'goog.testing.jsunit', 'goog.testing.mockmatchers', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/blockquote.js', ['goog.editor.plugins.Blockquote'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.editor.BrowserFeature', 'goog.editor.Command', 'goog.editor.Plugin', 'goog.editor.node', 'goog.functions', 'goog.log'], false); >+goog.addDependency('editor/plugins/blockquote_test.js', ['goog.editor.plugins.BlockquoteTest'], ['goog.dom', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.plugins.Blockquote', 'goog.testing.editor.FieldMock', 'goog.testing.editor.TestHelper', 'goog.testing.jsunit'], false); >+goog.addDependency('editor/plugins/emoticons.js', ['goog.editor.plugins.Emoticons'], ['goog.dom.TagName', 'goog.editor.Plugin', 'goog.editor.range', 'goog.functions', 'goog.ui.emoji.Emoji', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/emoticons_test.js', ['goog.editor.plugins.EmoticonsTest'], ['goog.Uri', 'goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.editor.Field', 'goog.editor.plugins.Emoticons', 'goog.testing.jsunit', 'goog.ui.emoji.Emoji', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/enterhandler.js', ['goog.editor.plugins.EnterHandler'], ['goog.dom', 'goog.dom.NodeOffset', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Plugin', 'goog.editor.node', 'goog.editor.plugins.Blockquote', 'goog.editor.range', 'goog.editor.style', 'goog.events.KeyCodes', 'goog.functions', 'goog.object', 'goog.string', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/enterhandler_test.js', ['goog.editor.plugins.EnterHandlerTest'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Field', 'goog.editor.Plugin', 'goog.editor.plugins.Blockquote', 'goog.editor.plugins.EnterHandler', 'goog.editor.range', 'goog.events', 'goog.events.KeyCodes', 'goog.testing.ExpectedFailures', 'goog.testing.MockClock', 'goog.testing.dom', 'goog.testing.editor.TestHelper', 'goog.testing.events', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/firststrong.js', ['goog.editor.plugins.FirstStrong'], ['goog.dom.NodeType', 'goog.dom.TagIterator', 'goog.dom.TagName', 'goog.editor.Command', 'goog.editor.Field', 'goog.editor.Plugin', 'goog.editor.node', 'goog.editor.range', 'goog.i18n.bidi', 'goog.i18n.uChar', 'goog.iter', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/firststrong_test.js', ['goog.editor.plugins.FirstStrongTest'], ['goog.dom.Range', 'goog.editor.Command', 'goog.editor.Field', 'goog.editor.plugins.FirstStrong', 'goog.editor.range', 'goog.events.KeyCodes', 'goog.testing.MockClock', 'goog.testing.editor.TestHelper', 'goog.testing.events', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/headerformatter.js', ['goog.editor.plugins.HeaderFormatter'], ['goog.editor.Command', 'goog.editor.Plugin', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/headerformatter_test.js', ['goog.editor.plugins.HeaderFormatterTest'], ['goog.dom', 'goog.editor.Command', 'goog.editor.plugins.BasicTextFormatter', 'goog.editor.plugins.HeaderFormatter', 'goog.events.BrowserEvent', 'goog.testing.LooseMock', 'goog.testing.editor.FieldMock', 'goog.testing.editor.TestHelper', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/linkbubble.js', ['goog.editor.plugins.LinkBubble', 'goog.editor.plugins.LinkBubble.Action'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.editor.Command', 'goog.editor.Link', 'goog.editor.plugins.AbstractBubblePlugin', 'goog.editor.range', 'goog.functions', 'goog.string', 'goog.style', 'goog.ui.editor.messages', 'goog.uri.utils', 'goog.window'], false); >+goog.addDependency('editor/plugins/linkbubble_test.js', ['goog.editor.plugins.LinkBubbleTest'], ['goog.dom', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.Command', 'goog.editor.Link', 'goog.editor.plugins.LinkBubble', 'goog.events.BrowserEvent', 'goog.events.Event', 'goog.events.EventType', 'goog.string', 'goog.style', 'goog.testing.FunctionMock', 'goog.testing.PropertyReplacer', 'goog.testing.editor.FieldMock', 'goog.testing.editor.TestHelper', 'goog.testing.events', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/linkdialogplugin.js', ['goog.editor.plugins.LinkDialogPlugin'], ['goog.array', 'goog.dom', 'goog.editor.Command', 'goog.editor.plugins.AbstractDialogPlugin', 'goog.events.EventHandler', 'goog.functions', 'goog.ui.editor.AbstractDialog', 'goog.ui.editor.LinkDialog', 'goog.uri.utils'], false); >+goog.addDependency('editor/plugins/linkdialogplugin_test.js', ['goog.ui.editor.plugins.LinkDialogTest'], ['goog.dom', 'goog.dom.DomHelper', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Command', 'goog.editor.Field', 'goog.editor.Link', 'goog.editor.plugins.LinkDialogPlugin', 'goog.string', 'goog.string.Unicode', 'goog.testing.MockControl', 'goog.testing.editor.FieldMock', 'goog.testing.editor.TestHelper', 'goog.testing.editor.dom', 'goog.testing.events', 'goog.testing.jsunit', 'goog.testing.mockmatchers', 'goog.ui.editor.AbstractDialog', 'goog.ui.editor.LinkDialog', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/linkshortcutplugin.js', ['goog.editor.plugins.LinkShortcutPlugin'], ['goog.editor.Command', 'goog.editor.Plugin'], false); >+goog.addDependency('editor/plugins/linkshortcutplugin_test.js', ['goog.editor.plugins.LinkShortcutPluginTest'], ['goog.dom', 'goog.dom.TagName', 'goog.editor.Field', 'goog.editor.plugins.BasicTextFormatter', 'goog.editor.plugins.LinkBubble', 'goog.editor.plugins.LinkShortcutPlugin', 'goog.events.KeyCodes', 'goog.testing.PropertyReplacer', 'goog.testing.dom', 'goog.testing.events', 'goog.testing.jsunit'], false); >+goog.addDependency('editor/plugins/listtabhandler.js', ['goog.editor.plugins.ListTabHandler'], ['goog.dom', 'goog.dom.TagName', 'goog.editor.Command', 'goog.editor.plugins.AbstractTabHandler', 'goog.iter'], false); >+goog.addDependency('editor/plugins/listtabhandler_test.js', ['goog.editor.plugins.ListTabHandlerTest'], ['goog.dom', 'goog.editor.Command', 'goog.editor.plugins.ListTabHandler', 'goog.events.BrowserEvent', 'goog.events.KeyCodes', 'goog.functions', 'goog.testing.StrictMock', 'goog.testing.editor.FieldMock', 'goog.testing.editor.TestHelper', 'goog.testing.jsunit'], false); >+goog.addDependency('editor/plugins/loremipsum.js', ['goog.editor.plugins.LoremIpsum'], ['goog.asserts', 'goog.dom', 'goog.editor.Command', 'goog.editor.Field', 'goog.editor.Plugin', 'goog.editor.node', 'goog.functions', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/loremipsum_test.js', ['goog.editor.plugins.LoremIpsumTest'], ['goog.dom', 'goog.editor.Command', 'goog.editor.Field', 'goog.editor.plugins.LoremIpsum', 'goog.string.Unicode', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/removeformatting.js', ['goog.editor.plugins.RemoveFormatting'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Plugin', 'goog.editor.node', 'goog.editor.range', 'goog.string', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/removeformatting_test.js', ['goog.editor.plugins.RemoveFormattingTest'], ['goog.dom', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.plugins.RemoveFormatting', 'goog.string', 'goog.testing.ExpectedFailures', 'goog.testing.dom', 'goog.testing.editor.FieldMock', 'goog.testing.editor.TestHelper', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/spacestabhandler.js', ['goog.editor.plugins.SpacesTabHandler'], ['goog.dom.TagName', 'goog.editor.plugins.AbstractTabHandler', 'goog.editor.range'], false); >+goog.addDependency('editor/plugins/spacestabhandler_test.js', ['goog.editor.plugins.SpacesTabHandlerTest'], ['goog.dom', 'goog.dom.Range', 'goog.editor.plugins.SpacesTabHandler', 'goog.events.BrowserEvent', 'goog.events.KeyCodes', 'goog.functions', 'goog.testing.StrictMock', 'goog.testing.editor.FieldMock', 'goog.testing.editor.TestHelper', 'goog.testing.jsunit'], false); >+goog.addDependency('editor/plugins/tableeditor.js', ['goog.editor.plugins.TableEditor'], ['goog.array', 'goog.dom', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.Plugin', 'goog.editor.Table', 'goog.editor.node', 'goog.editor.range', 'goog.object', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/tableeditor_test.js', ['goog.editor.plugins.TableEditorTest'], ['goog.dom', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.plugins.TableEditor', 'goog.object', 'goog.string', 'goog.testing.ExpectedFailures', 'goog.testing.JsUnitException', 'goog.testing.editor.FieldMock', 'goog.testing.editor.TestHelper', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/tagonenterhandler.js', ['goog.editor.plugins.TagOnEnterHandler'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.Command', 'goog.editor.node', 'goog.editor.plugins.EnterHandler', 'goog.editor.range', 'goog.editor.style', 'goog.events.KeyCodes', 'goog.functions', 'goog.string.Unicode', 'goog.style', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/tagonenterhandler_test.js', ['goog.editor.plugins.TagOnEnterHandlerTest'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Field', 'goog.editor.Plugin', 'goog.editor.plugins.TagOnEnterHandler', 'goog.events.KeyCodes', 'goog.string.Unicode', 'goog.testing.dom', 'goog.testing.editor.TestHelper', 'goog.testing.events', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('editor/plugins/undoredo.js', ['goog.editor.plugins.UndoRedo'], ['goog.dom', 'goog.dom.NodeOffset', 'goog.dom.Range', 'goog.editor.BrowserFeature', 'goog.editor.Command', 'goog.editor.Field', 'goog.editor.Plugin', 'goog.editor.node', 'goog.editor.plugins.UndoRedoManager', 'goog.editor.plugins.UndoRedoState', 'goog.events', 'goog.events.EventHandler', 'goog.log', 'goog.object'], false); >+goog.addDependency('editor/plugins/undoredo_test.js', ['goog.editor.plugins.UndoRedoTest'], ['goog.array', 'goog.dom', 'goog.dom.browserrange', 'goog.editor.Field', 'goog.editor.plugins.LoremIpsum', 'goog.editor.plugins.UndoRedo', 'goog.events', 'goog.functions', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.StrictMock', 'goog.testing.jsunit'], false); >+goog.addDependency('editor/plugins/undoredomanager.js', ['goog.editor.plugins.UndoRedoManager', 'goog.editor.plugins.UndoRedoManager.EventType'], ['goog.editor.plugins.UndoRedoState', 'goog.events', 'goog.events.EventTarget'], false); >+goog.addDependency('editor/plugins/undoredomanager_test.js', ['goog.editor.plugins.UndoRedoManagerTest'], ['goog.editor.plugins.UndoRedoManager', 'goog.editor.plugins.UndoRedoState', 'goog.events', 'goog.testing.StrictMock', 'goog.testing.jsunit'], false); >+goog.addDependency('editor/plugins/undoredostate.js', ['goog.editor.plugins.UndoRedoState'], ['goog.events.EventTarget'], false); >+goog.addDependency('editor/plugins/undoredostate_test.js', ['goog.editor.plugins.UndoRedoStateTest'], ['goog.editor.plugins.UndoRedoState', 'goog.testing.jsunit'], false); >+goog.addDependency('editor/range.js', ['goog.editor.range', 'goog.editor.range.Point'], ['goog.array', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.dom.RangeEndpoint', 'goog.dom.SavedCaretRange', 'goog.editor.node', 'goog.editor.style', 'goog.iter', 'goog.userAgent'], false); >+goog.addDependency('editor/range_test.js', ['goog.editor.rangeTest'], ['goog.dom', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.range', 'goog.editor.range.Point', 'goog.string', 'goog.testing.dom', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('editor/seamlessfield.js', ['goog.editor.SeamlessField'], ['goog.cssom.iframe.style', 'goog.dom', 'goog.dom.Range', 'goog.dom.TagName', 'goog.dom.safe', 'goog.editor.BrowserFeature', 'goog.editor.Field', 'goog.editor.icontent', 'goog.editor.icontent.FieldFormatInfo', 'goog.editor.icontent.FieldStyleInfo', 'goog.editor.node', 'goog.events', 'goog.events.EventType', 'goog.html.uncheckedconversions', 'goog.log', 'goog.string.Const', 'goog.style'], false); >+goog.addDependency('editor/seamlessfield_test.js', ['goog.editor.seamlessfield_test'], ['goog.dom', 'goog.dom.DomHelper', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Field', 'goog.editor.SeamlessField', 'goog.events', 'goog.functions', 'goog.style', 'goog.testing.MockClock', 'goog.testing.MockRange', 'goog.testing.jsunit'], false); >+goog.addDependency('editor/style.js', ['goog.editor.style'], ['goog.array', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.events.EventType', 'goog.object', 'goog.style', 'goog.userAgent'], false); >+goog.addDependency('editor/style_test.js', ['goog.editor.styleTest'], ['goog.dom', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.style', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.style', 'goog.testing.LooseMock', 'goog.testing.jsunit', 'goog.testing.mockmatchers'], false); >+goog.addDependency('editor/table.js', ['goog.editor.Table', 'goog.editor.TableCell', 'goog.editor.TableRow'], ['goog.dom', 'goog.dom.DomHelper', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.log', 'goog.string.Unicode', 'goog.style'], false); >+goog.addDependency('editor/table_test.js', ['goog.editor.TableTest'], ['goog.dom', 'goog.dom.TagName', 'goog.editor.Table', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('events/actioneventwrapper.js', ['goog.events.actionEventWrapper'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.dom', 'goog.events', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.events.EventWrapper', 'goog.events.KeyCodes', 'goog.userAgent'], false); >+goog.addDependency('events/actioneventwrapper_test.js', ['goog.events.actionEventWrapperTest'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.events', 'goog.events.EventHandler', 'goog.events.KeyCodes', 'goog.events.actionEventWrapper', 'goog.testing.events', 'goog.testing.jsunit'], false); >+goog.addDependency('events/actionhandler.js', ['goog.events.ActionEvent', 'goog.events.ActionHandler', 'goog.events.ActionHandler.EventType', 'goog.events.BeforeActionEvent'], ['goog.events', 'goog.events.BrowserEvent', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.userAgent'], false); >+goog.addDependency('events/actionhandler_test.js', ['goog.events.ActionHandlerTest'], ['goog.dom', 'goog.events', 'goog.events.ActionHandler', 'goog.testing.events', 'goog.testing.jsunit'], false); >+goog.addDependency('events/browserevent.js', ['goog.events.BrowserEvent', 'goog.events.BrowserEvent.MouseButton'], ['goog.events.BrowserFeature', 'goog.events.Event', 'goog.events.EventType', 'goog.reflect', 'goog.userAgent'], false); >+goog.addDependency('events/browserevent_test.js', ['goog.events.BrowserEventTest'], ['goog.events.BrowserEvent', 'goog.events.BrowserFeature', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('events/browserfeature.js', ['goog.events.BrowserFeature'], ['goog.userAgent'], false); >+goog.addDependency('events/event.js', ['goog.events.Event', 'goog.events.EventLike'], ['goog.Disposable', 'goog.events.EventId'], false); >+goog.addDependency('events/event_test.js', ['goog.events.EventTest'], ['goog.events.Event', 'goog.events.EventId', 'goog.events.EventTarget', 'goog.testing.jsunit'], false); >+goog.addDependency('events/eventhandler.js', ['goog.events.EventHandler'], ['goog.Disposable', 'goog.events', 'goog.object'], false); >+goog.addDependency('events/eventhandler_test.js', ['goog.events.EventHandlerTest'], ['goog.events', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('events/eventid.js', ['goog.events.EventId'], [], false); >+goog.addDependency('events/events.js', ['goog.events', 'goog.events.CaptureSimulationMode', 'goog.events.Key', 'goog.events.ListenableType'], ['goog.asserts', 'goog.debug.entryPointRegistry', 'goog.events.BrowserEvent', 'goog.events.BrowserFeature', 'goog.events.Listenable', 'goog.events.ListenerMap'], false); >+goog.addDependency('events/events_test.js', ['goog.eventsTest'], ['goog.asserts.AssertionError', 'goog.debug.EntryPointMonitor', 'goog.debug.ErrorHandler', 'goog.debug.entryPointRegistry', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.BrowserFeature', 'goog.events.CaptureSimulationMode', 'goog.events.Event', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.Listener', 'goog.functions', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('events/eventtarget.js', ['goog.events.EventTarget'], ['goog.Disposable', 'goog.asserts', 'goog.events', 'goog.events.Event', 'goog.events.Listenable', 'goog.events.ListenerMap', 'goog.object'], false); >+goog.addDependency('events/eventtarget_test.js', ['goog.events.EventTargetTest'], ['goog.events.EventTarget', 'goog.events.Listenable', 'goog.events.eventTargetTester', 'goog.events.eventTargetTester.KeyType', 'goog.events.eventTargetTester.UnlistenReturnType', 'goog.testing.jsunit'], false); >+goog.addDependency('events/eventtarget_via_googevents_test.js', ['goog.events.EventTargetGoogEventsTest'], ['goog.events', 'goog.events.EventTarget', 'goog.events.eventTargetTester', 'goog.events.eventTargetTester.KeyType', 'goog.events.eventTargetTester.UnlistenReturnType', 'goog.testing', 'goog.testing.jsunit'], false); >+goog.addDependency('events/eventtarget_via_w3cinterface_test.js', ['goog.events.EventTargetW3CTest'], ['goog.events.EventTarget', 'goog.events.eventTargetTester', 'goog.events.eventTargetTester.KeyType', 'goog.events.eventTargetTester.UnlistenReturnType', 'goog.testing.jsunit'], false); >+goog.addDependency('events/eventtargettester.js', ['goog.events.eventTargetTester', 'goog.events.eventTargetTester.KeyType', 'goog.events.eventTargetTester.UnlistenReturnType'], ['goog.array', 'goog.events', 'goog.events.Event', 'goog.events.EventTarget', 'goog.testing.asserts', 'goog.testing.recordFunction'], false); >+goog.addDependency('events/eventtype.js', ['goog.events.EventType'], ['goog.userAgent'], false); >+goog.addDependency('events/eventwrapper.js', ['goog.events.EventWrapper'], [], false); >+goog.addDependency('events/filedrophandler.js', ['goog.events.FileDropHandler', 'goog.events.FileDropHandler.EventType'], ['goog.array', 'goog.dom', 'goog.events.BrowserEvent', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.log', 'goog.log.Level'], false); >+goog.addDependency('events/filedrophandler_test.js', ['goog.events.FileDropHandlerTest'], ['goog.events', 'goog.events.BrowserEvent', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.FileDropHandler', 'goog.testing.jsunit'], false); >+goog.addDependency('events/focushandler.js', ['goog.events.FocusHandler', 'goog.events.FocusHandler.EventType'], ['goog.events', 'goog.events.BrowserEvent', 'goog.events.EventTarget', 'goog.userAgent'], false); >+goog.addDependency('events/imehandler.js', ['goog.events.ImeHandler', 'goog.events.ImeHandler.Event', 'goog.events.ImeHandler.EventType'], ['goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.userAgent'], false); >+goog.addDependency('events/imehandler_test.js', ['goog.events.ImeHandlerTest'], ['goog.array', 'goog.dom', 'goog.events', 'goog.events.ImeHandler', 'goog.events.KeyCodes', 'goog.object', 'goog.string', 'goog.testing.PropertyReplacer', 'goog.testing.events', 'goog.testing.events.Event', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('events/inputhandler.js', ['goog.events.InputHandler', 'goog.events.InputHandler.EventType'], ['goog.Timer', 'goog.dom', 'goog.dom.TagName', 'goog.events.BrowserEvent', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.KeyCodes', 'goog.userAgent'], false); >+goog.addDependency('events/inputhandler_test.js', ['goog.events.InputHandlerTest'], ['goog.dom', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.events.InputHandler', 'goog.events.KeyCodes', 'goog.testing.events', 'goog.testing.events.Event', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.userAgent'], false); >+goog.addDependency('events/keycodes.js', ['goog.events.KeyCodes'], ['goog.userAgent'], false); >+goog.addDependency('events/keycodes_test.js', ['goog.events.KeyCodesTest'], ['goog.events.BrowserEvent', 'goog.events.KeyCodes', 'goog.object', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('events/keyhandler.js', ['goog.events.KeyEvent', 'goog.events.KeyHandler', 'goog.events.KeyHandler.EventType'], ['goog.events', 'goog.events.BrowserEvent', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.userAgent'], false); >+goog.addDependency('events/keyhandler_test.js', ['goog.events.KeyEventTest'], ['goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.testing.events', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('events/keynames.js', ['goog.events.KeyNames'], [], false); >+goog.addDependency('events/listenable.js', ['goog.events.Listenable', 'goog.events.ListenableKey'], ['goog.events.EventId'], false); >+goog.addDependency('events/listenable_test.js', ['goog.events.ListenableTest'], ['goog.events.Listenable', 'goog.testing.jsunit'], false); >+goog.addDependency('events/listener.js', ['goog.events.Listener'], ['goog.events.ListenableKey'], false); >+goog.addDependency('events/listenermap.js', ['goog.events.ListenerMap'], ['goog.array', 'goog.events.Listener', 'goog.object'], false); >+goog.addDependency('events/listenermap_test.js', ['goog.events.ListenerMapTest'], ['goog.dispose', 'goog.events', 'goog.events.EventId', 'goog.events.EventTarget', 'goog.events.ListenerMap', 'goog.testing.jsunit'], false); >+goog.addDependency('events/mousewheelhandler.js', ['goog.events.MouseWheelEvent', 'goog.events.MouseWheelHandler', 'goog.events.MouseWheelHandler.EventType'], ['goog.dom', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.EventTarget', 'goog.math', 'goog.style', 'goog.userAgent'], false); >+goog.addDependency('events/mousewheelhandler_test.js', ['goog.events.MouseWheelHandlerTest'], ['goog.dom', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.MouseWheelEvent', 'goog.events.MouseWheelHandler', 'goog.functions', 'goog.string', 'goog.testing.PropertyReplacer', 'goog.testing.events', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('events/onlinehandler.js', ['goog.events.OnlineHandler', 'goog.events.OnlineHandler.EventType'], ['goog.Timer', 'goog.events.BrowserFeature', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.net.NetworkStatusMonitor'], false); >+goog.addDependency('events/onlinelistener_test.js', ['goog.events.OnlineHandlerTest'], ['goog.events', 'goog.events.BrowserFeature', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.OnlineHandler', 'goog.net.NetworkStatusMonitor', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('events/pastehandler.js', ['goog.events.PasteHandler', 'goog.events.PasteHandler.EventType', 'goog.events.PasteHandler.State'], ['goog.Timer', 'goog.async.ConditionalDelay', 'goog.events.BrowserEvent', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.log', 'goog.userAgent'], false); >+goog.addDependency('events/pastehandler_test.js', ['goog.events.PasteHandlerTest'], ['goog.dom', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.PasteHandler', 'goog.testing.MockClock', 'goog.testing.MockUserAgent', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('events/wheelevent.js', ['goog.events.WheelEvent'], ['goog.asserts', 'goog.events.BrowserEvent'], false); >+goog.addDependency('events/wheelhandler.js', ['goog.events.WheelHandler'], ['goog.dom', 'goog.events', 'goog.events.EventTarget', 'goog.events.WheelEvent', 'goog.style', 'goog.userAgent', 'goog.userAgent.product', 'goog.userAgent.product.isVersion'], false); >+goog.addDependency('events/wheelhandler_test.js', ['goog.events.WheelHandlerTest'], ['goog.dom', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.WheelEvent', 'goog.events.WheelHandler', 'goog.string', 'goog.testing.PropertyReplacer', 'goog.testing.events', 'goog.testing.jsunit', 'goog.userAgent', 'goog.userAgent.product'], false); >+goog.addDependency('format/emailaddress.js', ['goog.format.EmailAddress'], ['goog.string'], false); >+goog.addDependency('format/emailaddress_test.js', ['goog.format.EmailAddressTest'], ['goog.array', 'goog.format.EmailAddress', 'goog.testing.jsunit'], false); >+goog.addDependency('format/format.js', ['goog.format'], ['goog.i18n.GraphemeBreak', 'goog.string', 'goog.userAgent'], false); >+goog.addDependency('format/format_test.js', ['goog.formatTest'], ['goog.dom', 'goog.dom.TagName', 'goog.format', 'goog.string', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], false); >+goog.addDependency('format/htmlprettyprinter.js', ['goog.format.HtmlPrettyPrinter', 'goog.format.HtmlPrettyPrinter.Buffer'], ['goog.dom.TagName', 'goog.object', 'goog.string.StringBuffer'], false); >+goog.addDependency('format/htmlprettyprinter_test.js', ['goog.format.HtmlPrettyPrinterTest'], ['goog.format.HtmlPrettyPrinter', 'goog.testing.MockClock', 'goog.testing.jsunit'], false); >+goog.addDependency('format/internationalizedemailaddress.js', ['goog.format.InternationalizedEmailAddress'], ['goog.format.EmailAddress', 'goog.string'], false); >+goog.addDependency('format/internationalizedemailaddress_test.js', ['goog.format.InternationalizedEmailAddressTest'], ['goog.array', 'goog.format.InternationalizedEmailAddress', 'goog.testing.jsunit'], false); >+goog.addDependency('format/jsonprettyprinter.js', ['goog.format.JsonPrettyPrinter', 'goog.format.JsonPrettyPrinter.HtmlDelimiters', 'goog.format.JsonPrettyPrinter.TextDelimiters'], ['goog.json', 'goog.json.Serializer', 'goog.string', 'goog.string.StringBuffer', 'goog.string.format'], false); >+goog.addDependency('format/jsonprettyprinter_test.js', ['goog.format.JsonPrettyPrinterTest'], ['goog.format.JsonPrettyPrinter', 'goog.testing.jsunit'], false); >+goog.addDependency('fs/entry.js', ['goog.fs.DirectoryEntry', 'goog.fs.DirectoryEntry.Behavior', 'goog.fs.Entry', 'goog.fs.FileEntry'], [], false); >+goog.addDependency('fs/entryimpl.js', ['goog.fs.DirectoryEntryImpl', 'goog.fs.EntryImpl', 'goog.fs.FileEntryImpl'], ['goog.array', 'goog.async.Deferred', 'goog.fs.DirectoryEntry', 'goog.fs.Entry', 'goog.fs.Error', 'goog.fs.FileEntry', 'goog.fs.FileWriter', 'goog.functions', 'goog.string'], false); >+goog.addDependency('fs/error.js', ['goog.fs.Error', 'goog.fs.Error.ErrorCode'], ['goog.debug.Error', 'goog.object', 'goog.string'], false); >+goog.addDependency('fs/filereader.js', ['goog.fs.FileReader', 'goog.fs.FileReader.EventType', 'goog.fs.FileReader.ReadyState'], ['goog.async.Deferred', 'goog.events.EventTarget', 'goog.fs.Error', 'goog.fs.ProgressEvent'], false); >+goog.addDependency('fs/filesaver.js', ['goog.fs.FileSaver', 'goog.fs.FileSaver.EventType', 'goog.fs.FileSaver.ReadyState'], ['goog.events.EventTarget', 'goog.fs.Error', 'goog.fs.ProgressEvent'], false); >+goog.addDependency('fs/filesystem.js', ['goog.fs.FileSystem'], [], false); >+goog.addDependency('fs/filesystemimpl.js', ['goog.fs.FileSystemImpl'], ['goog.fs.DirectoryEntryImpl', 'goog.fs.FileSystem'], false); >+goog.addDependency('fs/filewriter.js', ['goog.fs.FileWriter'], ['goog.fs.Error', 'goog.fs.FileSaver'], false); >+goog.addDependency('fs/fs.js', ['goog.fs'], ['goog.array', 'goog.async.Deferred', 'goog.fs.Error', 'goog.fs.FileReader', 'goog.fs.FileSystemImpl', 'goog.fs.url', 'goog.userAgent'], false); >+goog.addDependency('fs/fs_test.js', ['goog.fsTest'], ['goog.Promise', 'goog.array', 'goog.dom', 'goog.events', 'goog.fs', 'goog.fs.DirectoryEntry', 'goog.fs.Error', 'goog.fs.FileReader', 'goog.fs.FileSaver', 'goog.string', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], false); >+goog.addDependency('fs/progressevent.js', ['goog.fs.ProgressEvent'], ['goog.events.Event'], false); >+goog.addDependency('fs/url.js', ['goog.fs.url'], [], false); >+goog.addDependency('fs/url_test.js', ['goog.urlTest'], ['goog.fs.url', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], false); >+goog.addDependency('functions/functions.js', ['goog.functions'], [], false); >+goog.addDependency('functions/functions_test.js', ['goog.functionsTest'], ['goog.functions', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('fx/abstractdragdrop.js', ['goog.fx.AbstractDragDrop', 'goog.fx.AbstractDragDrop.EventType', 'goog.fx.DragDropEvent', 'goog.fx.DragDropItem'], ['goog.asserts', 'goog.dom', 'goog.dom.classlist', 'goog.events', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.fx.Dragger', 'goog.math.Box', 'goog.math.Coordinate', 'goog.style'], false); >+goog.addDependency('fx/abstractdragdrop_test.js', ['goog.fx.AbstractDragDropTest'], ['goog.array', 'goog.dom.TagName', 'goog.events.EventType', 'goog.functions', 'goog.fx.AbstractDragDrop', 'goog.fx.DragDropItem', 'goog.math.Box', 'goog.math.Coordinate', 'goog.style', 'goog.testing.events', 'goog.testing.jsunit'], false); >+goog.addDependency('fx/anim/anim.js', ['goog.fx.anim', 'goog.fx.anim.Animated'], ['goog.async.AnimationDelay', 'goog.async.Delay', 'goog.object'], false); >+goog.addDependency('fx/anim/anim_test.js', ['goog.fx.animTest'], ['goog.async.AnimationDelay', 'goog.async.Delay', 'goog.events', 'goog.functions', 'goog.fx.Animation', 'goog.fx.anim', 'goog.object', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.userAgent'], false); >+goog.addDependency('fx/animation.js', ['goog.fx.Animation', 'goog.fx.Animation.EventType', 'goog.fx.Animation.State', 'goog.fx.AnimationEvent'], ['goog.array', 'goog.events.Event', 'goog.fx.Transition', 'goog.fx.TransitionBase', 'goog.fx.anim', 'goog.fx.anim.Animated'], false); >+goog.addDependency('fx/animation_test.js', ['goog.fx.AnimationTest'], ['goog.events', 'goog.fx.Animation', 'goog.testing.MockClock', 'goog.testing.jsunit'], false); >+goog.addDependency('fx/animationqueue.js', ['goog.fx.AnimationParallelQueue', 'goog.fx.AnimationQueue', 'goog.fx.AnimationSerialQueue'], ['goog.array', 'goog.asserts', 'goog.events', 'goog.fx.Transition', 'goog.fx.TransitionBase'], false); >+goog.addDependency('fx/animationqueue_test.js', ['goog.fx.AnimationQueueTest'], ['goog.events', 'goog.fx.Animation', 'goog.fx.AnimationParallelQueue', 'goog.fx.AnimationSerialQueue', 'goog.fx.Transition', 'goog.fx.anim', 'goog.testing.MockClock', 'goog.testing.jsunit'], false); >+goog.addDependency('fx/css3/fx.js', ['goog.fx.css3'], ['goog.fx.css3.Transition'], false); >+goog.addDependency('fx/css3/transition.js', ['goog.fx.css3.Transition'], ['goog.Timer', 'goog.asserts', 'goog.fx.TransitionBase', 'goog.style', 'goog.style.transition'], false); >+goog.addDependency('fx/css3/transition_test.js', ['goog.fx.css3.TransitionTest'], ['goog.dispose', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.fx.Transition', 'goog.fx.css3.Transition', 'goog.style.transition', 'goog.testing.MockClock', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('fx/cssspriteanimation.js', ['goog.fx.CssSpriteAnimation'], ['goog.fx.Animation'], false); >+goog.addDependency('fx/cssspriteanimation_test.js', ['goog.fx.CssSpriteAnimationTest'], ['goog.fx.CssSpriteAnimation', 'goog.math.Box', 'goog.math.Size', 'goog.testing.MockClock', 'goog.testing.jsunit'], false); >+goog.addDependency('fx/dom.js', ['goog.fx.dom', 'goog.fx.dom.BgColorTransform', 'goog.fx.dom.ColorTransform', 'goog.fx.dom.Fade', 'goog.fx.dom.FadeIn', 'goog.fx.dom.FadeInAndShow', 'goog.fx.dom.FadeOut', 'goog.fx.dom.FadeOutAndHide', 'goog.fx.dom.PredefinedEffect', 'goog.fx.dom.Resize', 'goog.fx.dom.ResizeHeight', 'goog.fx.dom.ResizeWidth', 'goog.fx.dom.Scroll', 'goog.fx.dom.Slide', 'goog.fx.dom.SlideFrom', 'goog.fx.dom.Swipe'], ['goog.color', 'goog.events', 'goog.fx.Animation', 'goog.fx.Transition', 'goog.style', 'goog.style.bidi'], false); >+goog.addDependency('fx/dragdrop.js', ['goog.fx.DragDrop'], ['goog.fx.AbstractDragDrop', 'goog.fx.DragDropItem'], false); >+goog.addDependency('fx/dragdropgroup.js', ['goog.fx.DragDropGroup'], ['goog.dom', 'goog.fx.AbstractDragDrop', 'goog.fx.DragDropItem'], false); >+goog.addDependency('fx/dragdropgroup_test.js', ['goog.fx.DragDropGroupTest'], ['goog.events', 'goog.fx.DragDropGroup', 'goog.testing.jsunit'], false); >+goog.addDependency('fx/dragger.js', ['goog.fx.DragEvent', 'goog.fx.Dragger', 'goog.fx.Dragger.EventType'], ['goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.math.Coordinate', 'goog.math.Rect', 'goog.style', 'goog.style.bidi', 'goog.userAgent'], false); >+goog.addDependency('fx/dragger_test.js', ['goog.fx.DraggerTest'], ['goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.Event', 'goog.events.EventType', 'goog.fx.Dragger', 'goog.math.Rect', 'goog.style.bidi', 'goog.testing.StrictMock', 'goog.testing.events', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('fx/draglistgroup.js', ['goog.fx.DragListDirection', 'goog.fx.DragListGroup', 'goog.fx.DragListGroup.EventType', 'goog.fx.DragListGroupEvent'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.classlist', 'goog.events', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.fx.Dragger', 'goog.math.Coordinate', 'goog.string', 'goog.style'], false); >+goog.addDependency('fx/draglistgroup_test.js', ['goog.fx.DragListGroupTest'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.BrowserFeature', 'goog.events.Event', 'goog.events.EventType', 'goog.fx.DragEvent', 'goog.fx.DragListDirection', 'goog.fx.DragListGroup', 'goog.fx.Dragger', 'goog.math.Coordinate', 'goog.object', 'goog.testing.events', 'goog.testing.jsunit'], false); >+goog.addDependency('fx/dragscrollsupport.js', ['goog.fx.DragScrollSupport'], ['goog.Disposable', 'goog.Timer', 'goog.dom', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.math.Coordinate', 'goog.style'], false); >+goog.addDependency('fx/dragscrollsupport_test.js', ['goog.fx.DragScrollSupportTest'], ['goog.fx.DragScrollSupport', 'goog.math.Coordinate', 'goog.testing.MockClock', 'goog.testing.events', 'goog.testing.jsunit'], false); >+goog.addDependency('fx/easing.js', ['goog.fx.easing'], [], false); >+goog.addDependency('fx/easing_test.js', ['goog.fx.easingTest'], ['goog.fx.easing', 'goog.testing.jsunit'], false); >+goog.addDependency('fx/fx.js', ['goog.fx'], ['goog.asserts', 'goog.fx.Animation', 'goog.fx.Animation.EventType', 'goog.fx.Animation.State', 'goog.fx.AnimationEvent', 'goog.fx.Transition.EventType', 'goog.fx.easing'], false); >+goog.addDependency('fx/fx_test.js', ['goog.fxTest'], ['goog.fx.Animation', 'goog.object', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], false); >+goog.addDependency('fx/transition.js', ['goog.fx.Transition', 'goog.fx.Transition.EventType'], [], false); >+goog.addDependency('fx/transitionbase.js', ['goog.fx.TransitionBase', 'goog.fx.TransitionBase.State'], ['goog.events.EventTarget', 'goog.fx.Transition'], false); >+goog.addDependency('graphics/abstractgraphics.js', ['goog.graphics.AbstractGraphics'], ['goog.dom', 'goog.graphics.Path', 'goog.math.Coordinate', 'goog.math.Size', 'goog.style', 'goog.ui.Component'], false); >+goog.addDependency('graphics/affinetransform.js', ['goog.graphics.AffineTransform'], ['goog.math'], false); >+goog.addDependency('graphics/canvaselement.js', ['goog.graphics.CanvasEllipseElement', 'goog.graphics.CanvasGroupElement', 'goog.graphics.CanvasImageElement', 'goog.graphics.CanvasPathElement', 'goog.graphics.CanvasRectElement', 'goog.graphics.CanvasTextElement'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.dom.safe', 'goog.graphics.EllipseElement', 'goog.graphics.GroupElement', 'goog.graphics.ImageElement', 'goog.graphics.Path', 'goog.graphics.PathElement', 'goog.graphics.RectElement', 'goog.graphics.TextElement', 'goog.html.SafeHtml', 'goog.html.uncheckedconversions', 'goog.math', 'goog.string', 'goog.string.Const'], false); >+goog.addDependency('graphics/canvasgraphics.js', ['goog.graphics.CanvasGraphics'], ['goog.dom.TagName', 'goog.events.EventType', 'goog.graphics.AbstractGraphics', 'goog.graphics.CanvasEllipseElement', 'goog.graphics.CanvasGroupElement', 'goog.graphics.CanvasImageElement', 'goog.graphics.CanvasPathElement', 'goog.graphics.CanvasRectElement', 'goog.graphics.CanvasTextElement', 'goog.graphics.SolidFill', 'goog.math.Size', 'goog.style'], false); >+goog.addDependency('graphics/element.js', ['goog.graphics.Element'], ['goog.asserts', 'goog.events', 'goog.events.EventTarget', 'goog.events.Listenable', 'goog.graphics.AffineTransform', 'goog.math'], false); >+goog.addDependency('graphics/ellipseelement.js', ['goog.graphics.EllipseElement'], ['goog.graphics.StrokeAndFillElement'], false); >+goog.addDependency('graphics/ext/coordinates.js', ['goog.graphics.ext.coordinates'], ['goog.string'], false); >+goog.addDependency('graphics/ext/element.js', ['goog.graphics.ext.Element'], ['goog.events.EventTarget', 'goog.functions', 'goog.graphics.ext.coordinates'], false); >+goog.addDependency('graphics/ext/ellipse.js', ['goog.graphics.ext.Ellipse'], ['goog.graphics.ext.StrokeAndFillElement'], false); >+goog.addDependency('graphics/ext/ext.js', ['goog.graphics.ext'], ['goog.graphics.ext.Ellipse', 'goog.graphics.ext.Graphics', 'goog.graphics.ext.Group', 'goog.graphics.ext.Image', 'goog.graphics.ext.Rectangle', 'goog.graphics.ext.Shape', 'goog.graphics.ext.coordinates'], false); >+goog.addDependency('graphics/ext/graphics.js', ['goog.graphics.ext.Graphics'], ['goog.events', 'goog.events.EventType', 'goog.graphics', 'goog.graphics.ext.Group'], false); >+goog.addDependency('graphics/ext/group.js', ['goog.graphics.ext.Group'], ['goog.array', 'goog.graphics.ext.Element'], false); >+goog.addDependency('graphics/ext/image.js', ['goog.graphics.ext.Image'], ['goog.graphics.ext.Element'], false); >+goog.addDependency('graphics/ext/path.js', ['goog.graphics.ext.Path'], ['goog.graphics.AffineTransform', 'goog.graphics.Path', 'goog.math.Rect'], false); >+goog.addDependency('graphics/ext/rectangle.js', ['goog.graphics.ext.Rectangle'], ['goog.graphics.ext.StrokeAndFillElement'], false); >+goog.addDependency('graphics/ext/shape.js', ['goog.graphics.ext.Shape'], ['goog.graphics.ext.StrokeAndFillElement'], false); >+goog.addDependency('graphics/ext/strokeandfillelement.js', ['goog.graphics.ext.StrokeAndFillElement'], ['goog.graphics.ext.Element'], false); >+goog.addDependency('graphics/fill.js', ['goog.graphics.Fill'], [], false); >+goog.addDependency('graphics/font.js', ['goog.graphics.Font'], [], false); >+goog.addDependency('graphics/graphics.js', ['goog.graphics'], ['goog.dom', 'goog.graphics.CanvasGraphics', 'goog.graphics.SvgGraphics', 'goog.graphics.VmlGraphics', 'goog.userAgent'], false); >+goog.addDependency('graphics/groupelement.js', ['goog.graphics.GroupElement'], ['goog.graphics.Element'], false); >+goog.addDependency('graphics/imageelement.js', ['goog.graphics.ImageElement'], ['goog.graphics.Element'], false); >+goog.addDependency('graphics/lineargradient.js', ['goog.graphics.LinearGradient'], ['goog.asserts', 'goog.graphics.Fill'], false); >+goog.addDependency('graphics/path.js', ['goog.graphics.Path', 'goog.graphics.Path.Segment'], ['goog.array', 'goog.math'], false); >+goog.addDependency('graphics/pathelement.js', ['goog.graphics.PathElement'], ['goog.graphics.StrokeAndFillElement'], false); >+goog.addDependency('graphics/paths.js', ['goog.graphics.paths'], ['goog.graphics.Path', 'goog.math.Coordinate'], false); >+goog.addDependency('graphics/rectelement.js', ['goog.graphics.RectElement'], ['goog.graphics.StrokeAndFillElement'], false); >+goog.addDependency('graphics/solidfill.js', ['goog.graphics.SolidFill'], ['goog.graphics.Fill'], false); >+goog.addDependency('graphics/stroke.js', ['goog.graphics.Stroke'], [], false); >+goog.addDependency('graphics/strokeandfillelement.js', ['goog.graphics.StrokeAndFillElement'], ['goog.graphics.Element'], false); >+goog.addDependency('graphics/svgelement.js', ['goog.graphics.SvgEllipseElement', 'goog.graphics.SvgGroupElement', 'goog.graphics.SvgImageElement', 'goog.graphics.SvgPathElement', 'goog.graphics.SvgRectElement', 'goog.graphics.SvgTextElement'], ['goog.dom', 'goog.graphics.EllipseElement', 'goog.graphics.GroupElement', 'goog.graphics.ImageElement', 'goog.graphics.PathElement', 'goog.graphics.RectElement', 'goog.graphics.TextElement'], false); >+goog.addDependency('graphics/svggraphics.js', ['goog.graphics.SvgGraphics'], ['goog.Timer', 'goog.dom', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.graphics.AbstractGraphics', 'goog.graphics.LinearGradient', 'goog.graphics.Path', 'goog.graphics.SolidFill', 'goog.graphics.Stroke', 'goog.graphics.SvgEllipseElement', 'goog.graphics.SvgGroupElement', 'goog.graphics.SvgImageElement', 'goog.graphics.SvgPathElement', 'goog.graphics.SvgRectElement', 'goog.graphics.SvgTextElement', 'goog.math', 'goog.math.Size', 'goog.style', 'goog.userAgent'], false); >+goog.addDependency('graphics/textelement.js', ['goog.graphics.TextElement'], ['goog.graphics.StrokeAndFillElement'], false); >+goog.addDependency('graphics/vmlelement.js', ['goog.graphics.VmlEllipseElement', 'goog.graphics.VmlGroupElement', 'goog.graphics.VmlImageElement', 'goog.graphics.VmlPathElement', 'goog.graphics.VmlRectElement', 'goog.graphics.VmlTextElement'], ['goog.dom', 'goog.graphics.EllipseElement', 'goog.graphics.GroupElement', 'goog.graphics.ImageElement', 'goog.graphics.PathElement', 'goog.graphics.RectElement', 'goog.graphics.TextElement'], false); >+goog.addDependency('graphics/vmlgraphics.js', ['goog.graphics.VmlGraphics'], ['goog.array', 'goog.dom.TagName', 'goog.dom.safe', 'goog.events', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.graphics.AbstractGraphics', 'goog.graphics.LinearGradient', 'goog.graphics.Path', 'goog.graphics.SolidFill', 'goog.graphics.VmlEllipseElement', 'goog.graphics.VmlGroupElement', 'goog.graphics.VmlImageElement', 'goog.graphics.VmlPathElement', 'goog.graphics.VmlRectElement', 'goog.graphics.VmlTextElement', 'goog.html.uncheckedconversions', 'goog.math', 'goog.math.Size', 'goog.string', 'goog.string.Const', 'goog.style'], false); >+goog.addDependency('history/event.js', ['goog.history.Event'], ['goog.events.Event', 'goog.history.EventType'], false); >+goog.addDependency('history/eventtype.js', ['goog.history.EventType'], [], false); >+goog.addDependency('history/history.js', ['goog.History', 'goog.History.Event', 'goog.History.EventType'], ['goog.Timer', 'goog.asserts', 'goog.dom', 'goog.dom.InputType', 'goog.dom.safe', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.history.Event', 'goog.history.EventType', 'goog.html.SafeHtml', 'goog.html.TrustedResourceUrl', 'goog.html.legacyconversions', 'goog.labs.userAgent.device', 'goog.memoize', 'goog.string', 'goog.string.Const', 'goog.userAgent'], false); >+goog.addDependency('history/history_test.js', ['goog.HistoryTest'], ['goog.History', 'goog.dispose', 'goog.dom', 'goog.html.TrustedResourceUrl', 'goog.string.Const', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('history/html5history.js', ['goog.history.Html5History', 'goog.history.Html5History.TokenTransformer'], ['goog.asserts', 'goog.events', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.history.Event'], false); >+goog.addDependency('history/html5history_test.js', ['goog.history.Html5HistoryTest'], ['goog.history.Html5History', 'goog.testing.MockControl', 'goog.testing.jsunit', 'goog.testing.mockmatchers'], false); >+goog.addDependency('html/flash.js', ['goog.html.flash'], ['goog.asserts', 'goog.html.SafeHtml'], false); >+goog.addDependency('html/flash_test.js', ['goog.html.flashTest'], ['goog.html.SafeHtml', 'goog.html.TrustedResourceUrl', 'goog.html.flash', 'goog.string.Const', 'goog.testing.jsunit'], false); >+goog.addDependency('html/legacyconversions.js', ['goog.html.legacyconversions'], ['goog.html.SafeHtml', 'goog.html.SafeStyle', 'goog.html.SafeUrl', 'goog.html.TrustedResourceUrl'], false); >+goog.addDependency('html/legacyconversions_test.js', ['goog.html.legacyconversionsTest'], ['goog.html.SafeHtml', 'goog.html.SafeUrl', 'goog.html.TrustedResourceUrl', 'goog.html.legacyconversions', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], false); >+goog.addDependency('html/safehtml.js', ['goog.html.SafeHtml'], ['goog.array', 'goog.asserts', 'goog.dom.TagName', 'goog.dom.tags', 'goog.html.SafeStyle', 'goog.html.SafeStyleSheet', 'goog.html.SafeUrl', 'goog.html.TrustedResourceUrl', 'goog.i18n.bidi.Dir', 'goog.i18n.bidi.DirectionalString', 'goog.object', 'goog.string', 'goog.string.Const', 'goog.string.TypedString'], false); >+goog.addDependency('html/safehtml_test.js', ['goog.html.safeHtmlTest'], ['goog.html.SafeHtml', 'goog.html.SafeStyle', 'goog.html.SafeStyleSheet', 'goog.html.SafeUrl', 'goog.html.TrustedResourceUrl', 'goog.html.testing', 'goog.i18n.bidi.Dir', 'goog.string.Const', 'goog.testing.jsunit'], false); >+goog.addDependency('html/safescript.js', ['goog.html.SafeScript'], ['goog.asserts', 'goog.string.Const', 'goog.string.TypedString'], false); >+goog.addDependency('html/safescript_test.js', ['goog.html.safeScriptTest'], ['goog.html.SafeScript', 'goog.string.Const', 'goog.testing.jsunit'], false); >+goog.addDependency('html/safestyle.js', ['goog.html.SafeStyle'], ['goog.array', 'goog.asserts', 'goog.string', 'goog.string.Const', 'goog.string.TypedString'], false); >+goog.addDependency('html/safestyle_test.js', ['goog.html.safeStyleTest'], ['goog.html.SafeStyle', 'goog.string.Const', 'goog.testing.jsunit'], false); >+goog.addDependency('html/safestylesheet.js', ['goog.html.SafeStyleSheet'], ['goog.array', 'goog.asserts', 'goog.string', 'goog.string.Const', 'goog.string.TypedString'], false); >+goog.addDependency('html/safestylesheet_test.js', ['goog.html.safeStyleSheetTest'], ['goog.html.SafeStyleSheet', 'goog.string', 'goog.string.Const', 'goog.testing.jsunit'], false); >+goog.addDependency('html/safeurl.js', ['goog.html.SafeUrl'], ['goog.asserts', 'goog.fs.url', 'goog.i18n.bidi.Dir', 'goog.i18n.bidi.DirectionalString', 'goog.string.Const', 'goog.string.TypedString'], false); >+goog.addDependency('html/safeurl_test.js', ['goog.html.safeUrlTest'], ['goog.html.SafeUrl', 'goog.i18n.bidi.Dir', 'goog.string.Const', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('html/silverlight.js', ['goog.html.silverlight'], ['goog.html.SafeHtml', 'goog.html.TrustedResourceUrl', 'goog.html.flash', 'goog.string.Const'], false); >+goog.addDependency('html/silverlight_test.js', ['goog.html.silverlightTest'], ['goog.html.SafeHtml', 'goog.html.TrustedResourceUrl', 'goog.html.silverlight', 'goog.string.Const', 'goog.testing.jsunit'], false); >+goog.addDependency('html/testing.js', ['goog.html.testing'], ['goog.html.SafeHtml', 'goog.html.SafeScript', 'goog.html.SafeStyle', 'goog.html.SafeStyleSheet', 'goog.html.SafeUrl', 'goog.html.TrustedResourceUrl'], false); >+goog.addDependency('html/trustedresourceurl.js', ['goog.html.TrustedResourceUrl'], ['goog.asserts', 'goog.i18n.bidi.Dir', 'goog.i18n.bidi.DirectionalString', 'goog.string.Const', 'goog.string.TypedString'], false); >+goog.addDependency('html/trustedresourceurl_test.js', ['goog.html.trustedResourceUrlTest'], ['goog.html.TrustedResourceUrl', 'goog.i18n.bidi.Dir', 'goog.string.Const', 'goog.testing.jsunit'], false); >+goog.addDependency('html/uncheckedconversions.js', ['goog.html.uncheckedconversions'], ['goog.asserts', 'goog.html.SafeHtml', 'goog.html.SafeScript', 'goog.html.SafeStyle', 'goog.html.SafeStyleSheet', 'goog.html.SafeUrl', 'goog.html.TrustedResourceUrl', 'goog.string', 'goog.string.Const'], false); >+goog.addDependency('html/uncheckedconversions_test.js', ['goog.html.uncheckedconversionsTest'], ['goog.html.SafeHtml', 'goog.html.SafeScript', 'goog.html.SafeStyle', 'goog.html.SafeStyleSheet', 'goog.html.SafeUrl', 'goog.html.TrustedResourceUrl', 'goog.html.uncheckedconversions', 'goog.i18n.bidi.Dir', 'goog.string.Const', 'goog.testing.jsunit'], false); >+goog.addDependency('html/utils.js', ['goog.html.utils'], ['goog.string'], false); >+goog.addDependency('html/utils_test.js', ['goog.html.UtilsTest'], ['goog.array', 'goog.dom.TagName', 'goog.html.utils', 'goog.object', 'goog.testing.jsunit'], false); >+goog.addDependency('i18n/bidi.js', ['goog.i18n.bidi', 'goog.i18n.bidi.Dir', 'goog.i18n.bidi.DirectionalString', 'goog.i18n.bidi.Format'], [], false); >+goog.addDependency('i18n/bidi_test.js', ['goog.i18n.bidiTest'], ['goog.i18n.bidi', 'goog.i18n.bidi.Dir', 'goog.testing.jsunit'], false); >+goog.addDependency('i18n/bidiformatter.js', ['goog.i18n.BidiFormatter'], ['goog.html.SafeHtml', 'goog.html.legacyconversions', 'goog.i18n.bidi', 'goog.i18n.bidi.Dir', 'goog.i18n.bidi.Format'], false); >+goog.addDependency('i18n/bidiformatter_test.js', ['goog.i18n.BidiFormatterTest'], ['goog.html.SafeHtml', 'goog.i18n.BidiFormatter', 'goog.i18n.bidi.Dir', 'goog.i18n.bidi.Format', 'goog.testing.jsunit'], false); >+goog.addDependency('i18n/charlistdecompressor.js', ['goog.i18n.CharListDecompressor'], ['goog.array', 'goog.i18n.uChar'], false); >+goog.addDependency('i18n/charlistdecompressor_test.js', ['goog.i18n.CharListDecompressorTest'], ['goog.i18n.CharListDecompressor', 'goog.testing.jsunit'], false); >+goog.addDependency('i18n/charpickerdata.js', ['goog.i18n.CharPickerData'], [], false); >+goog.addDependency('i18n/collation.js', ['goog.i18n.collation'], [], false); >+goog.addDependency('i18n/collation_test.js', ['goog.i18n.collationTest'], ['goog.i18n.collation', 'goog.testing.ExpectedFailures', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('i18n/compactnumberformatsymbols.js', ['goog.i18n.CompactNumberFormatSymbols', 'goog.i18n.CompactNumberFormatSymbols_af', 'goog.i18n.CompactNumberFormatSymbols_af_ZA', 'goog.i18n.CompactNumberFormatSymbols_am', 'goog.i18n.CompactNumberFormatSymbols_am_ET', 'goog.i18n.CompactNumberFormatSymbols_ar', 'goog.i18n.CompactNumberFormatSymbols_ar_001', 'goog.i18n.CompactNumberFormatSymbols_az', 'goog.i18n.CompactNumberFormatSymbols_az_Latn_AZ', 'goog.i18n.CompactNumberFormatSymbols_bg', 'goog.i18n.CompactNumberFormatSymbols_bg_BG', 'goog.i18n.CompactNumberFormatSymbols_bn', 'goog.i18n.CompactNumberFormatSymbols_bn_BD', 'goog.i18n.CompactNumberFormatSymbols_br', 'goog.i18n.CompactNumberFormatSymbols_br_FR', 'goog.i18n.CompactNumberFormatSymbols_ca', 'goog.i18n.CompactNumberFormatSymbols_ca_AD', 'goog.i18n.CompactNumberFormatSymbols_ca_ES', 'goog.i18n.CompactNumberFormatSymbols_ca_ES_VALENCIA', 'goog.i18n.CompactNumberFormatSymbols_ca_FR', 'goog.i18n.CompactNumberFormatSymbols_ca_IT', 'goog.i18n.CompactNumberFormatSymbols_chr', 'goog.i18n.CompactNumberFormatSymbols_chr_US', 'goog.i18n.CompactNumberFormatSymbols_cs', 'goog.i18n.CompactNumberFormatSymbols_cs_CZ', 'goog.i18n.CompactNumberFormatSymbols_cy', 'goog.i18n.CompactNumberFormatSymbols_cy_GB', 'goog.i18n.CompactNumberFormatSymbols_da', 'goog.i18n.CompactNumberFormatSymbols_da_DK', 'goog.i18n.CompactNumberFormatSymbols_da_GL', 'goog.i18n.CompactNumberFormatSymbols_de', 'goog.i18n.CompactNumberFormatSymbols_de_AT', 'goog.i18n.CompactNumberFormatSymbols_de_BE', 'goog.i18n.CompactNumberFormatSymbols_de_CH', 'goog.i18n.CompactNumberFormatSymbols_de_DE', 'goog.i18n.CompactNumberFormatSymbols_de_LU', 'goog.i18n.CompactNumberFormatSymbols_el', 'goog.i18n.CompactNumberFormatSymbols_el_GR', 'goog.i18n.CompactNumberFormatSymbols_en', 'goog.i18n.CompactNumberFormatSymbols_en_001', 'goog.i18n.CompactNumberFormatSymbols_en_AS', 'goog.i18n.CompactNumberFormatSymbols_en_AU', 'goog.i18n.CompactNumberFormatSymbols_en_DG', 'goog.i18n.CompactNumberFormatSymbols_en_FM', 'goog.i18n.CompactNumberFormatSymbols_en_GB', 'goog.i18n.CompactNumberFormatSymbols_en_GU', 'goog.i18n.CompactNumberFormatSymbols_en_IE', 'goog.i18n.CompactNumberFormatSymbols_en_IN', 'goog.i18n.CompactNumberFormatSymbols_en_IO', 'goog.i18n.CompactNumberFormatSymbols_en_MH', 'goog.i18n.CompactNumberFormatSymbols_en_MP', 'goog.i18n.CompactNumberFormatSymbols_en_PR', 'goog.i18n.CompactNumberFormatSymbols_en_PW', 'goog.i18n.CompactNumberFormatSymbols_en_SG', 'goog.i18n.CompactNumberFormatSymbols_en_TC', 'goog.i18n.CompactNumberFormatSymbols_en_UM', 'goog.i18n.CompactNumberFormatSymbols_en_US', 'goog.i18n.CompactNumberFormatSymbols_en_VG', 'goog.i18n.CompactNumberFormatSymbols_en_VI', 'goog.i18n.CompactNumberFormatSymbols_en_ZA', 'goog.i18n.CompactNumberFormatSymbols_en_ZW', 'goog.i18n.CompactNumberFormatSymbols_es', 'goog.i18n.CompactNumberFormatSymbols_es_419', 'goog.i18n.CompactNumberFormatSymbols_es_EA', 'goog.i18n.CompactNumberFormatSymbols_es_ES', 'goog.i18n.CompactNumberFormatSymbols_es_IC', 'goog.i18n.CompactNumberFormatSymbols_et', 'goog.i18n.CompactNumberFormatSymbols_et_EE', 'goog.i18n.CompactNumberFormatSymbols_eu', 'goog.i18n.CompactNumberFormatSymbols_eu_ES', 'goog.i18n.CompactNumberFormatSymbols_fa', 'goog.i18n.CompactNumberFormatSymbols_fa_IR', 'goog.i18n.CompactNumberFormatSymbols_fi', 'goog.i18n.CompactNumberFormatSymbols_fi_FI', 'goog.i18n.CompactNumberFormatSymbols_fil', 'goog.i18n.CompactNumberFormatSymbols_fil_PH', 'goog.i18n.CompactNumberFormatSymbols_fr', 'goog.i18n.CompactNumberFormatSymbols_fr_BL', 'goog.i18n.CompactNumberFormatSymbols_fr_CA', 'goog.i18n.CompactNumberFormatSymbols_fr_FR', 'goog.i18n.CompactNumberFormatSymbols_fr_GF', 'goog.i18n.CompactNumberFormatSymbols_fr_GP', 'goog.i18n.CompactNumberFormatSymbols_fr_MC', 'goog.i18n.CompactNumberFormatSymbols_fr_MF', 'goog.i18n.CompactNumberFormatSymbols_fr_MQ', 'goog.i18n.CompactNumberFormatSymbols_fr_PM', 'goog.i18n.CompactNumberFormatSymbols_fr_RE', 'goog.i18n.CompactNumberFormatSymbols_fr_YT', 'goog.i18n.CompactNumberFormatSymbols_ga', 'goog.i18n.CompactNumberFormatSymbols_ga_IE', 'goog.i18n.CompactNumberFormatSymbols_gl', 'goog.i18n.CompactNumberFormatSymbols_gl_ES', 'goog.i18n.CompactNumberFormatSymbols_gsw', 'goog.i18n.CompactNumberFormatSymbols_gsw_CH', 'goog.i18n.CompactNumberFormatSymbols_gsw_LI', 'goog.i18n.CompactNumberFormatSymbols_gu', 'goog.i18n.CompactNumberFormatSymbols_gu_IN', 'goog.i18n.CompactNumberFormatSymbols_haw', 'goog.i18n.CompactNumberFormatSymbols_haw_US', 'goog.i18n.CompactNumberFormatSymbols_he', 'goog.i18n.CompactNumberFormatSymbols_he_IL', 'goog.i18n.CompactNumberFormatSymbols_hi', 'goog.i18n.CompactNumberFormatSymbols_hi_IN', 'goog.i18n.CompactNumberFormatSymbols_hr', 'goog.i18n.CompactNumberFormatSymbols_hr_HR', 'goog.i18n.CompactNumberFormatSymbols_hu', 'goog.i18n.CompactNumberFormatSymbols_hu_HU', 'goog.i18n.CompactNumberFormatSymbols_hy', 'goog.i18n.CompactNumberFormatSymbols_hy_AM', 'goog.i18n.CompactNumberFormatSymbols_id', 'goog.i18n.CompactNumberFormatSymbols_id_ID', 'goog.i18n.CompactNumberFormatSymbols_in', 'goog.i18n.CompactNumberFormatSymbols_is', 'goog.i18n.CompactNumberFormatSymbols_is_IS', 'goog.i18n.CompactNumberFormatSymbols_it', 'goog.i18n.CompactNumberFormatSymbols_it_IT', 'goog.i18n.CompactNumberFormatSymbols_it_SM', 'goog.i18n.CompactNumberFormatSymbols_iw', 'goog.i18n.CompactNumberFormatSymbols_ja', 'goog.i18n.CompactNumberFormatSymbols_ja_JP', 'goog.i18n.CompactNumberFormatSymbols_ka', 'goog.i18n.CompactNumberFormatSymbols_ka_GE', 'goog.i18n.CompactNumberFormatSymbols_kk', 'goog.i18n.CompactNumberFormatSymbols_kk_Cyrl_KZ', 'goog.i18n.CompactNumberFormatSymbols_km', 'goog.i18n.CompactNumberFormatSymbols_km_KH', 'goog.i18n.CompactNumberFormatSymbols_kn', 'goog.i18n.CompactNumberFormatSymbols_kn_IN', 'goog.i18n.CompactNumberFormatSymbols_ko', 'goog.i18n.CompactNumberFormatSymbols_ko_KR', 'goog.i18n.CompactNumberFormatSymbols_ky', 'goog.i18n.CompactNumberFormatSymbols_ky_Cyrl_KG', 'goog.i18n.CompactNumberFormatSymbols_ln', 'goog.i18n.CompactNumberFormatSymbols_ln_CD', 'goog.i18n.CompactNumberFormatSymbols_lo', 'goog.i18n.CompactNumberFormatSymbols_lo_LA', 'goog.i18n.CompactNumberFormatSymbols_lt', 'goog.i18n.CompactNumberFormatSymbols_lt_LT', 'goog.i18n.CompactNumberFormatSymbols_lv', 'goog.i18n.CompactNumberFormatSymbols_lv_LV', 'goog.i18n.CompactNumberFormatSymbols_mk', 'goog.i18n.CompactNumberFormatSymbols_mk_MK', 'goog.i18n.CompactNumberFormatSymbols_ml', 'goog.i18n.CompactNumberFormatSymbols_ml_IN', 'goog.i18n.CompactNumberFormatSymbols_mn', 'goog.i18n.CompactNumberFormatSymbols_mn_Cyrl_MN', 'goog.i18n.CompactNumberFormatSymbols_mr', 'goog.i18n.CompactNumberFormatSymbols_mr_IN', 'goog.i18n.CompactNumberFormatSymbols_ms', 'goog.i18n.CompactNumberFormatSymbols_ms_Latn_MY', 'goog.i18n.CompactNumberFormatSymbols_mt', 'goog.i18n.CompactNumberFormatSymbols_mt_MT', 'goog.i18n.CompactNumberFormatSymbols_my', 'goog.i18n.CompactNumberFormatSymbols_my_MM', 'goog.i18n.CompactNumberFormatSymbols_nb', 'goog.i18n.CompactNumberFormatSymbols_nb_NO', 'goog.i18n.CompactNumberFormatSymbols_nb_SJ', 'goog.i18n.CompactNumberFormatSymbols_ne', 'goog.i18n.CompactNumberFormatSymbols_ne_NP', 'goog.i18n.CompactNumberFormatSymbols_nl', 'goog.i18n.CompactNumberFormatSymbols_nl_NL', 'goog.i18n.CompactNumberFormatSymbols_no', 'goog.i18n.CompactNumberFormatSymbols_no_NO', 'goog.i18n.CompactNumberFormatSymbols_or', 'goog.i18n.CompactNumberFormatSymbols_or_IN', 'goog.i18n.CompactNumberFormatSymbols_pa', 'goog.i18n.CompactNumberFormatSymbols_pa_Guru_IN', 'goog.i18n.CompactNumberFormatSymbols_pl', 'goog.i18n.CompactNumberFormatSymbols_pl_PL', 'goog.i18n.CompactNumberFormatSymbols_pt', 'goog.i18n.CompactNumberFormatSymbols_pt_BR', 'goog.i18n.CompactNumberFormatSymbols_pt_PT', 'goog.i18n.CompactNumberFormatSymbols_ro', 'goog.i18n.CompactNumberFormatSymbols_ro_RO', 'goog.i18n.CompactNumberFormatSymbols_ru', 'goog.i18n.CompactNumberFormatSymbols_ru_RU', 'goog.i18n.CompactNumberFormatSymbols_si', 'goog.i18n.CompactNumberFormatSymbols_si_LK', 'goog.i18n.CompactNumberFormatSymbols_sk', 'goog.i18n.CompactNumberFormatSymbols_sk_SK', 'goog.i18n.CompactNumberFormatSymbols_sl', 'goog.i18n.CompactNumberFormatSymbols_sl_SI', 'goog.i18n.CompactNumberFormatSymbols_sq', 'goog.i18n.CompactNumberFormatSymbols_sq_AL', 'goog.i18n.CompactNumberFormatSymbols_sr', 'goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_RS', 'goog.i18n.CompactNumberFormatSymbols_sv', 'goog.i18n.CompactNumberFormatSymbols_sv_SE', 'goog.i18n.CompactNumberFormatSymbols_sw', 'goog.i18n.CompactNumberFormatSymbols_sw_TZ', 'goog.i18n.CompactNumberFormatSymbols_ta', 'goog.i18n.CompactNumberFormatSymbols_ta_IN', 'goog.i18n.CompactNumberFormatSymbols_te', 'goog.i18n.CompactNumberFormatSymbols_te_IN', 'goog.i18n.CompactNumberFormatSymbols_th', 'goog.i18n.CompactNumberFormatSymbols_th_TH', 'goog.i18n.CompactNumberFormatSymbols_tl', 'goog.i18n.CompactNumberFormatSymbols_tr', 'goog.i18n.CompactNumberFormatSymbols_tr_TR', 'goog.i18n.CompactNumberFormatSymbols_uk', 'goog.i18n.CompactNumberFormatSymbols_uk_UA', 'goog.i18n.CompactNumberFormatSymbols_ur', 'goog.i18n.CompactNumberFormatSymbols_ur_PK', 'goog.i18n.CompactNumberFormatSymbols_uz', 'goog.i18n.CompactNumberFormatSymbols_uz_Latn_UZ', 'goog.i18n.CompactNumberFormatSymbols_vi', 'goog.i18n.CompactNumberFormatSymbols_vi_VN', 'goog.i18n.CompactNumberFormatSymbols_zh', 'goog.i18n.CompactNumberFormatSymbols_zh_CN', 'goog.i18n.CompactNumberFormatSymbols_zh_HK', 'goog.i18n.CompactNumberFormatSymbols_zh_Hans_CN', 'goog.i18n.CompactNumberFormatSymbols_zh_TW', 'goog.i18n.CompactNumberFormatSymbols_zu', 'goog.i18n.CompactNumberFormatSymbols_zu_ZA'], [], false); >+goog.addDependency('i18n/compactnumberformatsymbols_ext.js', ['goog.i18n.CompactNumberFormatSymbolsExt', 'goog.i18n.CompactNumberFormatSymbols_aa', 'goog.i18n.CompactNumberFormatSymbols_aa_DJ', 'goog.i18n.CompactNumberFormatSymbols_aa_ER', 'goog.i18n.CompactNumberFormatSymbols_aa_ET', 'goog.i18n.CompactNumberFormatSymbols_af_NA', 'goog.i18n.CompactNumberFormatSymbols_agq', 'goog.i18n.CompactNumberFormatSymbols_agq_CM', 'goog.i18n.CompactNumberFormatSymbols_ak', 'goog.i18n.CompactNumberFormatSymbols_ak_GH', 'goog.i18n.CompactNumberFormatSymbols_ar_AE', 'goog.i18n.CompactNumberFormatSymbols_ar_BH', 'goog.i18n.CompactNumberFormatSymbols_ar_DJ', 'goog.i18n.CompactNumberFormatSymbols_ar_DZ', 'goog.i18n.CompactNumberFormatSymbols_ar_EG', 'goog.i18n.CompactNumberFormatSymbols_ar_EH', 'goog.i18n.CompactNumberFormatSymbols_ar_ER', 'goog.i18n.CompactNumberFormatSymbols_ar_IL', 'goog.i18n.CompactNumberFormatSymbols_ar_IQ', 'goog.i18n.CompactNumberFormatSymbols_ar_JO', 'goog.i18n.CompactNumberFormatSymbols_ar_KM', 'goog.i18n.CompactNumberFormatSymbols_ar_KW', 'goog.i18n.CompactNumberFormatSymbols_ar_LB', 'goog.i18n.CompactNumberFormatSymbols_ar_LY', 'goog.i18n.CompactNumberFormatSymbols_ar_MA', 'goog.i18n.CompactNumberFormatSymbols_ar_MR', 'goog.i18n.CompactNumberFormatSymbols_ar_OM', 'goog.i18n.CompactNumberFormatSymbols_ar_PS', 'goog.i18n.CompactNumberFormatSymbols_ar_QA', 'goog.i18n.CompactNumberFormatSymbols_ar_SA', 'goog.i18n.CompactNumberFormatSymbols_ar_SD', 'goog.i18n.CompactNumberFormatSymbols_ar_SO', 'goog.i18n.CompactNumberFormatSymbols_ar_SS', 'goog.i18n.CompactNumberFormatSymbols_ar_SY', 'goog.i18n.CompactNumberFormatSymbols_ar_TD', 'goog.i18n.CompactNumberFormatSymbols_ar_TN', 'goog.i18n.CompactNumberFormatSymbols_ar_YE', 'goog.i18n.CompactNumberFormatSymbols_as', 'goog.i18n.CompactNumberFormatSymbols_as_IN', 'goog.i18n.CompactNumberFormatSymbols_asa', 'goog.i18n.CompactNumberFormatSymbols_asa_TZ', 'goog.i18n.CompactNumberFormatSymbols_ast', 'goog.i18n.CompactNumberFormatSymbols_ast_ES', 'goog.i18n.CompactNumberFormatSymbols_az_Cyrl', 'goog.i18n.CompactNumberFormatSymbols_az_Cyrl_AZ', 'goog.i18n.CompactNumberFormatSymbols_az_Latn', 'goog.i18n.CompactNumberFormatSymbols_bas', 'goog.i18n.CompactNumberFormatSymbols_bas_CM', 'goog.i18n.CompactNumberFormatSymbols_be', 'goog.i18n.CompactNumberFormatSymbols_be_BY', 'goog.i18n.CompactNumberFormatSymbols_bem', 'goog.i18n.CompactNumberFormatSymbols_bem_ZM', 'goog.i18n.CompactNumberFormatSymbols_bez', 'goog.i18n.CompactNumberFormatSymbols_bez_TZ', 'goog.i18n.CompactNumberFormatSymbols_bm', 'goog.i18n.CompactNumberFormatSymbols_bm_Latn', 'goog.i18n.CompactNumberFormatSymbols_bm_Latn_ML', 'goog.i18n.CompactNumberFormatSymbols_bn_IN', 'goog.i18n.CompactNumberFormatSymbols_bo', 'goog.i18n.CompactNumberFormatSymbols_bo_CN', 'goog.i18n.CompactNumberFormatSymbols_bo_IN', 'goog.i18n.CompactNumberFormatSymbols_brx', 'goog.i18n.CompactNumberFormatSymbols_brx_IN', 'goog.i18n.CompactNumberFormatSymbols_bs', 'goog.i18n.CompactNumberFormatSymbols_bs_Cyrl', 'goog.i18n.CompactNumberFormatSymbols_bs_Cyrl_BA', 'goog.i18n.CompactNumberFormatSymbols_bs_Latn', 'goog.i18n.CompactNumberFormatSymbols_bs_Latn_BA', 'goog.i18n.CompactNumberFormatSymbols_cgg', 'goog.i18n.CompactNumberFormatSymbols_cgg_UG', 'goog.i18n.CompactNumberFormatSymbols_ckb', 'goog.i18n.CompactNumberFormatSymbols_ckb_Arab', 'goog.i18n.CompactNumberFormatSymbols_ckb_Arab_IQ', 'goog.i18n.CompactNumberFormatSymbols_ckb_Arab_IR', 'goog.i18n.CompactNumberFormatSymbols_ckb_IQ', 'goog.i18n.CompactNumberFormatSymbols_ckb_IR', 'goog.i18n.CompactNumberFormatSymbols_ckb_Latn', 'goog.i18n.CompactNumberFormatSymbols_ckb_Latn_IQ', 'goog.i18n.CompactNumberFormatSymbols_dav', 'goog.i18n.CompactNumberFormatSymbols_dav_KE', 'goog.i18n.CompactNumberFormatSymbols_de_LI', 'goog.i18n.CompactNumberFormatSymbols_dje', 'goog.i18n.CompactNumberFormatSymbols_dje_NE', 'goog.i18n.CompactNumberFormatSymbols_dsb', 'goog.i18n.CompactNumberFormatSymbols_dsb_DE', 'goog.i18n.CompactNumberFormatSymbols_dua', 'goog.i18n.CompactNumberFormatSymbols_dua_CM', 'goog.i18n.CompactNumberFormatSymbols_dyo', 'goog.i18n.CompactNumberFormatSymbols_dyo_SN', 'goog.i18n.CompactNumberFormatSymbols_dz', 'goog.i18n.CompactNumberFormatSymbols_dz_BT', 'goog.i18n.CompactNumberFormatSymbols_ebu', 'goog.i18n.CompactNumberFormatSymbols_ebu_KE', 'goog.i18n.CompactNumberFormatSymbols_ee', 'goog.i18n.CompactNumberFormatSymbols_ee_GH', 'goog.i18n.CompactNumberFormatSymbols_ee_TG', 'goog.i18n.CompactNumberFormatSymbols_el_CY', 'goog.i18n.CompactNumberFormatSymbols_en_150', 'goog.i18n.CompactNumberFormatSymbols_en_AG', 'goog.i18n.CompactNumberFormatSymbols_en_AI', 'goog.i18n.CompactNumberFormatSymbols_en_BB', 'goog.i18n.CompactNumberFormatSymbols_en_BE', 'goog.i18n.CompactNumberFormatSymbols_en_BM', 'goog.i18n.CompactNumberFormatSymbols_en_BS', 'goog.i18n.CompactNumberFormatSymbols_en_BW', 'goog.i18n.CompactNumberFormatSymbols_en_BZ', 'goog.i18n.CompactNumberFormatSymbols_en_CA', 'goog.i18n.CompactNumberFormatSymbols_en_CC', 'goog.i18n.CompactNumberFormatSymbols_en_CK', 'goog.i18n.CompactNumberFormatSymbols_en_CM', 'goog.i18n.CompactNumberFormatSymbols_en_CX', 'goog.i18n.CompactNumberFormatSymbols_en_DM', 'goog.i18n.CompactNumberFormatSymbols_en_ER', 'goog.i18n.CompactNumberFormatSymbols_en_FJ', 'goog.i18n.CompactNumberFormatSymbols_en_FK', 'goog.i18n.CompactNumberFormatSymbols_en_GD', 'goog.i18n.CompactNumberFormatSymbols_en_GG', 'goog.i18n.CompactNumberFormatSymbols_en_GH', 'goog.i18n.CompactNumberFormatSymbols_en_GI', 'goog.i18n.CompactNumberFormatSymbols_en_GM', 'goog.i18n.CompactNumberFormatSymbols_en_GY', 'goog.i18n.CompactNumberFormatSymbols_en_HK', 'goog.i18n.CompactNumberFormatSymbols_en_IM', 'goog.i18n.CompactNumberFormatSymbols_en_JE', 'goog.i18n.CompactNumberFormatSymbols_en_JM', 'goog.i18n.CompactNumberFormatSymbols_en_KE', 'goog.i18n.CompactNumberFormatSymbols_en_KI', 'goog.i18n.CompactNumberFormatSymbols_en_KN', 'goog.i18n.CompactNumberFormatSymbols_en_KY', 'goog.i18n.CompactNumberFormatSymbols_en_LC', 'goog.i18n.CompactNumberFormatSymbols_en_LR', 'goog.i18n.CompactNumberFormatSymbols_en_LS', 'goog.i18n.CompactNumberFormatSymbols_en_MG', 'goog.i18n.CompactNumberFormatSymbols_en_MO', 'goog.i18n.CompactNumberFormatSymbols_en_MS', 'goog.i18n.CompactNumberFormatSymbols_en_MT', 'goog.i18n.CompactNumberFormatSymbols_en_MU', 'goog.i18n.CompactNumberFormatSymbols_en_MW', 'goog.i18n.CompactNumberFormatSymbols_en_MY', 'goog.i18n.CompactNumberFormatSymbols_en_NA', 'goog.i18n.CompactNumberFormatSymbols_en_NF', 'goog.i18n.CompactNumberFormatSymbols_en_NG', 'goog.i18n.CompactNumberFormatSymbols_en_NR', 'goog.i18n.CompactNumberFormatSymbols_en_NU', 'goog.i18n.CompactNumberFormatSymbols_en_NZ', 'goog.i18n.CompactNumberFormatSymbols_en_PG', 'goog.i18n.CompactNumberFormatSymbols_en_PH', 'goog.i18n.CompactNumberFormatSymbols_en_PK', 'goog.i18n.CompactNumberFormatSymbols_en_PN', 'goog.i18n.CompactNumberFormatSymbols_en_RW', 'goog.i18n.CompactNumberFormatSymbols_en_SB', 'goog.i18n.CompactNumberFormatSymbols_en_SC', 'goog.i18n.CompactNumberFormatSymbols_en_SD', 'goog.i18n.CompactNumberFormatSymbols_en_SH', 'goog.i18n.CompactNumberFormatSymbols_en_SL', 'goog.i18n.CompactNumberFormatSymbols_en_SS', 'goog.i18n.CompactNumberFormatSymbols_en_SX', 'goog.i18n.CompactNumberFormatSymbols_en_SZ', 'goog.i18n.CompactNumberFormatSymbols_en_TK', 'goog.i18n.CompactNumberFormatSymbols_en_TO', 'goog.i18n.CompactNumberFormatSymbols_en_TT', 'goog.i18n.CompactNumberFormatSymbols_en_TV', 'goog.i18n.CompactNumberFormatSymbols_en_TZ', 'goog.i18n.CompactNumberFormatSymbols_en_UG', 'goog.i18n.CompactNumberFormatSymbols_en_VC', 'goog.i18n.CompactNumberFormatSymbols_en_VU', 'goog.i18n.CompactNumberFormatSymbols_en_WS', 'goog.i18n.CompactNumberFormatSymbols_en_ZM', 'goog.i18n.CompactNumberFormatSymbols_eo', 'goog.i18n.CompactNumberFormatSymbols_eo_001', 'goog.i18n.CompactNumberFormatSymbols_es_AR', 'goog.i18n.CompactNumberFormatSymbols_es_BO', 'goog.i18n.CompactNumberFormatSymbols_es_CL', 'goog.i18n.CompactNumberFormatSymbols_es_CO', 'goog.i18n.CompactNumberFormatSymbols_es_CR', 'goog.i18n.CompactNumberFormatSymbols_es_CU', 'goog.i18n.CompactNumberFormatSymbols_es_DO', 'goog.i18n.CompactNumberFormatSymbols_es_EC', 'goog.i18n.CompactNumberFormatSymbols_es_GQ', 'goog.i18n.CompactNumberFormatSymbols_es_GT', 'goog.i18n.CompactNumberFormatSymbols_es_HN', 'goog.i18n.CompactNumberFormatSymbols_es_MX', 'goog.i18n.CompactNumberFormatSymbols_es_NI', 'goog.i18n.CompactNumberFormatSymbols_es_PA', 'goog.i18n.CompactNumberFormatSymbols_es_PE', 'goog.i18n.CompactNumberFormatSymbols_es_PH', 'goog.i18n.CompactNumberFormatSymbols_es_PR', 'goog.i18n.CompactNumberFormatSymbols_es_PY', 'goog.i18n.CompactNumberFormatSymbols_es_SV', 'goog.i18n.CompactNumberFormatSymbols_es_US', 'goog.i18n.CompactNumberFormatSymbols_es_UY', 'goog.i18n.CompactNumberFormatSymbols_es_VE', 'goog.i18n.CompactNumberFormatSymbols_ewo', 'goog.i18n.CompactNumberFormatSymbols_ewo_CM', 'goog.i18n.CompactNumberFormatSymbols_fa_AF', 'goog.i18n.CompactNumberFormatSymbols_ff', 'goog.i18n.CompactNumberFormatSymbols_ff_CM', 'goog.i18n.CompactNumberFormatSymbols_ff_GN', 'goog.i18n.CompactNumberFormatSymbols_ff_MR', 'goog.i18n.CompactNumberFormatSymbols_ff_SN', 'goog.i18n.CompactNumberFormatSymbols_fo', 'goog.i18n.CompactNumberFormatSymbols_fo_FO', 'goog.i18n.CompactNumberFormatSymbols_fr_BE', 'goog.i18n.CompactNumberFormatSymbols_fr_BF', 'goog.i18n.CompactNumberFormatSymbols_fr_BI', 'goog.i18n.CompactNumberFormatSymbols_fr_BJ', 'goog.i18n.CompactNumberFormatSymbols_fr_CD', 'goog.i18n.CompactNumberFormatSymbols_fr_CF', 'goog.i18n.CompactNumberFormatSymbols_fr_CG', 'goog.i18n.CompactNumberFormatSymbols_fr_CH', 'goog.i18n.CompactNumberFormatSymbols_fr_CI', 'goog.i18n.CompactNumberFormatSymbols_fr_CM', 'goog.i18n.CompactNumberFormatSymbols_fr_DJ', 'goog.i18n.CompactNumberFormatSymbols_fr_DZ', 'goog.i18n.CompactNumberFormatSymbols_fr_GA', 'goog.i18n.CompactNumberFormatSymbols_fr_GN', 'goog.i18n.CompactNumberFormatSymbols_fr_GQ', 'goog.i18n.CompactNumberFormatSymbols_fr_HT', 'goog.i18n.CompactNumberFormatSymbols_fr_KM', 'goog.i18n.CompactNumberFormatSymbols_fr_LU', 'goog.i18n.CompactNumberFormatSymbols_fr_MA', 'goog.i18n.CompactNumberFormatSymbols_fr_MG', 'goog.i18n.CompactNumberFormatSymbols_fr_ML', 'goog.i18n.CompactNumberFormatSymbols_fr_MR', 'goog.i18n.CompactNumberFormatSymbols_fr_MU', 'goog.i18n.CompactNumberFormatSymbols_fr_NC', 'goog.i18n.CompactNumberFormatSymbols_fr_NE', 'goog.i18n.CompactNumberFormatSymbols_fr_PF', 'goog.i18n.CompactNumberFormatSymbols_fr_RW', 'goog.i18n.CompactNumberFormatSymbols_fr_SC', 'goog.i18n.CompactNumberFormatSymbols_fr_SN', 'goog.i18n.CompactNumberFormatSymbols_fr_SY', 'goog.i18n.CompactNumberFormatSymbols_fr_TD', 'goog.i18n.CompactNumberFormatSymbols_fr_TG', 'goog.i18n.CompactNumberFormatSymbols_fr_TN', 'goog.i18n.CompactNumberFormatSymbols_fr_VU', 'goog.i18n.CompactNumberFormatSymbols_fr_WF', 'goog.i18n.CompactNumberFormatSymbols_fur', 'goog.i18n.CompactNumberFormatSymbols_fur_IT', 'goog.i18n.CompactNumberFormatSymbols_fy', 'goog.i18n.CompactNumberFormatSymbols_fy_NL', 'goog.i18n.CompactNumberFormatSymbols_gd', 'goog.i18n.CompactNumberFormatSymbols_gd_GB', 'goog.i18n.CompactNumberFormatSymbols_gsw_FR', 'goog.i18n.CompactNumberFormatSymbols_guz', 'goog.i18n.CompactNumberFormatSymbols_guz_KE', 'goog.i18n.CompactNumberFormatSymbols_gv', 'goog.i18n.CompactNumberFormatSymbols_gv_IM', 'goog.i18n.CompactNumberFormatSymbols_ha', 'goog.i18n.CompactNumberFormatSymbols_ha_Latn', 'goog.i18n.CompactNumberFormatSymbols_ha_Latn_GH', 'goog.i18n.CompactNumberFormatSymbols_ha_Latn_NE', 'goog.i18n.CompactNumberFormatSymbols_ha_Latn_NG', 'goog.i18n.CompactNumberFormatSymbols_hr_BA', 'goog.i18n.CompactNumberFormatSymbols_hsb', 'goog.i18n.CompactNumberFormatSymbols_hsb_DE', 'goog.i18n.CompactNumberFormatSymbols_ia', 'goog.i18n.CompactNumberFormatSymbols_ia_FR', 'goog.i18n.CompactNumberFormatSymbols_ig', 'goog.i18n.CompactNumberFormatSymbols_ig_NG', 'goog.i18n.CompactNumberFormatSymbols_ii', 'goog.i18n.CompactNumberFormatSymbols_ii_CN', 'goog.i18n.CompactNumberFormatSymbols_it_CH', 'goog.i18n.CompactNumberFormatSymbols_jgo', 'goog.i18n.CompactNumberFormatSymbols_jgo_CM', 'goog.i18n.CompactNumberFormatSymbols_jmc', 'goog.i18n.CompactNumberFormatSymbols_jmc_TZ', 'goog.i18n.CompactNumberFormatSymbols_kab', 'goog.i18n.CompactNumberFormatSymbols_kab_DZ', 'goog.i18n.CompactNumberFormatSymbols_kam', 'goog.i18n.CompactNumberFormatSymbols_kam_KE', 'goog.i18n.CompactNumberFormatSymbols_kde', 'goog.i18n.CompactNumberFormatSymbols_kde_TZ', 'goog.i18n.CompactNumberFormatSymbols_kea', 'goog.i18n.CompactNumberFormatSymbols_kea_CV', 'goog.i18n.CompactNumberFormatSymbols_khq', 'goog.i18n.CompactNumberFormatSymbols_khq_ML', 'goog.i18n.CompactNumberFormatSymbols_ki', 'goog.i18n.CompactNumberFormatSymbols_ki_KE', 'goog.i18n.CompactNumberFormatSymbols_kk_Cyrl', 'goog.i18n.CompactNumberFormatSymbols_kkj', 'goog.i18n.CompactNumberFormatSymbols_kkj_CM', 'goog.i18n.CompactNumberFormatSymbols_kl', 'goog.i18n.CompactNumberFormatSymbols_kl_GL', 'goog.i18n.CompactNumberFormatSymbols_kln', 'goog.i18n.CompactNumberFormatSymbols_kln_KE', 'goog.i18n.CompactNumberFormatSymbols_ko_KP', 'goog.i18n.CompactNumberFormatSymbols_kok', 'goog.i18n.CompactNumberFormatSymbols_kok_IN', 'goog.i18n.CompactNumberFormatSymbols_ks', 'goog.i18n.CompactNumberFormatSymbols_ks_Arab', 'goog.i18n.CompactNumberFormatSymbols_ks_Arab_IN', 'goog.i18n.CompactNumberFormatSymbols_ksb', 'goog.i18n.CompactNumberFormatSymbols_ksb_TZ', 'goog.i18n.CompactNumberFormatSymbols_ksf', 'goog.i18n.CompactNumberFormatSymbols_ksf_CM', 'goog.i18n.CompactNumberFormatSymbols_ksh', 'goog.i18n.CompactNumberFormatSymbols_ksh_DE', 'goog.i18n.CompactNumberFormatSymbols_kw', 'goog.i18n.CompactNumberFormatSymbols_kw_GB', 'goog.i18n.CompactNumberFormatSymbols_ky_Cyrl', 'goog.i18n.CompactNumberFormatSymbols_lag', 'goog.i18n.CompactNumberFormatSymbols_lag_TZ', 'goog.i18n.CompactNumberFormatSymbols_lb', 'goog.i18n.CompactNumberFormatSymbols_lb_LU', 'goog.i18n.CompactNumberFormatSymbols_lg', 'goog.i18n.CompactNumberFormatSymbols_lg_UG', 'goog.i18n.CompactNumberFormatSymbols_lkt', 'goog.i18n.CompactNumberFormatSymbols_lkt_US', 'goog.i18n.CompactNumberFormatSymbols_ln_AO', 'goog.i18n.CompactNumberFormatSymbols_ln_CF', 'goog.i18n.CompactNumberFormatSymbols_ln_CG', 'goog.i18n.CompactNumberFormatSymbols_lu', 'goog.i18n.CompactNumberFormatSymbols_lu_CD', 'goog.i18n.CompactNumberFormatSymbols_luo', 'goog.i18n.CompactNumberFormatSymbols_luo_KE', 'goog.i18n.CompactNumberFormatSymbols_luy', 'goog.i18n.CompactNumberFormatSymbols_luy_KE', 'goog.i18n.CompactNumberFormatSymbols_mas', 'goog.i18n.CompactNumberFormatSymbols_mas_KE', 'goog.i18n.CompactNumberFormatSymbols_mas_TZ', 'goog.i18n.CompactNumberFormatSymbols_mer', 'goog.i18n.CompactNumberFormatSymbols_mer_KE', 'goog.i18n.CompactNumberFormatSymbols_mfe', 'goog.i18n.CompactNumberFormatSymbols_mfe_MU', 'goog.i18n.CompactNumberFormatSymbols_mg', 'goog.i18n.CompactNumberFormatSymbols_mg_MG', 'goog.i18n.CompactNumberFormatSymbols_mgh', 'goog.i18n.CompactNumberFormatSymbols_mgh_MZ', 'goog.i18n.CompactNumberFormatSymbols_mgo', 'goog.i18n.CompactNumberFormatSymbols_mgo_CM', 'goog.i18n.CompactNumberFormatSymbols_mn_Cyrl', 'goog.i18n.CompactNumberFormatSymbols_ms_Latn', 'goog.i18n.CompactNumberFormatSymbols_ms_Latn_BN', 'goog.i18n.CompactNumberFormatSymbols_ms_Latn_SG', 'goog.i18n.CompactNumberFormatSymbols_mua', 'goog.i18n.CompactNumberFormatSymbols_mua_CM', 'goog.i18n.CompactNumberFormatSymbols_naq', 'goog.i18n.CompactNumberFormatSymbols_naq_NA', 'goog.i18n.CompactNumberFormatSymbols_nd', 'goog.i18n.CompactNumberFormatSymbols_nd_ZW', 'goog.i18n.CompactNumberFormatSymbols_ne_IN', 'goog.i18n.CompactNumberFormatSymbols_nl_AW', 'goog.i18n.CompactNumberFormatSymbols_nl_BE', 'goog.i18n.CompactNumberFormatSymbols_nl_BQ', 'goog.i18n.CompactNumberFormatSymbols_nl_CW', 'goog.i18n.CompactNumberFormatSymbols_nl_SR', 'goog.i18n.CompactNumberFormatSymbols_nl_SX', 'goog.i18n.CompactNumberFormatSymbols_nmg', 'goog.i18n.CompactNumberFormatSymbols_nmg_CM', 'goog.i18n.CompactNumberFormatSymbols_nn', 'goog.i18n.CompactNumberFormatSymbols_nn_NO', 'goog.i18n.CompactNumberFormatSymbols_nnh', 'goog.i18n.CompactNumberFormatSymbols_nnh_CM', 'goog.i18n.CompactNumberFormatSymbols_nr', 'goog.i18n.CompactNumberFormatSymbols_nr_ZA', 'goog.i18n.CompactNumberFormatSymbols_nso', 'goog.i18n.CompactNumberFormatSymbols_nso_ZA', 'goog.i18n.CompactNumberFormatSymbols_nus', 'goog.i18n.CompactNumberFormatSymbols_nus_SD', 'goog.i18n.CompactNumberFormatSymbols_nyn', 'goog.i18n.CompactNumberFormatSymbols_nyn_UG', 'goog.i18n.CompactNumberFormatSymbols_om', 'goog.i18n.CompactNumberFormatSymbols_om_ET', 'goog.i18n.CompactNumberFormatSymbols_om_KE', 'goog.i18n.CompactNumberFormatSymbols_os', 'goog.i18n.CompactNumberFormatSymbols_os_GE', 'goog.i18n.CompactNumberFormatSymbols_os_RU', 'goog.i18n.CompactNumberFormatSymbols_pa_Arab', 'goog.i18n.CompactNumberFormatSymbols_pa_Arab_PK', 'goog.i18n.CompactNumberFormatSymbols_pa_Guru', 'goog.i18n.CompactNumberFormatSymbols_ps', 'goog.i18n.CompactNumberFormatSymbols_ps_AF', 'goog.i18n.CompactNumberFormatSymbols_pt_AO', 'goog.i18n.CompactNumberFormatSymbols_pt_CV', 'goog.i18n.CompactNumberFormatSymbols_pt_GW', 'goog.i18n.CompactNumberFormatSymbols_pt_MO', 'goog.i18n.CompactNumberFormatSymbols_pt_MZ', 'goog.i18n.CompactNumberFormatSymbols_pt_ST', 'goog.i18n.CompactNumberFormatSymbols_pt_TL', 'goog.i18n.CompactNumberFormatSymbols_qu', 'goog.i18n.CompactNumberFormatSymbols_qu_BO', 'goog.i18n.CompactNumberFormatSymbols_qu_EC', 'goog.i18n.CompactNumberFormatSymbols_qu_PE', 'goog.i18n.CompactNumberFormatSymbols_rm', 'goog.i18n.CompactNumberFormatSymbols_rm_CH', 'goog.i18n.CompactNumberFormatSymbols_rn', 'goog.i18n.CompactNumberFormatSymbols_rn_BI', 'goog.i18n.CompactNumberFormatSymbols_ro_MD', 'goog.i18n.CompactNumberFormatSymbols_rof', 'goog.i18n.CompactNumberFormatSymbols_rof_TZ', 'goog.i18n.CompactNumberFormatSymbols_ru_BY', 'goog.i18n.CompactNumberFormatSymbols_ru_KG', 'goog.i18n.CompactNumberFormatSymbols_ru_KZ', 'goog.i18n.CompactNumberFormatSymbols_ru_MD', 'goog.i18n.CompactNumberFormatSymbols_ru_UA', 'goog.i18n.CompactNumberFormatSymbols_rw', 'goog.i18n.CompactNumberFormatSymbols_rw_RW', 'goog.i18n.CompactNumberFormatSymbols_rwk', 'goog.i18n.CompactNumberFormatSymbols_rwk_TZ', 'goog.i18n.CompactNumberFormatSymbols_sah', 'goog.i18n.CompactNumberFormatSymbols_sah_RU', 'goog.i18n.CompactNumberFormatSymbols_saq', 'goog.i18n.CompactNumberFormatSymbols_saq_KE', 'goog.i18n.CompactNumberFormatSymbols_sbp', 'goog.i18n.CompactNumberFormatSymbols_sbp_TZ', 'goog.i18n.CompactNumberFormatSymbols_se', 'goog.i18n.CompactNumberFormatSymbols_se_FI', 'goog.i18n.CompactNumberFormatSymbols_se_NO', 'goog.i18n.CompactNumberFormatSymbols_se_SE', 'goog.i18n.CompactNumberFormatSymbols_seh', 'goog.i18n.CompactNumberFormatSymbols_seh_MZ', 'goog.i18n.CompactNumberFormatSymbols_ses', 'goog.i18n.CompactNumberFormatSymbols_ses_ML', 'goog.i18n.CompactNumberFormatSymbols_sg', 'goog.i18n.CompactNumberFormatSymbols_sg_CF', 'goog.i18n.CompactNumberFormatSymbols_shi', 'goog.i18n.CompactNumberFormatSymbols_shi_Latn', 'goog.i18n.CompactNumberFormatSymbols_shi_Latn_MA', 'goog.i18n.CompactNumberFormatSymbols_shi_Tfng', 'goog.i18n.CompactNumberFormatSymbols_shi_Tfng_MA', 'goog.i18n.CompactNumberFormatSymbols_smn', 'goog.i18n.CompactNumberFormatSymbols_smn_FI', 'goog.i18n.CompactNumberFormatSymbols_sn', 'goog.i18n.CompactNumberFormatSymbols_sn_ZW', 'goog.i18n.CompactNumberFormatSymbols_so', 'goog.i18n.CompactNumberFormatSymbols_so_DJ', 'goog.i18n.CompactNumberFormatSymbols_so_ET', 'goog.i18n.CompactNumberFormatSymbols_so_KE', 'goog.i18n.CompactNumberFormatSymbols_so_SO', 'goog.i18n.CompactNumberFormatSymbols_sq_MK', 'goog.i18n.CompactNumberFormatSymbols_sq_XK', 'goog.i18n.CompactNumberFormatSymbols_sr_Cyrl', 'goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_BA', 'goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_ME', 'goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_XK', 'goog.i18n.CompactNumberFormatSymbols_sr_Latn', 'goog.i18n.CompactNumberFormatSymbols_sr_Latn_BA', 'goog.i18n.CompactNumberFormatSymbols_sr_Latn_ME', 'goog.i18n.CompactNumberFormatSymbols_sr_Latn_RS', 'goog.i18n.CompactNumberFormatSymbols_sr_Latn_XK', 'goog.i18n.CompactNumberFormatSymbols_ss', 'goog.i18n.CompactNumberFormatSymbols_ss_SZ', 'goog.i18n.CompactNumberFormatSymbols_ss_ZA', 'goog.i18n.CompactNumberFormatSymbols_ssy', 'goog.i18n.CompactNumberFormatSymbols_ssy_ER', 'goog.i18n.CompactNumberFormatSymbols_sv_AX', 'goog.i18n.CompactNumberFormatSymbols_sv_FI', 'goog.i18n.CompactNumberFormatSymbols_sw_KE', 'goog.i18n.CompactNumberFormatSymbols_sw_UG', 'goog.i18n.CompactNumberFormatSymbols_swc', 'goog.i18n.CompactNumberFormatSymbols_swc_CD', 'goog.i18n.CompactNumberFormatSymbols_ta_LK', 'goog.i18n.CompactNumberFormatSymbols_ta_MY', 'goog.i18n.CompactNumberFormatSymbols_ta_SG', 'goog.i18n.CompactNumberFormatSymbols_teo', 'goog.i18n.CompactNumberFormatSymbols_teo_KE', 'goog.i18n.CompactNumberFormatSymbols_teo_UG', 'goog.i18n.CompactNumberFormatSymbols_ti', 'goog.i18n.CompactNumberFormatSymbols_ti_ER', 'goog.i18n.CompactNumberFormatSymbols_ti_ET', 'goog.i18n.CompactNumberFormatSymbols_tn', 'goog.i18n.CompactNumberFormatSymbols_tn_BW', 'goog.i18n.CompactNumberFormatSymbols_tn_ZA', 'goog.i18n.CompactNumberFormatSymbols_to', 'goog.i18n.CompactNumberFormatSymbols_to_TO', 'goog.i18n.CompactNumberFormatSymbols_tr_CY', 'goog.i18n.CompactNumberFormatSymbols_ts', 'goog.i18n.CompactNumberFormatSymbols_ts_ZA', 'goog.i18n.CompactNumberFormatSymbols_twq', 'goog.i18n.CompactNumberFormatSymbols_twq_NE', 'goog.i18n.CompactNumberFormatSymbols_tzm', 'goog.i18n.CompactNumberFormatSymbols_tzm_Latn', 'goog.i18n.CompactNumberFormatSymbols_tzm_Latn_MA', 'goog.i18n.CompactNumberFormatSymbols_ug', 'goog.i18n.CompactNumberFormatSymbols_ug_Arab', 'goog.i18n.CompactNumberFormatSymbols_ug_Arab_CN', 'goog.i18n.CompactNumberFormatSymbols_ur_IN', 'goog.i18n.CompactNumberFormatSymbols_uz_Arab', 'goog.i18n.CompactNumberFormatSymbols_uz_Arab_AF', 'goog.i18n.CompactNumberFormatSymbols_uz_Cyrl', 'goog.i18n.CompactNumberFormatSymbols_uz_Cyrl_UZ', 'goog.i18n.CompactNumberFormatSymbols_uz_Latn', 'goog.i18n.CompactNumberFormatSymbols_vai', 'goog.i18n.CompactNumberFormatSymbols_vai_Latn', 'goog.i18n.CompactNumberFormatSymbols_vai_Latn_LR', 'goog.i18n.CompactNumberFormatSymbols_vai_Vaii', 'goog.i18n.CompactNumberFormatSymbols_vai_Vaii_LR', 'goog.i18n.CompactNumberFormatSymbols_ve', 'goog.i18n.CompactNumberFormatSymbols_ve_ZA', 'goog.i18n.CompactNumberFormatSymbols_vo', 'goog.i18n.CompactNumberFormatSymbols_vo_001', 'goog.i18n.CompactNumberFormatSymbols_vun', 'goog.i18n.CompactNumberFormatSymbols_vun_TZ', 'goog.i18n.CompactNumberFormatSymbols_wae', 'goog.i18n.CompactNumberFormatSymbols_wae_CH', 'goog.i18n.CompactNumberFormatSymbols_xog', 'goog.i18n.CompactNumberFormatSymbols_xog_UG', 'goog.i18n.CompactNumberFormatSymbols_yav', 'goog.i18n.CompactNumberFormatSymbols_yav_CM', 'goog.i18n.CompactNumberFormatSymbols_yi', 'goog.i18n.CompactNumberFormatSymbols_yi_001', 'goog.i18n.CompactNumberFormatSymbols_yo', 'goog.i18n.CompactNumberFormatSymbols_yo_BJ', 'goog.i18n.CompactNumberFormatSymbols_yo_NG', 'goog.i18n.CompactNumberFormatSymbols_zgh', 'goog.i18n.CompactNumberFormatSymbols_zgh_MA', 'goog.i18n.CompactNumberFormatSymbols_zh_Hans', 'goog.i18n.CompactNumberFormatSymbols_zh_Hans_HK', 'goog.i18n.CompactNumberFormatSymbols_zh_Hans_MO', 'goog.i18n.CompactNumberFormatSymbols_zh_Hans_SG', 'goog.i18n.CompactNumberFormatSymbols_zh_Hant', 'goog.i18n.CompactNumberFormatSymbols_zh_Hant_HK', 'goog.i18n.CompactNumberFormatSymbols_zh_Hant_MO', 'goog.i18n.CompactNumberFormatSymbols_zh_Hant_TW'], [], false); >+goog.addDependency('i18n/currency.js', ['goog.i18n.currency', 'goog.i18n.currency.CurrencyInfo', 'goog.i18n.currency.CurrencyInfoTier2'], [], false); >+goog.addDependency('i18n/currency_test.js', ['goog.i18n.currencyTest'], ['goog.i18n.NumberFormat', 'goog.i18n.currency', 'goog.i18n.currency.CurrencyInfo', 'goog.object', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], false); >+goog.addDependency('i18n/currencycodemap.js', ['goog.i18n.currencyCodeMap', 'goog.i18n.currencyCodeMapTier2'], [], false); >+goog.addDependency('i18n/datetimeformat.js', ['goog.i18n.DateTimeFormat', 'goog.i18n.DateTimeFormat.Format'], ['goog.asserts', 'goog.date', 'goog.i18n.DateTimeSymbols', 'goog.i18n.TimeZone', 'goog.string'], false); >+goog.addDependency('i18n/datetimeformat_test.js', ['goog.i18n.DateTimeFormatTest'], ['goog.date.Date', 'goog.date.DateTime', 'goog.i18n.DateTimeFormat', 'goog.i18n.DateTimePatterns', 'goog.i18n.DateTimePatterns_de', 'goog.i18n.DateTimePatterns_en', 'goog.i18n.DateTimePatterns_fa', 'goog.i18n.DateTimePatterns_fr', 'goog.i18n.DateTimePatterns_ja', 'goog.i18n.DateTimePatterns_sv', 'goog.i18n.DateTimeSymbols', 'goog.i18n.DateTimeSymbols_ar_AE', 'goog.i18n.DateTimeSymbols_ar_SA', 'goog.i18n.DateTimeSymbols_bn_BD', 'goog.i18n.DateTimeSymbols_de', 'goog.i18n.DateTimeSymbols_en', 'goog.i18n.DateTimeSymbols_en_GB', 'goog.i18n.DateTimeSymbols_en_IE', 'goog.i18n.DateTimeSymbols_en_IN', 'goog.i18n.DateTimeSymbols_en_US', 'goog.i18n.DateTimeSymbols_fa', 'goog.i18n.DateTimeSymbols_fr', 'goog.i18n.DateTimeSymbols_fr_DJ', 'goog.i18n.DateTimeSymbols_he_IL', 'goog.i18n.DateTimeSymbols_ja', 'goog.i18n.DateTimeSymbols_ro_RO', 'goog.i18n.DateTimeSymbols_sv', 'goog.i18n.TimeZone', 'goog.testing.jsunit'], false); >+goog.addDependency('i18n/datetimeparse.js', ['goog.i18n.DateTimeParse'], ['goog.date', 'goog.i18n.DateTimeFormat', 'goog.i18n.DateTimeSymbols'], false); >+goog.addDependency('i18n/datetimeparse_test.js', ['goog.i18n.DateTimeParseTest'], ['goog.date.Date', 'goog.i18n.DateTimeFormat', 'goog.i18n.DateTimeParse', 'goog.i18n.DateTimeSymbols', 'goog.i18n.DateTimeSymbols_en', 'goog.i18n.DateTimeSymbols_fa', 'goog.i18n.DateTimeSymbols_fr', 'goog.i18n.DateTimeSymbols_pl', 'goog.i18n.DateTimeSymbols_zh', 'goog.testing.ExpectedFailures', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('i18n/datetimepatterns.js', ['goog.i18n.DateTimePatterns', 'goog.i18n.DateTimePatterns_af', 'goog.i18n.DateTimePatterns_am', 'goog.i18n.DateTimePatterns_ar', 'goog.i18n.DateTimePatterns_az', 'goog.i18n.DateTimePatterns_bg', 'goog.i18n.DateTimePatterns_bn', 'goog.i18n.DateTimePatterns_br', 'goog.i18n.DateTimePatterns_ca', 'goog.i18n.DateTimePatterns_chr', 'goog.i18n.DateTimePatterns_cs', 'goog.i18n.DateTimePatterns_cy', 'goog.i18n.DateTimePatterns_da', 'goog.i18n.DateTimePatterns_de', 'goog.i18n.DateTimePatterns_de_AT', 'goog.i18n.DateTimePatterns_de_CH', 'goog.i18n.DateTimePatterns_el', 'goog.i18n.DateTimePatterns_en', 'goog.i18n.DateTimePatterns_en_AU', 'goog.i18n.DateTimePatterns_en_GB', 'goog.i18n.DateTimePatterns_en_IE', 'goog.i18n.DateTimePatterns_en_IN', 'goog.i18n.DateTimePatterns_en_SG', 'goog.i18n.DateTimePatterns_en_US', 'goog.i18n.DateTimePatterns_en_ZA', 'goog.i18n.DateTimePatterns_es', 'goog.i18n.DateTimePatterns_es_419', 'goog.i18n.DateTimePatterns_es_ES', 'goog.i18n.DateTimePatterns_et', 'goog.i18n.DateTimePatterns_eu', 'goog.i18n.DateTimePatterns_fa', 'goog.i18n.DateTimePatterns_fi', 'goog.i18n.DateTimePatterns_fil', 'goog.i18n.DateTimePatterns_fr', 'goog.i18n.DateTimePatterns_fr_CA', 'goog.i18n.DateTimePatterns_ga', 'goog.i18n.DateTimePatterns_gl', 'goog.i18n.DateTimePatterns_gsw', 'goog.i18n.DateTimePatterns_gu', 'goog.i18n.DateTimePatterns_haw', 'goog.i18n.DateTimePatterns_he', 'goog.i18n.DateTimePatterns_hi', 'goog.i18n.DateTimePatterns_hr', 'goog.i18n.DateTimePatterns_hu', 'goog.i18n.DateTimePatterns_hy', 'goog.i18n.DateTimePatterns_id', 'goog.i18n.DateTimePatterns_in', 'goog.i18n.DateTimePatterns_is', 'goog.i18n.DateTimePatterns_it', 'goog.i18n.DateTimePatterns_iw', 'goog.i18n.DateTimePatterns_ja', 'goog.i18n.DateTimePatterns_ka', 'goog.i18n.DateTimePatterns_kk', 'goog.i18n.DateTimePatterns_km', 'goog.i18n.DateTimePatterns_kn', 'goog.i18n.DateTimePatterns_ko', 'goog.i18n.DateTimePatterns_ky', 'goog.i18n.DateTimePatterns_ln', 'goog.i18n.DateTimePatterns_lo', 'goog.i18n.DateTimePatterns_lt', 'goog.i18n.DateTimePatterns_lv', 'goog.i18n.DateTimePatterns_mk', 'goog.i18n.DateTimePatterns_ml', 'goog.i18n.DateTimePatterns_mn', 'goog.i18n.DateTimePatterns_mo', 'goog.i18n.DateTimePatterns_mr', 'goog.i18n.DateTimePatterns_ms', 'goog.i18n.DateTimePatterns_mt', 'goog.i18n.DateTimePatterns_my', 'goog.i18n.DateTimePatterns_nb', 'goog.i18n.DateTimePatterns_ne', 'goog.i18n.DateTimePatterns_nl', 'goog.i18n.DateTimePatterns_no', 'goog.i18n.DateTimePatterns_no_NO', 'goog.i18n.DateTimePatterns_or', 'goog.i18n.DateTimePatterns_pa', 'goog.i18n.DateTimePatterns_pl', 'goog.i18n.DateTimePatterns_pt', 'goog.i18n.DateTimePatterns_pt_BR', 'goog.i18n.DateTimePatterns_pt_PT', 'goog.i18n.DateTimePatterns_ro', 'goog.i18n.DateTimePatterns_ru', 'goog.i18n.DateTimePatterns_sh', 'goog.i18n.DateTimePatterns_si', 'goog.i18n.DateTimePatterns_sk', 'goog.i18n.DateTimePatterns_sl', 'goog.i18n.DateTimePatterns_sq', 'goog.i18n.DateTimePatterns_sr', 'goog.i18n.DateTimePatterns_sv', 'goog.i18n.DateTimePatterns_sw', 'goog.i18n.DateTimePatterns_ta', 'goog.i18n.DateTimePatterns_te', 'goog.i18n.DateTimePatterns_th', 'goog.i18n.DateTimePatterns_tl', 'goog.i18n.DateTimePatterns_tr', 'goog.i18n.DateTimePatterns_uk', 'goog.i18n.DateTimePatterns_ur', 'goog.i18n.DateTimePatterns_uz', 'goog.i18n.DateTimePatterns_vi', 'goog.i18n.DateTimePatterns_zh', 'goog.i18n.DateTimePatterns_zh_CN', 'goog.i18n.DateTimePatterns_zh_HK', 'goog.i18n.DateTimePatterns_zh_TW', 'goog.i18n.DateTimePatterns_zu'], [], false); >+goog.addDependency('i18n/datetimepatternsext.js', ['goog.i18n.DateTimePatternsExt', 'goog.i18n.DateTimePatterns_af_NA', 'goog.i18n.DateTimePatterns_af_ZA', 'goog.i18n.DateTimePatterns_agq', 'goog.i18n.DateTimePatterns_agq_CM', 'goog.i18n.DateTimePatterns_ak', 'goog.i18n.DateTimePatterns_ak_GH', 'goog.i18n.DateTimePatterns_am_ET', 'goog.i18n.DateTimePatterns_ar_001', 'goog.i18n.DateTimePatterns_ar_AE', 'goog.i18n.DateTimePatterns_ar_BH', 'goog.i18n.DateTimePatterns_ar_DJ', 'goog.i18n.DateTimePatterns_ar_DZ', 'goog.i18n.DateTimePatterns_ar_EG', 'goog.i18n.DateTimePatterns_ar_EH', 'goog.i18n.DateTimePatterns_ar_ER', 'goog.i18n.DateTimePatterns_ar_IL', 'goog.i18n.DateTimePatterns_ar_IQ', 'goog.i18n.DateTimePatterns_ar_JO', 'goog.i18n.DateTimePatterns_ar_KM', 'goog.i18n.DateTimePatterns_ar_KW', 'goog.i18n.DateTimePatterns_ar_LB', 'goog.i18n.DateTimePatterns_ar_LY', 'goog.i18n.DateTimePatterns_ar_MA', 'goog.i18n.DateTimePatterns_ar_MR', 'goog.i18n.DateTimePatterns_ar_OM', 'goog.i18n.DateTimePatterns_ar_PS', 'goog.i18n.DateTimePatterns_ar_QA', 'goog.i18n.DateTimePatterns_ar_SA', 'goog.i18n.DateTimePatterns_ar_SD', 'goog.i18n.DateTimePatterns_ar_SO', 'goog.i18n.DateTimePatterns_ar_SS', 'goog.i18n.DateTimePatterns_ar_SY', 'goog.i18n.DateTimePatterns_ar_TD', 'goog.i18n.DateTimePatterns_ar_TN', 'goog.i18n.DateTimePatterns_ar_YE', 'goog.i18n.DateTimePatterns_as', 'goog.i18n.DateTimePatterns_as_IN', 'goog.i18n.DateTimePatterns_asa', 'goog.i18n.DateTimePatterns_asa_TZ', 'goog.i18n.DateTimePatterns_az_Cyrl', 'goog.i18n.DateTimePatterns_az_Cyrl_AZ', 'goog.i18n.DateTimePatterns_az_Latn', 'goog.i18n.DateTimePatterns_az_Latn_AZ', 'goog.i18n.DateTimePatterns_bas', 'goog.i18n.DateTimePatterns_bas_CM', 'goog.i18n.DateTimePatterns_be', 'goog.i18n.DateTimePatterns_be_BY', 'goog.i18n.DateTimePatterns_bem', 'goog.i18n.DateTimePatterns_bem_ZM', 'goog.i18n.DateTimePatterns_bez', 'goog.i18n.DateTimePatterns_bez_TZ', 'goog.i18n.DateTimePatterns_bg_BG', 'goog.i18n.DateTimePatterns_bm', 'goog.i18n.DateTimePatterns_bm_Latn', 'goog.i18n.DateTimePatterns_bm_Latn_ML', 'goog.i18n.DateTimePatterns_bn_BD', 'goog.i18n.DateTimePatterns_bn_IN', 'goog.i18n.DateTimePatterns_bo', 'goog.i18n.DateTimePatterns_bo_CN', 'goog.i18n.DateTimePatterns_bo_IN', 'goog.i18n.DateTimePatterns_br_FR', 'goog.i18n.DateTimePatterns_brx', 'goog.i18n.DateTimePatterns_brx_IN', 'goog.i18n.DateTimePatterns_bs', 'goog.i18n.DateTimePatterns_bs_Cyrl', 'goog.i18n.DateTimePatterns_bs_Cyrl_BA', 'goog.i18n.DateTimePatterns_bs_Latn', 'goog.i18n.DateTimePatterns_bs_Latn_BA', 'goog.i18n.DateTimePatterns_ca_AD', 'goog.i18n.DateTimePatterns_ca_ES', 'goog.i18n.DateTimePatterns_ca_FR', 'goog.i18n.DateTimePatterns_ca_IT', 'goog.i18n.DateTimePatterns_cgg', 'goog.i18n.DateTimePatterns_cgg_UG', 'goog.i18n.DateTimePatterns_chr_US', 'goog.i18n.DateTimePatterns_cs_CZ', 'goog.i18n.DateTimePatterns_cy_GB', 'goog.i18n.DateTimePatterns_da_DK', 'goog.i18n.DateTimePatterns_da_GL', 'goog.i18n.DateTimePatterns_dav', 'goog.i18n.DateTimePatterns_dav_KE', 'goog.i18n.DateTimePatterns_de_BE', 'goog.i18n.DateTimePatterns_de_DE', 'goog.i18n.DateTimePatterns_de_LI', 'goog.i18n.DateTimePatterns_de_LU', 'goog.i18n.DateTimePatterns_dje', 'goog.i18n.DateTimePatterns_dje_NE', 'goog.i18n.DateTimePatterns_dsb', 'goog.i18n.DateTimePatterns_dsb_DE', 'goog.i18n.DateTimePatterns_dua', 'goog.i18n.DateTimePatterns_dua_CM', 'goog.i18n.DateTimePatterns_dyo', 'goog.i18n.DateTimePatterns_dyo_SN', 'goog.i18n.DateTimePatterns_dz', 'goog.i18n.DateTimePatterns_dz_BT', 'goog.i18n.DateTimePatterns_ebu', 'goog.i18n.DateTimePatterns_ebu_KE', 'goog.i18n.DateTimePatterns_ee', 'goog.i18n.DateTimePatterns_ee_GH', 'goog.i18n.DateTimePatterns_ee_TG', 'goog.i18n.DateTimePatterns_el_CY', 'goog.i18n.DateTimePatterns_el_GR', 'goog.i18n.DateTimePatterns_en_001', 'goog.i18n.DateTimePatterns_en_150', 'goog.i18n.DateTimePatterns_en_AG', 'goog.i18n.DateTimePatterns_en_AI', 'goog.i18n.DateTimePatterns_en_AS', 'goog.i18n.DateTimePatterns_en_BB', 'goog.i18n.DateTimePatterns_en_BE', 'goog.i18n.DateTimePatterns_en_BM', 'goog.i18n.DateTimePatterns_en_BS', 'goog.i18n.DateTimePatterns_en_BW', 'goog.i18n.DateTimePatterns_en_BZ', 'goog.i18n.DateTimePatterns_en_CA', 'goog.i18n.DateTimePatterns_en_CC', 'goog.i18n.DateTimePatterns_en_CK', 'goog.i18n.DateTimePatterns_en_CM', 'goog.i18n.DateTimePatterns_en_CX', 'goog.i18n.DateTimePatterns_en_DG', 'goog.i18n.DateTimePatterns_en_DM', 'goog.i18n.DateTimePatterns_en_ER', 'goog.i18n.DateTimePatterns_en_FJ', 'goog.i18n.DateTimePatterns_en_FK', 'goog.i18n.DateTimePatterns_en_FM', 'goog.i18n.DateTimePatterns_en_GD', 'goog.i18n.DateTimePatterns_en_GG', 'goog.i18n.DateTimePatterns_en_GH', 'goog.i18n.DateTimePatterns_en_GI', 'goog.i18n.DateTimePatterns_en_GM', 'goog.i18n.DateTimePatterns_en_GU', 'goog.i18n.DateTimePatterns_en_GY', 'goog.i18n.DateTimePatterns_en_HK', 'goog.i18n.DateTimePatterns_en_IM', 'goog.i18n.DateTimePatterns_en_IO', 'goog.i18n.DateTimePatterns_en_JE', 'goog.i18n.DateTimePatterns_en_JM', 'goog.i18n.DateTimePatterns_en_KE', 'goog.i18n.DateTimePatterns_en_KI', 'goog.i18n.DateTimePatterns_en_KN', 'goog.i18n.DateTimePatterns_en_KY', 'goog.i18n.DateTimePatterns_en_LC', 'goog.i18n.DateTimePatterns_en_LR', 'goog.i18n.DateTimePatterns_en_LS', 'goog.i18n.DateTimePatterns_en_MG', 'goog.i18n.DateTimePatterns_en_MH', 'goog.i18n.DateTimePatterns_en_MO', 'goog.i18n.DateTimePatterns_en_MP', 'goog.i18n.DateTimePatterns_en_MS', 'goog.i18n.DateTimePatterns_en_MT', 'goog.i18n.DateTimePatterns_en_MU', 'goog.i18n.DateTimePatterns_en_MW', 'goog.i18n.DateTimePatterns_en_MY', 'goog.i18n.DateTimePatterns_en_NA', 'goog.i18n.DateTimePatterns_en_NF', 'goog.i18n.DateTimePatterns_en_NG', 'goog.i18n.DateTimePatterns_en_NR', 'goog.i18n.DateTimePatterns_en_NU', 'goog.i18n.DateTimePatterns_en_NZ', 'goog.i18n.DateTimePatterns_en_PG', 'goog.i18n.DateTimePatterns_en_PH', 'goog.i18n.DateTimePatterns_en_PK', 'goog.i18n.DateTimePatterns_en_PN', 'goog.i18n.DateTimePatterns_en_PR', 'goog.i18n.DateTimePatterns_en_PW', 'goog.i18n.DateTimePatterns_en_RW', 'goog.i18n.DateTimePatterns_en_SB', 'goog.i18n.DateTimePatterns_en_SC', 'goog.i18n.DateTimePatterns_en_SD', 'goog.i18n.DateTimePatterns_en_SH', 'goog.i18n.DateTimePatterns_en_SL', 'goog.i18n.DateTimePatterns_en_SS', 'goog.i18n.DateTimePatterns_en_SX', 'goog.i18n.DateTimePatterns_en_SZ', 'goog.i18n.DateTimePatterns_en_TC', 'goog.i18n.DateTimePatterns_en_TK', 'goog.i18n.DateTimePatterns_en_TO', 'goog.i18n.DateTimePatterns_en_TT', 'goog.i18n.DateTimePatterns_en_TV', 'goog.i18n.DateTimePatterns_en_TZ', 'goog.i18n.DateTimePatterns_en_UG', 'goog.i18n.DateTimePatterns_en_UM', 'goog.i18n.DateTimePatterns_en_US_POSIX', 'goog.i18n.DateTimePatterns_en_VC', 'goog.i18n.DateTimePatterns_en_VG', 'goog.i18n.DateTimePatterns_en_VI', 'goog.i18n.DateTimePatterns_en_VU', 'goog.i18n.DateTimePatterns_en_WS', 'goog.i18n.DateTimePatterns_en_ZM', 'goog.i18n.DateTimePatterns_en_ZW', 'goog.i18n.DateTimePatterns_eo', 'goog.i18n.DateTimePatterns_es_AR', 'goog.i18n.DateTimePatterns_es_BO', 'goog.i18n.DateTimePatterns_es_CL', 'goog.i18n.DateTimePatterns_es_CO', 'goog.i18n.DateTimePatterns_es_CR', 'goog.i18n.DateTimePatterns_es_CU', 'goog.i18n.DateTimePatterns_es_DO', 'goog.i18n.DateTimePatterns_es_EA', 'goog.i18n.DateTimePatterns_es_EC', 'goog.i18n.DateTimePatterns_es_GQ', 'goog.i18n.DateTimePatterns_es_GT', 'goog.i18n.DateTimePatterns_es_HN', 'goog.i18n.DateTimePatterns_es_IC', 'goog.i18n.DateTimePatterns_es_MX', 'goog.i18n.DateTimePatterns_es_NI', 'goog.i18n.DateTimePatterns_es_PA', 'goog.i18n.DateTimePatterns_es_PE', 'goog.i18n.DateTimePatterns_es_PH', 'goog.i18n.DateTimePatterns_es_PR', 'goog.i18n.DateTimePatterns_es_PY', 'goog.i18n.DateTimePatterns_es_SV', 'goog.i18n.DateTimePatterns_es_US', 'goog.i18n.DateTimePatterns_es_UY', 'goog.i18n.DateTimePatterns_es_VE', 'goog.i18n.DateTimePatterns_et_EE', 'goog.i18n.DateTimePatterns_eu_ES', 'goog.i18n.DateTimePatterns_ewo', 'goog.i18n.DateTimePatterns_ewo_CM', 'goog.i18n.DateTimePatterns_fa_AF', 'goog.i18n.DateTimePatterns_fa_IR', 'goog.i18n.DateTimePatterns_ff', 'goog.i18n.DateTimePatterns_ff_CM', 'goog.i18n.DateTimePatterns_ff_GN', 'goog.i18n.DateTimePatterns_ff_MR', 'goog.i18n.DateTimePatterns_ff_SN', 'goog.i18n.DateTimePatterns_fi_FI', 'goog.i18n.DateTimePatterns_fil_PH', 'goog.i18n.DateTimePatterns_fo', 'goog.i18n.DateTimePatterns_fo_FO', 'goog.i18n.DateTimePatterns_fr_BE', 'goog.i18n.DateTimePatterns_fr_BF', 'goog.i18n.DateTimePatterns_fr_BI', 'goog.i18n.DateTimePatterns_fr_BJ', 'goog.i18n.DateTimePatterns_fr_BL', 'goog.i18n.DateTimePatterns_fr_CD', 'goog.i18n.DateTimePatterns_fr_CF', 'goog.i18n.DateTimePatterns_fr_CG', 'goog.i18n.DateTimePatterns_fr_CH', 'goog.i18n.DateTimePatterns_fr_CI', 'goog.i18n.DateTimePatterns_fr_CM', 'goog.i18n.DateTimePatterns_fr_DJ', 'goog.i18n.DateTimePatterns_fr_DZ', 'goog.i18n.DateTimePatterns_fr_FR', 'goog.i18n.DateTimePatterns_fr_GA', 'goog.i18n.DateTimePatterns_fr_GF', 'goog.i18n.DateTimePatterns_fr_GN', 'goog.i18n.DateTimePatterns_fr_GP', 'goog.i18n.DateTimePatterns_fr_GQ', 'goog.i18n.DateTimePatterns_fr_HT', 'goog.i18n.DateTimePatterns_fr_KM', 'goog.i18n.DateTimePatterns_fr_LU', 'goog.i18n.DateTimePatterns_fr_MA', 'goog.i18n.DateTimePatterns_fr_MC', 'goog.i18n.DateTimePatterns_fr_MF', 'goog.i18n.DateTimePatterns_fr_MG', 'goog.i18n.DateTimePatterns_fr_ML', 'goog.i18n.DateTimePatterns_fr_MQ', 'goog.i18n.DateTimePatterns_fr_MR', 'goog.i18n.DateTimePatterns_fr_MU', 'goog.i18n.DateTimePatterns_fr_NC', 'goog.i18n.DateTimePatterns_fr_NE', 'goog.i18n.DateTimePatterns_fr_PF', 'goog.i18n.DateTimePatterns_fr_PM', 'goog.i18n.DateTimePatterns_fr_RE', 'goog.i18n.DateTimePatterns_fr_RW', 'goog.i18n.DateTimePatterns_fr_SC', 'goog.i18n.DateTimePatterns_fr_SN', 'goog.i18n.DateTimePatterns_fr_SY', 'goog.i18n.DateTimePatterns_fr_TD', 'goog.i18n.DateTimePatterns_fr_TG', 'goog.i18n.DateTimePatterns_fr_TN', 'goog.i18n.DateTimePatterns_fr_VU', 'goog.i18n.DateTimePatterns_fr_WF', 'goog.i18n.DateTimePatterns_fr_YT', 'goog.i18n.DateTimePatterns_fur', 'goog.i18n.DateTimePatterns_fur_IT', 'goog.i18n.DateTimePatterns_fy', 'goog.i18n.DateTimePatterns_fy_NL', 'goog.i18n.DateTimePatterns_ga_IE', 'goog.i18n.DateTimePatterns_gd', 'goog.i18n.DateTimePatterns_gd_GB', 'goog.i18n.DateTimePatterns_gl_ES', 'goog.i18n.DateTimePatterns_gsw_CH', 'goog.i18n.DateTimePatterns_gsw_FR', 'goog.i18n.DateTimePatterns_gsw_LI', 'goog.i18n.DateTimePatterns_gu_IN', 'goog.i18n.DateTimePatterns_guz', 'goog.i18n.DateTimePatterns_guz_KE', 'goog.i18n.DateTimePatterns_gv', 'goog.i18n.DateTimePatterns_gv_IM', 'goog.i18n.DateTimePatterns_ha', 'goog.i18n.DateTimePatterns_ha_Latn', 'goog.i18n.DateTimePatterns_ha_Latn_GH', 'goog.i18n.DateTimePatterns_ha_Latn_NE', 'goog.i18n.DateTimePatterns_ha_Latn_NG', 'goog.i18n.DateTimePatterns_haw_US', 'goog.i18n.DateTimePatterns_he_IL', 'goog.i18n.DateTimePatterns_hi_IN', 'goog.i18n.DateTimePatterns_hr_BA', 'goog.i18n.DateTimePatterns_hr_HR', 'goog.i18n.DateTimePatterns_hsb', 'goog.i18n.DateTimePatterns_hsb_DE', 'goog.i18n.DateTimePatterns_hu_HU', 'goog.i18n.DateTimePatterns_hy_AM', 'goog.i18n.DateTimePatterns_id_ID', 'goog.i18n.DateTimePatterns_ig', 'goog.i18n.DateTimePatterns_ig_NG', 'goog.i18n.DateTimePatterns_ii', 'goog.i18n.DateTimePatterns_ii_CN', 'goog.i18n.DateTimePatterns_is_IS', 'goog.i18n.DateTimePatterns_it_CH', 'goog.i18n.DateTimePatterns_it_IT', 'goog.i18n.DateTimePatterns_it_SM', 'goog.i18n.DateTimePatterns_ja_JP', 'goog.i18n.DateTimePatterns_jgo', 'goog.i18n.DateTimePatterns_jgo_CM', 'goog.i18n.DateTimePatterns_jmc', 'goog.i18n.DateTimePatterns_jmc_TZ', 'goog.i18n.DateTimePatterns_ka_GE', 'goog.i18n.DateTimePatterns_kab', 'goog.i18n.DateTimePatterns_kab_DZ', 'goog.i18n.DateTimePatterns_kam', 'goog.i18n.DateTimePatterns_kam_KE', 'goog.i18n.DateTimePatterns_kde', 'goog.i18n.DateTimePatterns_kde_TZ', 'goog.i18n.DateTimePatterns_kea', 'goog.i18n.DateTimePatterns_kea_CV', 'goog.i18n.DateTimePatterns_khq', 'goog.i18n.DateTimePatterns_khq_ML', 'goog.i18n.DateTimePatterns_ki', 'goog.i18n.DateTimePatterns_ki_KE', 'goog.i18n.DateTimePatterns_kk_Cyrl', 'goog.i18n.DateTimePatterns_kk_Cyrl_KZ', 'goog.i18n.DateTimePatterns_kkj', 'goog.i18n.DateTimePatterns_kkj_CM', 'goog.i18n.DateTimePatterns_kl', 'goog.i18n.DateTimePatterns_kl_GL', 'goog.i18n.DateTimePatterns_kln', 'goog.i18n.DateTimePatterns_kln_KE', 'goog.i18n.DateTimePatterns_km_KH', 'goog.i18n.DateTimePatterns_kn_IN', 'goog.i18n.DateTimePatterns_ko_KP', 'goog.i18n.DateTimePatterns_ko_KR', 'goog.i18n.DateTimePatterns_kok', 'goog.i18n.DateTimePatterns_kok_IN', 'goog.i18n.DateTimePatterns_ks', 'goog.i18n.DateTimePatterns_ks_Arab', 'goog.i18n.DateTimePatterns_ks_Arab_IN', 'goog.i18n.DateTimePatterns_ksb', 'goog.i18n.DateTimePatterns_ksb_TZ', 'goog.i18n.DateTimePatterns_ksf', 'goog.i18n.DateTimePatterns_ksf_CM', 'goog.i18n.DateTimePatterns_ksh', 'goog.i18n.DateTimePatterns_ksh_DE', 'goog.i18n.DateTimePatterns_kw', 'goog.i18n.DateTimePatterns_kw_GB', 'goog.i18n.DateTimePatterns_ky_Cyrl', 'goog.i18n.DateTimePatterns_ky_Cyrl_KG', 'goog.i18n.DateTimePatterns_lag', 'goog.i18n.DateTimePatterns_lag_TZ', 'goog.i18n.DateTimePatterns_lb', 'goog.i18n.DateTimePatterns_lb_LU', 'goog.i18n.DateTimePatterns_lg', 'goog.i18n.DateTimePatterns_lg_UG', 'goog.i18n.DateTimePatterns_lkt', 'goog.i18n.DateTimePatterns_lkt_US', 'goog.i18n.DateTimePatterns_ln_AO', 'goog.i18n.DateTimePatterns_ln_CD', 'goog.i18n.DateTimePatterns_ln_CF', 'goog.i18n.DateTimePatterns_ln_CG', 'goog.i18n.DateTimePatterns_lo_LA', 'goog.i18n.DateTimePatterns_lt_LT', 'goog.i18n.DateTimePatterns_lu', 'goog.i18n.DateTimePatterns_lu_CD', 'goog.i18n.DateTimePatterns_luo', 'goog.i18n.DateTimePatterns_luo_KE', 'goog.i18n.DateTimePatterns_luy', 'goog.i18n.DateTimePatterns_luy_KE', 'goog.i18n.DateTimePatterns_lv_LV', 'goog.i18n.DateTimePatterns_mas', 'goog.i18n.DateTimePatterns_mas_KE', 'goog.i18n.DateTimePatterns_mas_TZ', 'goog.i18n.DateTimePatterns_mer', 'goog.i18n.DateTimePatterns_mer_KE', 'goog.i18n.DateTimePatterns_mfe', 'goog.i18n.DateTimePatterns_mfe_MU', 'goog.i18n.DateTimePatterns_mg', 'goog.i18n.DateTimePatterns_mg_MG', 'goog.i18n.DateTimePatterns_mgh', 'goog.i18n.DateTimePatterns_mgh_MZ', 'goog.i18n.DateTimePatterns_mgo', 'goog.i18n.DateTimePatterns_mgo_CM', 'goog.i18n.DateTimePatterns_mk_MK', 'goog.i18n.DateTimePatterns_ml_IN', 'goog.i18n.DateTimePatterns_mn_Cyrl', 'goog.i18n.DateTimePatterns_mn_Cyrl_MN', 'goog.i18n.DateTimePatterns_mr_IN', 'goog.i18n.DateTimePatterns_ms_Latn', 'goog.i18n.DateTimePatterns_ms_Latn_BN', 'goog.i18n.DateTimePatterns_ms_Latn_MY', 'goog.i18n.DateTimePatterns_ms_Latn_SG', 'goog.i18n.DateTimePatterns_mt_MT', 'goog.i18n.DateTimePatterns_mua', 'goog.i18n.DateTimePatterns_mua_CM', 'goog.i18n.DateTimePatterns_my_MM', 'goog.i18n.DateTimePatterns_naq', 'goog.i18n.DateTimePatterns_naq_NA', 'goog.i18n.DateTimePatterns_nb_NO', 'goog.i18n.DateTimePatterns_nb_SJ', 'goog.i18n.DateTimePatterns_nd', 'goog.i18n.DateTimePatterns_nd_ZW', 'goog.i18n.DateTimePatterns_ne_IN', 'goog.i18n.DateTimePatterns_ne_NP', 'goog.i18n.DateTimePatterns_nl_AW', 'goog.i18n.DateTimePatterns_nl_BE', 'goog.i18n.DateTimePatterns_nl_BQ', 'goog.i18n.DateTimePatterns_nl_CW', 'goog.i18n.DateTimePatterns_nl_NL', 'goog.i18n.DateTimePatterns_nl_SR', 'goog.i18n.DateTimePatterns_nl_SX', 'goog.i18n.DateTimePatterns_nmg', 'goog.i18n.DateTimePatterns_nmg_CM', 'goog.i18n.DateTimePatterns_nn', 'goog.i18n.DateTimePatterns_nn_NO', 'goog.i18n.DateTimePatterns_nnh', 'goog.i18n.DateTimePatterns_nnh_CM', 'goog.i18n.DateTimePatterns_nus', 'goog.i18n.DateTimePatterns_nus_SD', 'goog.i18n.DateTimePatterns_nyn', 'goog.i18n.DateTimePatterns_nyn_UG', 'goog.i18n.DateTimePatterns_om', 'goog.i18n.DateTimePatterns_om_ET', 'goog.i18n.DateTimePatterns_om_KE', 'goog.i18n.DateTimePatterns_or_IN', 'goog.i18n.DateTimePatterns_os', 'goog.i18n.DateTimePatterns_os_GE', 'goog.i18n.DateTimePatterns_os_RU', 'goog.i18n.DateTimePatterns_pa_Arab', 'goog.i18n.DateTimePatterns_pa_Arab_PK', 'goog.i18n.DateTimePatterns_pa_Guru', 'goog.i18n.DateTimePatterns_pa_Guru_IN', 'goog.i18n.DateTimePatterns_pl_PL', 'goog.i18n.DateTimePatterns_ps', 'goog.i18n.DateTimePatterns_ps_AF', 'goog.i18n.DateTimePatterns_pt_AO', 'goog.i18n.DateTimePatterns_pt_CV', 'goog.i18n.DateTimePatterns_pt_GW', 'goog.i18n.DateTimePatterns_pt_MO', 'goog.i18n.DateTimePatterns_pt_MZ', 'goog.i18n.DateTimePatterns_pt_ST', 'goog.i18n.DateTimePatterns_pt_TL', 'goog.i18n.DateTimePatterns_qu', 'goog.i18n.DateTimePatterns_qu_BO', 'goog.i18n.DateTimePatterns_qu_EC', 'goog.i18n.DateTimePatterns_qu_PE', 'goog.i18n.DateTimePatterns_rm', 'goog.i18n.DateTimePatterns_rm_CH', 'goog.i18n.DateTimePatterns_rn', 'goog.i18n.DateTimePatterns_rn_BI', 'goog.i18n.DateTimePatterns_ro_MD', 'goog.i18n.DateTimePatterns_ro_RO', 'goog.i18n.DateTimePatterns_rof', 'goog.i18n.DateTimePatterns_rof_TZ', 'goog.i18n.DateTimePatterns_ru_BY', 'goog.i18n.DateTimePatterns_ru_KG', 'goog.i18n.DateTimePatterns_ru_KZ', 'goog.i18n.DateTimePatterns_ru_MD', 'goog.i18n.DateTimePatterns_ru_RU', 'goog.i18n.DateTimePatterns_ru_UA', 'goog.i18n.DateTimePatterns_rw', 'goog.i18n.DateTimePatterns_rw_RW', 'goog.i18n.DateTimePatterns_rwk', 'goog.i18n.DateTimePatterns_rwk_TZ', 'goog.i18n.DateTimePatterns_sah', 'goog.i18n.DateTimePatterns_sah_RU', 'goog.i18n.DateTimePatterns_saq', 'goog.i18n.DateTimePatterns_saq_KE', 'goog.i18n.DateTimePatterns_sbp', 'goog.i18n.DateTimePatterns_sbp_TZ', 'goog.i18n.DateTimePatterns_se', 'goog.i18n.DateTimePatterns_se_FI', 'goog.i18n.DateTimePatterns_se_NO', 'goog.i18n.DateTimePatterns_se_SE', 'goog.i18n.DateTimePatterns_seh', 'goog.i18n.DateTimePatterns_seh_MZ', 'goog.i18n.DateTimePatterns_ses', 'goog.i18n.DateTimePatterns_ses_ML', 'goog.i18n.DateTimePatterns_sg', 'goog.i18n.DateTimePatterns_sg_CF', 'goog.i18n.DateTimePatterns_shi', 'goog.i18n.DateTimePatterns_shi_Latn', 'goog.i18n.DateTimePatterns_shi_Latn_MA', 'goog.i18n.DateTimePatterns_shi_Tfng', 'goog.i18n.DateTimePatterns_shi_Tfng_MA', 'goog.i18n.DateTimePatterns_si_LK', 'goog.i18n.DateTimePatterns_sk_SK', 'goog.i18n.DateTimePatterns_sl_SI', 'goog.i18n.DateTimePatterns_smn', 'goog.i18n.DateTimePatterns_smn_FI', 'goog.i18n.DateTimePatterns_sn', 'goog.i18n.DateTimePatterns_sn_ZW', 'goog.i18n.DateTimePatterns_so', 'goog.i18n.DateTimePatterns_so_DJ', 'goog.i18n.DateTimePatterns_so_ET', 'goog.i18n.DateTimePatterns_so_KE', 'goog.i18n.DateTimePatterns_so_SO', 'goog.i18n.DateTimePatterns_sq_AL', 'goog.i18n.DateTimePatterns_sq_MK', 'goog.i18n.DateTimePatterns_sq_XK', 'goog.i18n.DateTimePatterns_sr_Cyrl', 'goog.i18n.DateTimePatterns_sr_Cyrl_BA', 'goog.i18n.DateTimePatterns_sr_Cyrl_ME', 'goog.i18n.DateTimePatterns_sr_Cyrl_RS', 'goog.i18n.DateTimePatterns_sr_Cyrl_XK', 'goog.i18n.DateTimePatterns_sr_Latn', 'goog.i18n.DateTimePatterns_sr_Latn_BA', 'goog.i18n.DateTimePatterns_sr_Latn_ME', 'goog.i18n.DateTimePatterns_sr_Latn_RS', 'goog.i18n.DateTimePatterns_sr_Latn_XK', 'goog.i18n.DateTimePatterns_sv_AX', 'goog.i18n.DateTimePatterns_sv_FI', 'goog.i18n.DateTimePatterns_sv_SE', 'goog.i18n.DateTimePatterns_sw_KE', 'goog.i18n.DateTimePatterns_sw_TZ', 'goog.i18n.DateTimePatterns_sw_UG', 'goog.i18n.DateTimePatterns_swc', 'goog.i18n.DateTimePatterns_swc_CD', 'goog.i18n.DateTimePatterns_ta_IN', 'goog.i18n.DateTimePatterns_ta_LK', 'goog.i18n.DateTimePatterns_ta_MY', 'goog.i18n.DateTimePatterns_ta_SG', 'goog.i18n.DateTimePatterns_te_IN', 'goog.i18n.DateTimePatterns_teo', 'goog.i18n.DateTimePatterns_teo_KE', 'goog.i18n.DateTimePatterns_teo_UG', 'goog.i18n.DateTimePatterns_th_TH', 'goog.i18n.DateTimePatterns_ti', 'goog.i18n.DateTimePatterns_ti_ER', 'goog.i18n.DateTimePatterns_ti_ET', 'goog.i18n.DateTimePatterns_to', 'goog.i18n.DateTimePatterns_to_TO', 'goog.i18n.DateTimePatterns_tr_CY', 'goog.i18n.DateTimePatterns_tr_TR', 'goog.i18n.DateTimePatterns_twq', 'goog.i18n.DateTimePatterns_twq_NE', 'goog.i18n.DateTimePatterns_tzm', 'goog.i18n.DateTimePatterns_tzm_Latn', 'goog.i18n.DateTimePatterns_tzm_Latn_MA', 'goog.i18n.DateTimePatterns_ug', 'goog.i18n.DateTimePatterns_ug_Arab', 'goog.i18n.DateTimePatterns_ug_Arab_CN', 'goog.i18n.DateTimePatterns_uk_UA', 'goog.i18n.DateTimePatterns_ur_IN', 'goog.i18n.DateTimePatterns_ur_PK', 'goog.i18n.DateTimePatterns_uz_Arab', 'goog.i18n.DateTimePatterns_uz_Arab_AF', 'goog.i18n.DateTimePatterns_uz_Cyrl', 'goog.i18n.DateTimePatterns_uz_Cyrl_UZ', 'goog.i18n.DateTimePatterns_uz_Latn', 'goog.i18n.DateTimePatterns_uz_Latn_UZ', 'goog.i18n.DateTimePatterns_vai', 'goog.i18n.DateTimePatterns_vai_Latn', 'goog.i18n.DateTimePatterns_vai_Latn_LR', 'goog.i18n.DateTimePatterns_vai_Vaii', 'goog.i18n.DateTimePatterns_vai_Vaii_LR', 'goog.i18n.DateTimePatterns_vi_VN', 'goog.i18n.DateTimePatterns_vun', 'goog.i18n.DateTimePatterns_vun_TZ', 'goog.i18n.DateTimePatterns_wae', 'goog.i18n.DateTimePatterns_wae_CH', 'goog.i18n.DateTimePatterns_xog', 'goog.i18n.DateTimePatterns_xog_UG', 'goog.i18n.DateTimePatterns_yav', 'goog.i18n.DateTimePatterns_yav_CM', 'goog.i18n.DateTimePatterns_yi', 'goog.i18n.DateTimePatterns_yi_001', 'goog.i18n.DateTimePatterns_yo', 'goog.i18n.DateTimePatterns_yo_BJ', 'goog.i18n.DateTimePatterns_yo_NG', 'goog.i18n.DateTimePatterns_zgh', 'goog.i18n.DateTimePatterns_zgh_MA', 'goog.i18n.DateTimePatterns_zh_Hans', 'goog.i18n.DateTimePatterns_zh_Hans_CN', 'goog.i18n.DateTimePatterns_zh_Hans_HK', 'goog.i18n.DateTimePatterns_zh_Hans_MO', 'goog.i18n.DateTimePatterns_zh_Hans_SG', 'goog.i18n.DateTimePatterns_zh_Hant', 'goog.i18n.DateTimePatterns_zh_Hant_HK', 'goog.i18n.DateTimePatterns_zh_Hant_MO', 'goog.i18n.DateTimePatterns_zh_Hant_TW', 'goog.i18n.DateTimePatterns_zu_ZA'], ['goog.i18n.DateTimePatterns'], false); >+goog.addDependency('i18n/datetimesymbols.js', ['goog.i18n.DateTimeSymbols', 'goog.i18n.DateTimeSymbols_af', 'goog.i18n.DateTimeSymbols_am', 'goog.i18n.DateTimeSymbols_ar', 'goog.i18n.DateTimeSymbols_az', 'goog.i18n.DateTimeSymbols_bg', 'goog.i18n.DateTimeSymbols_bn', 'goog.i18n.DateTimeSymbols_br', 'goog.i18n.DateTimeSymbols_ca', 'goog.i18n.DateTimeSymbols_chr', 'goog.i18n.DateTimeSymbols_cs', 'goog.i18n.DateTimeSymbols_cy', 'goog.i18n.DateTimeSymbols_da', 'goog.i18n.DateTimeSymbols_de', 'goog.i18n.DateTimeSymbols_de_AT', 'goog.i18n.DateTimeSymbols_de_CH', 'goog.i18n.DateTimeSymbols_el', 'goog.i18n.DateTimeSymbols_en', 'goog.i18n.DateTimeSymbols_en_AU', 'goog.i18n.DateTimeSymbols_en_GB', 'goog.i18n.DateTimeSymbols_en_IE', 'goog.i18n.DateTimeSymbols_en_IN', 'goog.i18n.DateTimeSymbols_en_ISO', 'goog.i18n.DateTimeSymbols_en_SG', 'goog.i18n.DateTimeSymbols_en_US', 'goog.i18n.DateTimeSymbols_en_ZA', 'goog.i18n.DateTimeSymbols_es', 'goog.i18n.DateTimeSymbols_es_419', 'goog.i18n.DateTimeSymbols_es_ES', 'goog.i18n.DateTimeSymbols_et', 'goog.i18n.DateTimeSymbols_eu', 'goog.i18n.DateTimeSymbols_fa', 'goog.i18n.DateTimeSymbols_fi', 'goog.i18n.DateTimeSymbols_fil', 'goog.i18n.DateTimeSymbols_fr', 'goog.i18n.DateTimeSymbols_fr_CA', 'goog.i18n.DateTimeSymbols_ga', 'goog.i18n.DateTimeSymbols_gl', 'goog.i18n.DateTimeSymbols_gsw', 'goog.i18n.DateTimeSymbols_gu', 'goog.i18n.DateTimeSymbols_haw', 'goog.i18n.DateTimeSymbols_he', 'goog.i18n.DateTimeSymbols_hi', 'goog.i18n.DateTimeSymbols_hr', 'goog.i18n.DateTimeSymbols_hu', 'goog.i18n.DateTimeSymbols_hy', 'goog.i18n.DateTimeSymbols_id', 'goog.i18n.DateTimeSymbols_in', 'goog.i18n.DateTimeSymbols_is', 'goog.i18n.DateTimeSymbols_it', 'goog.i18n.DateTimeSymbols_iw', 'goog.i18n.DateTimeSymbols_ja', 'goog.i18n.DateTimeSymbols_ka', 'goog.i18n.DateTimeSymbols_kk', 'goog.i18n.DateTimeSymbols_km', 'goog.i18n.DateTimeSymbols_kn', 'goog.i18n.DateTimeSymbols_ko', 'goog.i18n.DateTimeSymbols_ky', 'goog.i18n.DateTimeSymbols_ln', 'goog.i18n.DateTimeSymbols_lo', 'goog.i18n.DateTimeSymbols_lt', 'goog.i18n.DateTimeSymbols_lv', 'goog.i18n.DateTimeSymbols_mk', 'goog.i18n.DateTimeSymbols_ml', 'goog.i18n.DateTimeSymbols_mn', 'goog.i18n.DateTimeSymbols_mr', 'goog.i18n.DateTimeSymbols_ms', 'goog.i18n.DateTimeSymbols_mt', 'goog.i18n.DateTimeSymbols_my', 'goog.i18n.DateTimeSymbols_nb', 'goog.i18n.DateTimeSymbols_ne', 'goog.i18n.DateTimeSymbols_nl', 'goog.i18n.DateTimeSymbols_no', 'goog.i18n.DateTimeSymbols_no_NO', 'goog.i18n.DateTimeSymbols_or', 'goog.i18n.DateTimeSymbols_pa', 'goog.i18n.DateTimeSymbols_pl', 'goog.i18n.DateTimeSymbols_pt', 'goog.i18n.DateTimeSymbols_pt_BR', 'goog.i18n.DateTimeSymbols_pt_PT', 'goog.i18n.DateTimeSymbols_ro', 'goog.i18n.DateTimeSymbols_ru', 'goog.i18n.DateTimeSymbols_si', 'goog.i18n.DateTimeSymbols_sk', 'goog.i18n.DateTimeSymbols_sl', 'goog.i18n.DateTimeSymbols_sq', 'goog.i18n.DateTimeSymbols_sr', 'goog.i18n.DateTimeSymbols_sv', 'goog.i18n.DateTimeSymbols_sw', 'goog.i18n.DateTimeSymbols_ta', 'goog.i18n.DateTimeSymbols_te', 'goog.i18n.DateTimeSymbols_th', 'goog.i18n.DateTimeSymbols_tl', 'goog.i18n.DateTimeSymbols_tr', 'goog.i18n.DateTimeSymbols_uk', 'goog.i18n.DateTimeSymbols_ur', 'goog.i18n.DateTimeSymbols_uz', 'goog.i18n.DateTimeSymbols_vi', 'goog.i18n.DateTimeSymbols_zh', 'goog.i18n.DateTimeSymbols_zh_CN', 'goog.i18n.DateTimeSymbols_zh_HK', 'goog.i18n.DateTimeSymbols_zh_TW', 'goog.i18n.DateTimeSymbols_zu'], [], false); >+goog.addDependency('i18n/datetimesymbolsext.js', ['goog.i18n.DateTimeSymbolsExt', 'goog.i18n.DateTimeSymbols_aa', 'goog.i18n.DateTimeSymbols_aa_DJ', 'goog.i18n.DateTimeSymbols_aa_ER', 'goog.i18n.DateTimeSymbols_aa_ET', 'goog.i18n.DateTimeSymbols_af_NA', 'goog.i18n.DateTimeSymbols_af_ZA', 'goog.i18n.DateTimeSymbols_agq', 'goog.i18n.DateTimeSymbols_agq_CM', 'goog.i18n.DateTimeSymbols_ak', 'goog.i18n.DateTimeSymbols_ak_GH', 'goog.i18n.DateTimeSymbols_am_ET', 'goog.i18n.DateTimeSymbols_ar_001', 'goog.i18n.DateTimeSymbols_ar_AE', 'goog.i18n.DateTimeSymbols_ar_BH', 'goog.i18n.DateTimeSymbols_ar_DJ', 'goog.i18n.DateTimeSymbols_ar_DZ', 'goog.i18n.DateTimeSymbols_ar_EG', 'goog.i18n.DateTimeSymbols_ar_EH', 'goog.i18n.DateTimeSymbols_ar_ER', 'goog.i18n.DateTimeSymbols_ar_IL', 'goog.i18n.DateTimeSymbols_ar_IQ', 'goog.i18n.DateTimeSymbols_ar_JO', 'goog.i18n.DateTimeSymbols_ar_KM', 'goog.i18n.DateTimeSymbols_ar_KW', 'goog.i18n.DateTimeSymbols_ar_LB', 'goog.i18n.DateTimeSymbols_ar_LY', 'goog.i18n.DateTimeSymbols_ar_MA', 'goog.i18n.DateTimeSymbols_ar_MR', 'goog.i18n.DateTimeSymbols_ar_OM', 'goog.i18n.DateTimeSymbols_ar_PS', 'goog.i18n.DateTimeSymbols_ar_QA', 'goog.i18n.DateTimeSymbols_ar_SA', 'goog.i18n.DateTimeSymbols_ar_SD', 'goog.i18n.DateTimeSymbols_ar_SO', 'goog.i18n.DateTimeSymbols_ar_SS', 'goog.i18n.DateTimeSymbols_ar_SY', 'goog.i18n.DateTimeSymbols_ar_TD', 'goog.i18n.DateTimeSymbols_ar_TN', 'goog.i18n.DateTimeSymbols_ar_YE', 'goog.i18n.DateTimeSymbols_as', 'goog.i18n.DateTimeSymbols_as_IN', 'goog.i18n.DateTimeSymbols_asa', 'goog.i18n.DateTimeSymbols_asa_TZ', 'goog.i18n.DateTimeSymbols_ast', 'goog.i18n.DateTimeSymbols_ast_ES', 'goog.i18n.DateTimeSymbols_az_Cyrl', 'goog.i18n.DateTimeSymbols_az_Cyrl_AZ', 'goog.i18n.DateTimeSymbols_az_Latn', 'goog.i18n.DateTimeSymbols_az_Latn_AZ', 'goog.i18n.DateTimeSymbols_bas', 'goog.i18n.DateTimeSymbols_bas_CM', 'goog.i18n.DateTimeSymbols_be', 'goog.i18n.DateTimeSymbols_be_BY', 'goog.i18n.DateTimeSymbols_bem', 'goog.i18n.DateTimeSymbols_bem_ZM', 'goog.i18n.DateTimeSymbols_bez', 'goog.i18n.DateTimeSymbols_bez_TZ', 'goog.i18n.DateTimeSymbols_bg_BG', 'goog.i18n.DateTimeSymbols_bm', 'goog.i18n.DateTimeSymbols_bm_Latn', 'goog.i18n.DateTimeSymbols_bm_Latn_ML', 'goog.i18n.DateTimeSymbols_bn_BD', 'goog.i18n.DateTimeSymbols_bn_IN', 'goog.i18n.DateTimeSymbols_bo', 'goog.i18n.DateTimeSymbols_bo_CN', 'goog.i18n.DateTimeSymbols_bo_IN', 'goog.i18n.DateTimeSymbols_br_FR', 'goog.i18n.DateTimeSymbols_brx', 'goog.i18n.DateTimeSymbols_brx_IN', 'goog.i18n.DateTimeSymbols_bs', 'goog.i18n.DateTimeSymbols_bs_Cyrl', 'goog.i18n.DateTimeSymbols_bs_Cyrl_BA', 'goog.i18n.DateTimeSymbols_bs_Latn', 'goog.i18n.DateTimeSymbols_bs_Latn_BA', 'goog.i18n.DateTimeSymbols_ca_AD', 'goog.i18n.DateTimeSymbols_ca_ES', 'goog.i18n.DateTimeSymbols_ca_ES_VALENCIA', 'goog.i18n.DateTimeSymbols_ca_FR', 'goog.i18n.DateTimeSymbols_ca_IT', 'goog.i18n.DateTimeSymbols_cgg', 'goog.i18n.DateTimeSymbols_cgg_UG', 'goog.i18n.DateTimeSymbols_chr_US', 'goog.i18n.DateTimeSymbols_ckb', 'goog.i18n.DateTimeSymbols_ckb_Arab', 'goog.i18n.DateTimeSymbols_ckb_Arab_IQ', 'goog.i18n.DateTimeSymbols_ckb_Arab_IR', 'goog.i18n.DateTimeSymbols_ckb_IQ', 'goog.i18n.DateTimeSymbols_ckb_IR', 'goog.i18n.DateTimeSymbols_ckb_Latn', 'goog.i18n.DateTimeSymbols_ckb_Latn_IQ', 'goog.i18n.DateTimeSymbols_cs_CZ', 'goog.i18n.DateTimeSymbols_cy_GB', 'goog.i18n.DateTimeSymbols_da_DK', 'goog.i18n.DateTimeSymbols_da_GL', 'goog.i18n.DateTimeSymbols_dav', 'goog.i18n.DateTimeSymbols_dav_KE', 'goog.i18n.DateTimeSymbols_de_BE', 'goog.i18n.DateTimeSymbols_de_DE', 'goog.i18n.DateTimeSymbols_de_LI', 'goog.i18n.DateTimeSymbols_de_LU', 'goog.i18n.DateTimeSymbols_dje', 'goog.i18n.DateTimeSymbols_dje_NE', 'goog.i18n.DateTimeSymbols_dsb', 'goog.i18n.DateTimeSymbols_dsb_DE', 'goog.i18n.DateTimeSymbols_dua', 'goog.i18n.DateTimeSymbols_dua_CM', 'goog.i18n.DateTimeSymbols_dyo', 'goog.i18n.DateTimeSymbols_dyo_SN', 'goog.i18n.DateTimeSymbols_dz', 'goog.i18n.DateTimeSymbols_dz_BT', 'goog.i18n.DateTimeSymbols_ebu', 'goog.i18n.DateTimeSymbols_ebu_KE', 'goog.i18n.DateTimeSymbols_ee', 'goog.i18n.DateTimeSymbols_ee_GH', 'goog.i18n.DateTimeSymbols_ee_TG', 'goog.i18n.DateTimeSymbols_el_CY', 'goog.i18n.DateTimeSymbols_el_GR', 'goog.i18n.DateTimeSymbols_en_001', 'goog.i18n.DateTimeSymbols_en_150', 'goog.i18n.DateTimeSymbols_en_AG', 'goog.i18n.DateTimeSymbols_en_AI', 'goog.i18n.DateTimeSymbols_en_AS', 'goog.i18n.DateTimeSymbols_en_BB', 'goog.i18n.DateTimeSymbols_en_BE', 'goog.i18n.DateTimeSymbols_en_BM', 'goog.i18n.DateTimeSymbols_en_BS', 'goog.i18n.DateTimeSymbols_en_BW', 'goog.i18n.DateTimeSymbols_en_BZ', 'goog.i18n.DateTimeSymbols_en_CA', 'goog.i18n.DateTimeSymbols_en_CC', 'goog.i18n.DateTimeSymbols_en_CK', 'goog.i18n.DateTimeSymbols_en_CM', 'goog.i18n.DateTimeSymbols_en_CX', 'goog.i18n.DateTimeSymbols_en_DG', 'goog.i18n.DateTimeSymbols_en_DM', 'goog.i18n.DateTimeSymbols_en_ER', 'goog.i18n.DateTimeSymbols_en_FJ', 'goog.i18n.DateTimeSymbols_en_FK', 'goog.i18n.DateTimeSymbols_en_FM', 'goog.i18n.DateTimeSymbols_en_GD', 'goog.i18n.DateTimeSymbols_en_GG', 'goog.i18n.DateTimeSymbols_en_GH', 'goog.i18n.DateTimeSymbols_en_GI', 'goog.i18n.DateTimeSymbols_en_GM', 'goog.i18n.DateTimeSymbols_en_GU', 'goog.i18n.DateTimeSymbols_en_GY', 'goog.i18n.DateTimeSymbols_en_HK', 'goog.i18n.DateTimeSymbols_en_IM', 'goog.i18n.DateTimeSymbols_en_IO', 'goog.i18n.DateTimeSymbols_en_JE', 'goog.i18n.DateTimeSymbols_en_JM', 'goog.i18n.DateTimeSymbols_en_KE', 'goog.i18n.DateTimeSymbols_en_KI', 'goog.i18n.DateTimeSymbols_en_KN', 'goog.i18n.DateTimeSymbols_en_KY', 'goog.i18n.DateTimeSymbols_en_LC', 'goog.i18n.DateTimeSymbols_en_LR', 'goog.i18n.DateTimeSymbols_en_LS', 'goog.i18n.DateTimeSymbols_en_MG', 'goog.i18n.DateTimeSymbols_en_MH', 'goog.i18n.DateTimeSymbols_en_MO', 'goog.i18n.DateTimeSymbols_en_MP', 'goog.i18n.DateTimeSymbols_en_MS', 'goog.i18n.DateTimeSymbols_en_MT', 'goog.i18n.DateTimeSymbols_en_MU', 'goog.i18n.DateTimeSymbols_en_MW', 'goog.i18n.DateTimeSymbols_en_MY', 'goog.i18n.DateTimeSymbols_en_NA', 'goog.i18n.DateTimeSymbols_en_NF', 'goog.i18n.DateTimeSymbols_en_NG', 'goog.i18n.DateTimeSymbols_en_NR', 'goog.i18n.DateTimeSymbols_en_NU', 'goog.i18n.DateTimeSymbols_en_NZ', 'goog.i18n.DateTimeSymbols_en_PG', 'goog.i18n.DateTimeSymbols_en_PH', 'goog.i18n.DateTimeSymbols_en_PK', 'goog.i18n.DateTimeSymbols_en_PN', 'goog.i18n.DateTimeSymbols_en_PR', 'goog.i18n.DateTimeSymbols_en_PW', 'goog.i18n.DateTimeSymbols_en_RW', 'goog.i18n.DateTimeSymbols_en_SB', 'goog.i18n.DateTimeSymbols_en_SC', 'goog.i18n.DateTimeSymbols_en_SD', 'goog.i18n.DateTimeSymbols_en_SH', 'goog.i18n.DateTimeSymbols_en_SL', 'goog.i18n.DateTimeSymbols_en_SS', 'goog.i18n.DateTimeSymbols_en_SX', 'goog.i18n.DateTimeSymbols_en_SZ', 'goog.i18n.DateTimeSymbols_en_TC', 'goog.i18n.DateTimeSymbols_en_TK', 'goog.i18n.DateTimeSymbols_en_TO', 'goog.i18n.DateTimeSymbols_en_TT', 'goog.i18n.DateTimeSymbols_en_TV', 'goog.i18n.DateTimeSymbols_en_TZ', 'goog.i18n.DateTimeSymbols_en_UG', 'goog.i18n.DateTimeSymbols_en_UM', 'goog.i18n.DateTimeSymbols_en_VC', 'goog.i18n.DateTimeSymbols_en_VG', 'goog.i18n.DateTimeSymbols_en_VI', 'goog.i18n.DateTimeSymbols_en_VU', 'goog.i18n.DateTimeSymbols_en_WS', 'goog.i18n.DateTimeSymbols_en_ZM', 'goog.i18n.DateTimeSymbols_en_ZW', 'goog.i18n.DateTimeSymbols_eo', 'goog.i18n.DateTimeSymbols_eo_001', 'goog.i18n.DateTimeSymbols_es_AR', 'goog.i18n.DateTimeSymbols_es_BO', 'goog.i18n.DateTimeSymbols_es_CL', 'goog.i18n.DateTimeSymbols_es_CO', 'goog.i18n.DateTimeSymbols_es_CR', 'goog.i18n.DateTimeSymbols_es_CU', 'goog.i18n.DateTimeSymbols_es_DO', 'goog.i18n.DateTimeSymbols_es_EA', 'goog.i18n.DateTimeSymbols_es_EC', 'goog.i18n.DateTimeSymbols_es_GQ', 'goog.i18n.DateTimeSymbols_es_GT', 'goog.i18n.DateTimeSymbols_es_HN', 'goog.i18n.DateTimeSymbols_es_IC', 'goog.i18n.DateTimeSymbols_es_MX', 'goog.i18n.DateTimeSymbols_es_NI', 'goog.i18n.DateTimeSymbols_es_PA', 'goog.i18n.DateTimeSymbols_es_PE', 'goog.i18n.DateTimeSymbols_es_PH', 'goog.i18n.DateTimeSymbols_es_PR', 'goog.i18n.DateTimeSymbols_es_PY', 'goog.i18n.DateTimeSymbols_es_SV', 'goog.i18n.DateTimeSymbols_es_US', 'goog.i18n.DateTimeSymbols_es_UY', 'goog.i18n.DateTimeSymbols_es_VE', 'goog.i18n.DateTimeSymbols_et_EE', 'goog.i18n.DateTimeSymbols_eu_ES', 'goog.i18n.DateTimeSymbols_ewo', 'goog.i18n.DateTimeSymbols_ewo_CM', 'goog.i18n.DateTimeSymbols_fa_AF', 'goog.i18n.DateTimeSymbols_fa_IR', 'goog.i18n.DateTimeSymbols_ff', 'goog.i18n.DateTimeSymbols_ff_CM', 'goog.i18n.DateTimeSymbols_ff_GN', 'goog.i18n.DateTimeSymbols_ff_MR', 'goog.i18n.DateTimeSymbols_ff_SN', 'goog.i18n.DateTimeSymbols_fi_FI', 'goog.i18n.DateTimeSymbols_fil_PH', 'goog.i18n.DateTimeSymbols_fo', 'goog.i18n.DateTimeSymbols_fo_FO', 'goog.i18n.DateTimeSymbols_fr_BE', 'goog.i18n.DateTimeSymbols_fr_BF', 'goog.i18n.DateTimeSymbols_fr_BI', 'goog.i18n.DateTimeSymbols_fr_BJ', 'goog.i18n.DateTimeSymbols_fr_BL', 'goog.i18n.DateTimeSymbols_fr_CD', 'goog.i18n.DateTimeSymbols_fr_CF', 'goog.i18n.DateTimeSymbols_fr_CG', 'goog.i18n.DateTimeSymbols_fr_CH', 'goog.i18n.DateTimeSymbols_fr_CI', 'goog.i18n.DateTimeSymbols_fr_CM', 'goog.i18n.DateTimeSymbols_fr_DJ', 'goog.i18n.DateTimeSymbols_fr_DZ', 'goog.i18n.DateTimeSymbols_fr_FR', 'goog.i18n.DateTimeSymbols_fr_GA', 'goog.i18n.DateTimeSymbols_fr_GF', 'goog.i18n.DateTimeSymbols_fr_GN', 'goog.i18n.DateTimeSymbols_fr_GP', 'goog.i18n.DateTimeSymbols_fr_GQ', 'goog.i18n.DateTimeSymbols_fr_HT', 'goog.i18n.DateTimeSymbols_fr_KM', 'goog.i18n.DateTimeSymbols_fr_LU', 'goog.i18n.DateTimeSymbols_fr_MA', 'goog.i18n.DateTimeSymbols_fr_MC', 'goog.i18n.DateTimeSymbols_fr_MF', 'goog.i18n.DateTimeSymbols_fr_MG', 'goog.i18n.DateTimeSymbols_fr_ML', 'goog.i18n.DateTimeSymbols_fr_MQ', 'goog.i18n.DateTimeSymbols_fr_MR', 'goog.i18n.DateTimeSymbols_fr_MU', 'goog.i18n.DateTimeSymbols_fr_NC', 'goog.i18n.DateTimeSymbols_fr_NE', 'goog.i18n.DateTimeSymbols_fr_PF', 'goog.i18n.DateTimeSymbols_fr_PM', 'goog.i18n.DateTimeSymbols_fr_RE', 'goog.i18n.DateTimeSymbols_fr_RW', 'goog.i18n.DateTimeSymbols_fr_SC', 'goog.i18n.DateTimeSymbols_fr_SN', 'goog.i18n.DateTimeSymbols_fr_SY', 'goog.i18n.DateTimeSymbols_fr_TD', 'goog.i18n.DateTimeSymbols_fr_TG', 'goog.i18n.DateTimeSymbols_fr_TN', 'goog.i18n.DateTimeSymbols_fr_VU', 'goog.i18n.DateTimeSymbols_fr_WF', 'goog.i18n.DateTimeSymbols_fr_YT', 'goog.i18n.DateTimeSymbols_fur', 'goog.i18n.DateTimeSymbols_fur_IT', 'goog.i18n.DateTimeSymbols_fy', 'goog.i18n.DateTimeSymbols_fy_NL', 'goog.i18n.DateTimeSymbols_ga_IE', 'goog.i18n.DateTimeSymbols_gd', 'goog.i18n.DateTimeSymbols_gd_GB', 'goog.i18n.DateTimeSymbols_gl_ES', 'goog.i18n.DateTimeSymbols_gsw_CH', 'goog.i18n.DateTimeSymbols_gsw_FR', 'goog.i18n.DateTimeSymbols_gsw_LI', 'goog.i18n.DateTimeSymbols_gu_IN', 'goog.i18n.DateTimeSymbols_guz', 'goog.i18n.DateTimeSymbols_guz_KE', 'goog.i18n.DateTimeSymbols_gv', 'goog.i18n.DateTimeSymbols_gv_IM', 'goog.i18n.DateTimeSymbols_ha', 'goog.i18n.DateTimeSymbols_ha_Latn', 'goog.i18n.DateTimeSymbols_ha_Latn_GH', 'goog.i18n.DateTimeSymbols_ha_Latn_NE', 'goog.i18n.DateTimeSymbols_ha_Latn_NG', 'goog.i18n.DateTimeSymbols_haw_US', 'goog.i18n.DateTimeSymbols_he_IL', 'goog.i18n.DateTimeSymbols_hi_IN', 'goog.i18n.DateTimeSymbols_hr_BA', 'goog.i18n.DateTimeSymbols_hr_HR', 'goog.i18n.DateTimeSymbols_hsb', 'goog.i18n.DateTimeSymbols_hsb_DE', 'goog.i18n.DateTimeSymbols_hu_HU', 'goog.i18n.DateTimeSymbols_hy_AM', 'goog.i18n.DateTimeSymbols_ia', 'goog.i18n.DateTimeSymbols_ia_FR', 'goog.i18n.DateTimeSymbols_id_ID', 'goog.i18n.DateTimeSymbols_ig', 'goog.i18n.DateTimeSymbols_ig_NG', 'goog.i18n.DateTimeSymbols_ii', 'goog.i18n.DateTimeSymbols_ii_CN', 'goog.i18n.DateTimeSymbols_is_IS', 'goog.i18n.DateTimeSymbols_it_CH', 'goog.i18n.DateTimeSymbols_it_IT', 'goog.i18n.DateTimeSymbols_it_SM', 'goog.i18n.DateTimeSymbols_ja_JP', 'goog.i18n.DateTimeSymbols_jgo', 'goog.i18n.DateTimeSymbols_jgo_CM', 'goog.i18n.DateTimeSymbols_jmc', 'goog.i18n.DateTimeSymbols_jmc_TZ', 'goog.i18n.DateTimeSymbols_ka_GE', 'goog.i18n.DateTimeSymbols_kab', 'goog.i18n.DateTimeSymbols_kab_DZ', 'goog.i18n.DateTimeSymbols_kam', 'goog.i18n.DateTimeSymbols_kam_KE', 'goog.i18n.DateTimeSymbols_kde', 'goog.i18n.DateTimeSymbols_kde_TZ', 'goog.i18n.DateTimeSymbols_kea', 'goog.i18n.DateTimeSymbols_kea_CV', 'goog.i18n.DateTimeSymbols_khq', 'goog.i18n.DateTimeSymbols_khq_ML', 'goog.i18n.DateTimeSymbols_ki', 'goog.i18n.DateTimeSymbols_ki_KE', 'goog.i18n.DateTimeSymbols_kk_Cyrl', 'goog.i18n.DateTimeSymbols_kk_Cyrl_KZ', 'goog.i18n.DateTimeSymbols_kkj', 'goog.i18n.DateTimeSymbols_kkj_CM', 'goog.i18n.DateTimeSymbols_kl', 'goog.i18n.DateTimeSymbols_kl_GL', 'goog.i18n.DateTimeSymbols_kln', 'goog.i18n.DateTimeSymbols_kln_KE', 'goog.i18n.DateTimeSymbols_km_KH', 'goog.i18n.DateTimeSymbols_kn_IN', 'goog.i18n.DateTimeSymbols_ko_KP', 'goog.i18n.DateTimeSymbols_ko_KR', 'goog.i18n.DateTimeSymbols_kok', 'goog.i18n.DateTimeSymbols_kok_IN', 'goog.i18n.DateTimeSymbols_ks', 'goog.i18n.DateTimeSymbols_ks_Arab', 'goog.i18n.DateTimeSymbols_ks_Arab_IN', 'goog.i18n.DateTimeSymbols_ksb', 'goog.i18n.DateTimeSymbols_ksb_TZ', 'goog.i18n.DateTimeSymbols_ksf', 'goog.i18n.DateTimeSymbols_ksf_CM', 'goog.i18n.DateTimeSymbols_ksh', 'goog.i18n.DateTimeSymbols_ksh_DE', 'goog.i18n.DateTimeSymbols_kw', 'goog.i18n.DateTimeSymbols_kw_GB', 'goog.i18n.DateTimeSymbols_ky_Cyrl', 'goog.i18n.DateTimeSymbols_ky_Cyrl_KG', 'goog.i18n.DateTimeSymbols_lag', 'goog.i18n.DateTimeSymbols_lag_TZ', 'goog.i18n.DateTimeSymbols_lb', 'goog.i18n.DateTimeSymbols_lb_LU', 'goog.i18n.DateTimeSymbols_lg', 'goog.i18n.DateTimeSymbols_lg_UG', 'goog.i18n.DateTimeSymbols_lkt', 'goog.i18n.DateTimeSymbols_lkt_US', 'goog.i18n.DateTimeSymbols_ln_AO', 'goog.i18n.DateTimeSymbols_ln_CD', 'goog.i18n.DateTimeSymbols_ln_CF', 'goog.i18n.DateTimeSymbols_ln_CG', 'goog.i18n.DateTimeSymbols_lo_LA', 'goog.i18n.DateTimeSymbols_lt_LT', 'goog.i18n.DateTimeSymbols_lu', 'goog.i18n.DateTimeSymbols_lu_CD', 'goog.i18n.DateTimeSymbols_luo', 'goog.i18n.DateTimeSymbols_luo_KE', 'goog.i18n.DateTimeSymbols_luy', 'goog.i18n.DateTimeSymbols_luy_KE', 'goog.i18n.DateTimeSymbols_lv_LV', 'goog.i18n.DateTimeSymbols_mas', 'goog.i18n.DateTimeSymbols_mas_KE', 'goog.i18n.DateTimeSymbols_mas_TZ', 'goog.i18n.DateTimeSymbols_mer', 'goog.i18n.DateTimeSymbols_mer_KE', 'goog.i18n.DateTimeSymbols_mfe', 'goog.i18n.DateTimeSymbols_mfe_MU', 'goog.i18n.DateTimeSymbols_mg', 'goog.i18n.DateTimeSymbols_mg_MG', 'goog.i18n.DateTimeSymbols_mgh', 'goog.i18n.DateTimeSymbols_mgh_MZ', 'goog.i18n.DateTimeSymbols_mgo', 'goog.i18n.DateTimeSymbols_mgo_CM', 'goog.i18n.DateTimeSymbols_mk_MK', 'goog.i18n.DateTimeSymbols_ml_IN', 'goog.i18n.DateTimeSymbols_mn_Cyrl', 'goog.i18n.DateTimeSymbols_mn_Cyrl_MN', 'goog.i18n.DateTimeSymbols_mr_IN', 'goog.i18n.DateTimeSymbols_ms_Latn', 'goog.i18n.DateTimeSymbols_ms_Latn_BN', 'goog.i18n.DateTimeSymbols_ms_Latn_MY', 'goog.i18n.DateTimeSymbols_ms_Latn_SG', 'goog.i18n.DateTimeSymbols_mt_MT', 'goog.i18n.DateTimeSymbols_mua', 'goog.i18n.DateTimeSymbols_mua_CM', 'goog.i18n.DateTimeSymbols_my_MM', 'goog.i18n.DateTimeSymbols_naq', 'goog.i18n.DateTimeSymbols_naq_NA', 'goog.i18n.DateTimeSymbols_nb_NO', 'goog.i18n.DateTimeSymbols_nb_SJ', 'goog.i18n.DateTimeSymbols_nd', 'goog.i18n.DateTimeSymbols_nd_ZW', 'goog.i18n.DateTimeSymbols_ne_IN', 'goog.i18n.DateTimeSymbols_ne_NP', 'goog.i18n.DateTimeSymbols_nl_AW', 'goog.i18n.DateTimeSymbols_nl_BE', 'goog.i18n.DateTimeSymbols_nl_BQ', 'goog.i18n.DateTimeSymbols_nl_CW', 'goog.i18n.DateTimeSymbols_nl_NL', 'goog.i18n.DateTimeSymbols_nl_SR', 'goog.i18n.DateTimeSymbols_nl_SX', 'goog.i18n.DateTimeSymbols_nmg', 'goog.i18n.DateTimeSymbols_nmg_CM', 'goog.i18n.DateTimeSymbols_nn', 'goog.i18n.DateTimeSymbols_nn_NO', 'goog.i18n.DateTimeSymbols_nnh', 'goog.i18n.DateTimeSymbols_nnh_CM', 'goog.i18n.DateTimeSymbols_nr', 'goog.i18n.DateTimeSymbols_nr_ZA', 'goog.i18n.DateTimeSymbols_nso', 'goog.i18n.DateTimeSymbols_nso_ZA', 'goog.i18n.DateTimeSymbols_nus', 'goog.i18n.DateTimeSymbols_nus_SD', 'goog.i18n.DateTimeSymbols_nyn', 'goog.i18n.DateTimeSymbols_nyn_UG', 'goog.i18n.DateTimeSymbols_om', 'goog.i18n.DateTimeSymbols_om_ET', 'goog.i18n.DateTimeSymbols_om_KE', 'goog.i18n.DateTimeSymbols_or_IN', 'goog.i18n.DateTimeSymbols_os', 'goog.i18n.DateTimeSymbols_os_GE', 'goog.i18n.DateTimeSymbols_os_RU', 'goog.i18n.DateTimeSymbols_pa_Arab', 'goog.i18n.DateTimeSymbols_pa_Arab_PK', 'goog.i18n.DateTimeSymbols_pa_Guru', 'goog.i18n.DateTimeSymbols_pa_Guru_IN', 'goog.i18n.DateTimeSymbols_pl_PL', 'goog.i18n.DateTimeSymbols_ps', 'goog.i18n.DateTimeSymbols_ps_AF', 'goog.i18n.DateTimeSymbols_pt_AO', 'goog.i18n.DateTimeSymbols_pt_CV', 'goog.i18n.DateTimeSymbols_pt_GW', 'goog.i18n.DateTimeSymbols_pt_MO', 'goog.i18n.DateTimeSymbols_pt_MZ', 'goog.i18n.DateTimeSymbols_pt_ST', 'goog.i18n.DateTimeSymbols_pt_TL', 'goog.i18n.DateTimeSymbols_qu', 'goog.i18n.DateTimeSymbols_qu_BO', 'goog.i18n.DateTimeSymbols_qu_EC', 'goog.i18n.DateTimeSymbols_qu_PE', 'goog.i18n.DateTimeSymbols_rm', 'goog.i18n.DateTimeSymbols_rm_CH', 'goog.i18n.DateTimeSymbols_rn', 'goog.i18n.DateTimeSymbols_rn_BI', 'goog.i18n.DateTimeSymbols_ro_MD', 'goog.i18n.DateTimeSymbols_ro_RO', 'goog.i18n.DateTimeSymbols_rof', 'goog.i18n.DateTimeSymbols_rof_TZ', 'goog.i18n.DateTimeSymbols_ru_BY', 'goog.i18n.DateTimeSymbols_ru_KG', 'goog.i18n.DateTimeSymbols_ru_KZ', 'goog.i18n.DateTimeSymbols_ru_MD', 'goog.i18n.DateTimeSymbols_ru_RU', 'goog.i18n.DateTimeSymbols_ru_UA', 'goog.i18n.DateTimeSymbols_rw', 'goog.i18n.DateTimeSymbols_rw_RW', 'goog.i18n.DateTimeSymbols_rwk', 'goog.i18n.DateTimeSymbols_rwk_TZ', 'goog.i18n.DateTimeSymbols_sah', 'goog.i18n.DateTimeSymbols_sah_RU', 'goog.i18n.DateTimeSymbols_saq', 'goog.i18n.DateTimeSymbols_saq_KE', 'goog.i18n.DateTimeSymbols_sbp', 'goog.i18n.DateTimeSymbols_sbp_TZ', 'goog.i18n.DateTimeSymbols_se', 'goog.i18n.DateTimeSymbols_se_FI', 'goog.i18n.DateTimeSymbols_se_NO', 'goog.i18n.DateTimeSymbols_se_SE', 'goog.i18n.DateTimeSymbols_seh', 'goog.i18n.DateTimeSymbols_seh_MZ', 'goog.i18n.DateTimeSymbols_ses', 'goog.i18n.DateTimeSymbols_ses_ML', 'goog.i18n.DateTimeSymbols_sg', 'goog.i18n.DateTimeSymbols_sg_CF', 'goog.i18n.DateTimeSymbols_shi', 'goog.i18n.DateTimeSymbols_shi_Latn', 'goog.i18n.DateTimeSymbols_shi_Latn_MA', 'goog.i18n.DateTimeSymbols_shi_Tfng', 'goog.i18n.DateTimeSymbols_shi_Tfng_MA', 'goog.i18n.DateTimeSymbols_si_LK', 'goog.i18n.DateTimeSymbols_sk_SK', 'goog.i18n.DateTimeSymbols_sl_SI', 'goog.i18n.DateTimeSymbols_smn', 'goog.i18n.DateTimeSymbols_smn_FI', 'goog.i18n.DateTimeSymbols_sn', 'goog.i18n.DateTimeSymbols_sn_ZW', 'goog.i18n.DateTimeSymbols_so', 'goog.i18n.DateTimeSymbols_so_DJ', 'goog.i18n.DateTimeSymbols_so_ET', 'goog.i18n.DateTimeSymbols_so_KE', 'goog.i18n.DateTimeSymbols_so_SO', 'goog.i18n.DateTimeSymbols_sq_AL', 'goog.i18n.DateTimeSymbols_sq_MK', 'goog.i18n.DateTimeSymbols_sq_XK', 'goog.i18n.DateTimeSymbols_sr_Cyrl', 'goog.i18n.DateTimeSymbols_sr_Cyrl_BA', 'goog.i18n.DateTimeSymbols_sr_Cyrl_ME', 'goog.i18n.DateTimeSymbols_sr_Cyrl_RS', 'goog.i18n.DateTimeSymbols_sr_Cyrl_XK', 'goog.i18n.DateTimeSymbols_sr_Latn', 'goog.i18n.DateTimeSymbols_sr_Latn_BA', 'goog.i18n.DateTimeSymbols_sr_Latn_ME', 'goog.i18n.DateTimeSymbols_sr_Latn_RS', 'goog.i18n.DateTimeSymbols_sr_Latn_XK', 'goog.i18n.DateTimeSymbols_ss', 'goog.i18n.DateTimeSymbols_ss_SZ', 'goog.i18n.DateTimeSymbols_ss_ZA', 'goog.i18n.DateTimeSymbols_ssy', 'goog.i18n.DateTimeSymbols_ssy_ER', 'goog.i18n.DateTimeSymbols_sv_AX', 'goog.i18n.DateTimeSymbols_sv_FI', 'goog.i18n.DateTimeSymbols_sv_SE', 'goog.i18n.DateTimeSymbols_sw_KE', 'goog.i18n.DateTimeSymbols_sw_TZ', 'goog.i18n.DateTimeSymbols_sw_UG', 'goog.i18n.DateTimeSymbols_swc', 'goog.i18n.DateTimeSymbols_swc_CD', 'goog.i18n.DateTimeSymbols_ta_IN', 'goog.i18n.DateTimeSymbols_ta_LK', 'goog.i18n.DateTimeSymbols_ta_MY', 'goog.i18n.DateTimeSymbols_ta_SG', 'goog.i18n.DateTimeSymbols_te_IN', 'goog.i18n.DateTimeSymbols_teo', 'goog.i18n.DateTimeSymbols_teo_KE', 'goog.i18n.DateTimeSymbols_teo_UG', 'goog.i18n.DateTimeSymbols_th_TH', 'goog.i18n.DateTimeSymbols_ti', 'goog.i18n.DateTimeSymbols_ti_ER', 'goog.i18n.DateTimeSymbols_ti_ET', 'goog.i18n.DateTimeSymbols_tn', 'goog.i18n.DateTimeSymbols_tn_BW', 'goog.i18n.DateTimeSymbols_tn_ZA', 'goog.i18n.DateTimeSymbols_to', 'goog.i18n.DateTimeSymbols_to_TO', 'goog.i18n.DateTimeSymbols_tr_CY', 'goog.i18n.DateTimeSymbols_tr_TR', 'goog.i18n.DateTimeSymbols_ts', 'goog.i18n.DateTimeSymbols_ts_ZA', 'goog.i18n.DateTimeSymbols_twq', 'goog.i18n.DateTimeSymbols_twq_NE', 'goog.i18n.DateTimeSymbols_tzm', 'goog.i18n.DateTimeSymbols_tzm_Latn', 'goog.i18n.DateTimeSymbols_tzm_Latn_MA', 'goog.i18n.DateTimeSymbols_ug', 'goog.i18n.DateTimeSymbols_ug_Arab', 'goog.i18n.DateTimeSymbols_ug_Arab_CN', 'goog.i18n.DateTimeSymbols_uk_UA', 'goog.i18n.DateTimeSymbols_ur_IN', 'goog.i18n.DateTimeSymbols_ur_PK', 'goog.i18n.DateTimeSymbols_uz_Arab', 'goog.i18n.DateTimeSymbols_uz_Arab_AF', 'goog.i18n.DateTimeSymbols_uz_Cyrl', 'goog.i18n.DateTimeSymbols_uz_Cyrl_UZ', 'goog.i18n.DateTimeSymbols_uz_Latn', 'goog.i18n.DateTimeSymbols_uz_Latn_UZ', 'goog.i18n.DateTimeSymbols_vai', 'goog.i18n.DateTimeSymbols_vai_Latn', 'goog.i18n.DateTimeSymbols_vai_Latn_LR', 'goog.i18n.DateTimeSymbols_vai_Vaii', 'goog.i18n.DateTimeSymbols_vai_Vaii_LR', 'goog.i18n.DateTimeSymbols_ve', 'goog.i18n.DateTimeSymbols_ve_ZA', 'goog.i18n.DateTimeSymbols_vi_VN', 'goog.i18n.DateTimeSymbols_vo', 'goog.i18n.DateTimeSymbols_vo_001', 'goog.i18n.DateTimeSymbols_vun', 'goog.i18n.DateTimeSymbols_vun_TZ', 'goog.i18n.DateTimeSymbols_wae', 'goog.i18n.DateTimeSymbols_wae_CH', 'goog.i18n.DateTimeSymbols_xog', 'goog.i18n.DateTimeSymbols_xog_UG', 'goog.i18n.DateTimeSymbols_yav', 'goog.i18n.DateTimeSymbols_yav_CM', 'goog.i18n.DateTimeSymbols_yi', 'goog.i18n.DateTimeSymbols_yi_001', 'goog.i18n.DateTimeSymbols_yo', 'goog.i18n.DateTimeSymbols_yo_BJ', 'goog.i18n.DateTimeSymbols_yo_NG', 'goog.i18n.DateTimeSymbols_zgh', 'goog.i18n.DateTimeSymbols_zgh_MA', 'goog.i18n.DateTimeSymbols_zh_Hans', 'goog.i18n.DateTimeSymbols_zh_Hans_CN', 'goog.i18n.DateTimeSymbols_zh_Hans_HK', 'goog.i18n.DateTimeSymbols_zh_Hans_MO', 'goog.i18n.DateTimeSymbols_zh_Hans_SG', 'goog.i18n.DateTimeSymbols_zh_Hant', 'goog.i18n.DateTimeSymbols_zh_Hant_HK', 'goog.i18n.DateTimeSymbols_zh_Hant_MO', 'goog.i18n.DateTimeSymbols_zh_Hant_TW', 'goog.i18n.DateTimeSymbols_zu_ZA'], ['goog.i18n.DateTimeSymbols'], false); >+goog.addDependency('i18n/graphemebreak.js', ['goog.i18n.GraphemeBreak'], ['goog.structs.InversionMap'], false); >+goog.addDependency('i18n/graphemebreak_test.js', ['goog.i18n.GraphemeBreakTest'], ['goog.i18n.GraphemeBreak', 'goog.testing.jsunit'], false); >+goog.addDependency('i18n/messageformat.js', ['goog.i18n.MessageFormat'], ['goog.asserts', 'goog.i18n.NumberFormat', 'goog.i18n.ordinalRules', 'goog.i18n.pluralRules'], false); >+goog.addDependency('i18n/messageformat_test.js', ['goog.i18n.MessageFormatTest'], ['goog.i18n.MessageFormat', 'goog.i18n.NumberFormatSymbols_hr', 'goog.i18n.pluralRules', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], false); >+goog.addDependency('i18n/mime.js', ['goog.i18n.mime', 'goog.i18n.mime.encode'], ['goog.array'], false); >+goog.addDependency('i18n/mime_test.js', ['goog.i18n.mime.encodeTest'], ['goog.i18n.mime.encode', 'goog.testing.jsunit'], false); >+goog.addDependency('i18n/numberformat.js', ['goog.i18n.NumberFormat', 'goog.i18n.NumberFormat.CurrencyStyle', 'goog.i18n.NumberFormat.Format'], ['goog.asserts', 'goog.i18n.CompactNumberFormatSymbols', 'goog.i18n.NumberFormatSymbols', 'goog.i18n.currency', 'goog.math'], false); >+goog.addDependency('i18n/numberformat_test.js', ['goog.i18n.NumberFormatTest'], ['goog.i18n.CompactNumberFormatSymbols', 'goog.i18n.CompactNumberFormatSymbols_de', 'goog.i18n.CompactNumberFormatSymbols_en', 'goog.i18n.CompactNumberFormatSymbols_fr', 'goog.i18n.NumberFormat', 'goog.i18n.NumberFormatSymbols', 'goog.i18n.NumberFormatSymbols_de', 'goog.i18n.NumberFormatSymbols_en', 'goog.i18n.NumberFormatSymbols_fr', 'goog.i18n.NumberFormatSymbols_pl', 'goog.i18n.NumberFormatSymbols_ro', 'goog.testing.ExpectedFailures', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.userAgent', 'goog.userAgent.product', 'goog.userAgent.product.isVersion'], false); >+goog.addDependency('i18n/numberformatsymbols.js', ['goog.i18n.NumberFormatSymbols', 'goog.i18n.NumberFormatSymbols_af', 'goog.i18n.NumberFormatSymbols_af_ZA', 'goog.i18n.NumberFormatSymbols_am', 'goog.i18n.NumberFormatSymbols_am_ET', 'goog.i18n.NumberFormatSymbols_ar', 'goog.i18n.NumberFormatSymbols_ar_001', 'goog.i18n.NumberFormatSymbols_az', 'goog.i18n.NumberFormatSymbols_az_Latn_AZ', 'goog.i18n.NumberFormatSymbols_bg', 'goog.i18n.NumberFormatSymbols_bg_BG', 'goog.i18n.NumberFormatSymbols_bn', 'goog.i18n.NumberFormatSymbols_bn_BD', 'goog.i18n.NumberFormatSymbols_br', 'goog.i18n.NumberFormatSymbols_br_FR', 'goog.i18n.NumberFormatSymbols_ca', 'goog.i18n.NumberFormatSymbols_ca_AD', 'goog.i18n.NumberFormatSymbols_ca_ES', 'goog.i18n.NumberFormatSymbols_ca_ES_VALENCIA', 'goog.i18n.NumberFormatSymbols_ca_FR', 'goog.i18n.NumberFormatSymbols_ca_IT', 'goog.i18n.NumberFormatSymbols_chr', 'goog.i18n.NumberFormatSymbols_chr_US', 'goog.i18n.NumberFormatSymbols_cs', 'goog.i18n.NumberFormatSymbols_cs_CZ', 'goog.i18n.NumberFormatSymbols_cy', 'goog.i18n.NumberFormatSymbols_cy_GB', 'goog.i18n.NumberFormatSymbols_da', 'goog.i18n.NumberFormatSymbols_da_DK', 'goog.i18n.NumberFormatSymbols_da_GL', 'goog.i18n.NumberFormatSymbols_de', 'goog.i18n.NumberFormatSymbols_de_AT', 'goog.i18n.NumberFormatSymbols_de_BE', 'goog.i18n.NumberFormatSymbols_de_CH', 'goog.i18n.NumberFormatSymbols_de_DE', 'goog.i18n.NumberFormatSymbols_de_LU', 'goog.i18n.NumberFormatSymbols_el', 'goog.i18n.NumberFormatSymbols_el_GR', 'goog.i18n.NumberFormatSymbols_en', 'goog.i18n.NumberFormatSymbols_en_001', 'goog.i18n.NumberFormatSymbols_en_AS', 'goog.i18n.NumberFormatSymbols_en_AU', 'goog.i18n.NumberFormatSymbols_en_DG', 'goog.i18n.NumberFormatSymbols_en_FM', 'goog.i18n.NumberFormatSymbols_en_GB', 'goog.i18n.NumberFormatSymbols_en_GU', 'goog.i18n.NumberFormatSymbols_en_IE', 'goog.i18n.NumberFormatSymbols_en_IN', 'goog.i18n.NumberFormatSymbols_en_IO', 'goog.i18n.NumberFormatSymbols_en_MH', 'goog.i18n.NumberFormatSymbols_en_MP', 'goog.i18n.NumberFormatSymbols_en_PR', 'goog.i18n.NumberFormatSymbols_en_PW', 'goog.i18n.NumberFormatSymbols_en_SG', 'goog.i18n.NumberFormatSymbols_en_TC', 'goog.i18n.NumberFormatSymbols_en_UM', 'goog.i18n.NumberFormatSymbols_en_US', 'goog.i18n.NumberFormatSymbols_en_VG', 'goog.i18n.NumberFormatSymbols_en_VI', 'goog.i18n.NumberFormatSymbols_en_ZA', 'goog.i18n.NumberFormatSymbols_en_ZW', 'goog.i18n.NumberFormatSymbols_es', 'goog.i18n.NumberFormatSymbols_es_419', 'goog.i18n.NumberFormatSymbols_es_EA', 'goog.i18n.NumberFormatSymbols_es_ES', 'goog.i18n.NumberFormatSymbols_es_IC', 'goog.i18n.NumberFormatSymbols_et', 'goog.i18n.NumberFormatSymbols_et_EE', 'goog.i18n.NumberFormatSymbols_eu', 'goog.i18n.NumberFormatSymbols_eu_ES', 'goog.i18n.NumberFormatSymbols_fa', 'goog.i18n.NumberFormatSymbols_fa_IR', 'goog.i18n.NumberFormatSymbols_fi', 'goog.i18n.NumberFormatSymbols_fi_FI', 'goog.i18n.NumberFormatSymbols_fil', 'goog.i18n.NumberFormatSymbols_fil_PH', 'goog.i18n.NumberFormatSymbols_fr', 'goog.i18n.NumberFormatSymbols_fr_BL', 'goog.i18n.NumberFormatSymbols_fr_CA', 'goog.i18n.NumberFormatSymbols_fr_FR', 'goog.i18n.NumberFormatSymbols_fr_GF', 'goog.i18n.NumberFormatSymbols_fr_GP', 'goog.i18n.NumberFormatSymbols_fr_MC', 'goog.i18n.NumberFormatSymbols_fr_MF', 'goog.i18n.NumberFormatSymbols_fr_MQ', 'goog.i18n.NumberFormatSymbols_fr_PM', 'goog.i18n.NumberFormatSymbols_fr_RE', 'goog.i18n.NumberFormatSymbols_fr_YT', 'goog.i18n.NumberFormatSymbols_ga', 'goog.i18n.NumberFormatSymbols_ga_IE', 'goog.i18n.NumberFormatSymbols_gl', 'goog.i18n.NumberFormatSymbols_gl_ES', 'goog.i18n.NumberFormatSymbols_gsw', 'goog.i18n.NumberFormatSymbols_gsw_CH', 'goog.i18n.NumberFormatSymbols_gsw_LI', 'goog.i18n.NumberFormatSymbols_gu', 'goog.i18n.NumberFormatSymbols_gu_IN', 'goog.i18n.NumberFormatSymbols_haw', 'goog.i18n.NumberFormatSymbols_haw_US', 'goog.i18n.NumberFormatSymbols_he', 'goog.i18n.NumberFormatSymbols_he_IL', 'goog.i18n.NumberFormatSymbols_hi', 'goog.i18n.NumberFormatSymbols_hi_IN', 'goog.i18n.NumberFormatSymbols_hr', 'goog.i18n.NumberFormatSymbols_hr_HR', 'goog.i18n.NumberFormatSymbols_hu', 'goog.i18n.NumberFormatSymbols_hu_HU', 'goog.i18n.NumberFormatSymbols_hy', 'goog.i18n.NumberFormatSymbols_hy_AM', 'goog.i18n.NumberFormatSymbols_id', 'goog.i18n.NumberFormatSymbols_id_ID', 'goog.i18n.NumberFormatSymbols_in', 'goog.i18n.NumberFormatSymbols_is', 'goog.i18n.NumberFormatSymbols_is_IS', 'goog.i18n.NumberFormatSymbols_it', 'goog.i18n.NumberFormatSymbols_it_IT', 'goog.i18n.NumberFormatSymbols_it_SM', 'goog.i18n.NumberFormatSymbols_iw', 'goog.i18n.NumberFormatSymbols_ja', 'goog.i18n.NumberFormatSymbols_ja_JP', 'goog.i18n.NumberFormatSymbols_ka', 'goog.i18n.NumberFormatSymbols_ka_GE', 'goog.i18n.NumberFormatSymbols_kk', 'goog.i18n.NumberFormatSymbols_kk_Cyrl_KZ', 'goog.i18n.NumberFormatSymbols_km', 'goog.i18n.NumberFormatSymbols_km_KH', 'goog.i18n.NumberFormatSymbols_kn', 'goog.i18n.NumberFormatSymbols_kn_IN', 'goog.i18n.NumberFormatSymbols_ko', 'goog.i18n.NumberFormatSymbols_ko_KR', 'goog.i18n.NumberFormatSymbols_ky', 'goog.i18n.NumberFormatSymbols_ky_Cyrl_KG', 'goog.i18n.NumberFormatSymbols_ln', 'goog.i18n.NumberFormatSymbols_ln_CD', 'goog.i18n.NumberFormatSymbols_lo', 'goog.i18n.NumberFormatSymbols_lo_LA', 'goog.i18n.NumberFormatSymbols_lt', 'goog.i18n.NumberFormatSymbols_lt_LT', 'goog.i18n.NumberFormatSymbols_lv', 'goog.i18n.NumberFormatSymbols_lv_LV', 'goog.i18n.NumberFormatSymbols_mk', 'goog.i18n.NumberFormatSymbols_mk_MK', 'goog.i18n.NumberFormatSymbols_ml', 'goog.i18n.NumberFormatSymbols_ml_IN', 'goog.i18n.NumberFormatSymbols_mn', 'goog.i18n.NumberFormatSymbols_mn_Cyrl_MN', 'goog.i18n.NumberFormatSymbols_mr', 'goog.i18n.NumberFormatSymbols_mr_IN', 'goog.i18n.NumberFormatSymbols_ms', 'goog.i18n.NumberFormatSymbols_ms_Latn_MY', 'goog.i18n.NumberFormatSymbols_mt', 'goog.i18n.NumberFormatSymbols_mt_MT', 'goog.i18n.NumberFormatSymbols_my', 'goog.i18n.NumberFormatSymbols_my_MM', 'goog.i18n.NumberFormatSymbols_nb', 'goog.i18n.NumberFormatSymbols_nb_NO', 'goog.i18n.NumberFormatSymbols_nb_SJ', 'goog.i18n.NumberFormatSymbols_ne', 'goog.i18n.NumberFormatSymbols_ne_NP', 'goog.i18n.NumberFormatSymbols_nl', 'goog.i18n.NumberFormatSymbols_nl_NL', 'goog.i18n.NumberFormatSymbols_no', 'goog.i18n.NumberFormatSymbols_no_NO', 'goog.i18n.NumberFormatSymbols_or', 'goog.i18n.NumberFormatSymbols_or_IN', 'goog.i18n.NumberFormatSymbols_pa', 'goog.i18n.NumberFormatSymbols_pa_Guru_IN', 'goog.i18n.NumberFormatSymbols_pl', 'goog.i18n.NumberFormatSymbols_pl_PL', 'goog.i18n.NumberFormatSymbols_pt', 'goog.i18n.NumberFormatSymbols_pt_BR', 'goog.i18n.NumberFormatSymbols_pt_PT', 'goog.i18n.NumberFormatSymbols_ro', 'goog.i18n.NumberFormatSymbols_ro_RO', 'goog.i18n.NumberFormatSymbols_ru', 'goog.i18n.NumberFormatSymbols_ru_RU', 'goog.i18n.NumberFormatSymbols_si', 'goog.i18n.NumberFormatSymbols_si_LK', 'goog.i18n.NumberFormatSymbols_sk', 'goog.i18n.NumberFormatSymbols_sk_SK', 'goog.i18n.NumberFormatSymbols_sl', 'goog.i18n.NumberFormatSymbols_sl_SI', 'goog.i18n.NumberFormatSymbols_sq', 'goog.i18n.NumberFormatSymbols_sq_AL', 'goog.i18n.NumberFormatSymbols_sr', 'goog.i18n.NumberFormatSymbols_sr_Cyrl_RS', 'goog.i18n.NumberFormatSymbols_sv', 'goog.i18n.NumberFormatSymbols_sv_SE', 'goog.i18n.NumberFormatSymbols_sw', 'goog.i18n.NumberFormatSymbols_sw_TZ', 'goog.i18n.NumberFormatSymbols_ta', 'goog.i18n.NumberFormatSymbols_ta_IN', 'goog.i18n.NumberFormatSymbols_te', 'goog.i18n.NumberFormatSymbols_te_IN', 'goog.i18n.NumberFormatSymbols_th', 'goog.i18n.NumberFormatSymbols_th_TH', 'goog.i18n.NumberFormatSymbols_tl', 'goog.i18n.NumberFormatSymbols_tr', 'goog.i18n.NumberFormatSymbols_tr_TR', 'goog.i18n.NumberFormatSymbols_uk', 'goog.i18n.NumberFormatSymbols_uk_UA', 'goog.i18n.NumberFormatSymbols_ur', 'goog.i18n.NumberFormatSymbols_ur_PK', 'goog.i18n.NumberFormatSymbols_uz', 'goog.i18n.NumberFormatSymbols_uz_Latn_UZ', 'goog.i18n.NumberFormatSymbols_vi', 'goog.i18n.NumberFormatSymbols_vi_VN', 'goog.i18n.NumberFormatSymbols_zh', 'goog.i18n.NumberFormatSymbols_zh_CN', 'goog.i18n.NumberFormatSymbols_zh_HK', 'goog.i18n.NumberFormatSymbols_zh_Hans_CN', 'goog.i18n.NumberFormatSymbols_zh_TW', 'goog.i18n.NumberFormatSymbols_zu', 'goog.i18n.NumberFormatSymbols_zu_ZA'], [], false); >+goog.addDependency('i18n/numberformatsymbolsext.js', ['goog.i18n.NumberFormatSymbolsExt', 'goog.i18n.NumberFormatSymbols_aa', 'goog.i18n.NumberFormatSymbols_aa_DJ', 'goog.i18n.NumberFormatSymbols_aa_ER', 'goog.i18n.NumberFormatSymbols_aa_ET', 'goog.i18n.NumberFormatSymbols_af_NA', 'goog.i18n.NumberFormatSymbols_agq', 'goog.i18n.NumberFormatSymbols_agq_CM', 'goog.i18n.NumberFormatSymbols_ak', 'goog.i18n.NumberFormatSymbols_ak_GH', 'goog.i18n.NumberFormatSymbols_ar_AE', 'goog.i18n.NumberFormatSymbols_ar_BH', 'goog.i18n.NumberFormatSymbols_ar_DJ', 'goog.i18n.NumberFormatSymbols_ar_DZ', 'goog.i18n.NumberFormatSymbols_ar_EG', 'goog.i18n.NumberFormatSymbols_ar_EH', 'goog.i18n.NumberFormatSymbols_ar_ER', 'goog.i18n.NumberFormatSymbols_ar_IL', 'goog.i18n.NumberFormatSymbols_ar_IQ', 'goog.i18n.NumberFormatSymbols_ar_JO', 'goog.i18n.NumberFormatSymbols_ar_KM', 'goog.i18n.NumberFormatSymbols_ar_KW', 'goog.i18n.NumberFormatSymbols_ar_LB', 'goog.i18n.NumberFormatSymbols_ar_LY', 'goog.i18n.NumberFormatSymbols_ar_MA', 'goog.i18n.NumberFormatSymbols_ar_MR', 'goog.i18n.NumberFormatSymbols_ar_OM', 'goog.i18n.NumberFormatSymbols_ar_PS', 'goog.i18n.NumberFormatSymbols_ar_QA', 'goog.i18n.NumberFormatSymbols_ar_SA', 'goog.i18n.NumberFormatSymbols_ar_SD', 'goog.i18n.NumberFormatSymbols_ar_SO', 'goog.i18n.NumberFormatSymbols_ar_SS', 'goog.i18n.NumberFormatSymbols_ar_SY', 'goog.i18n.NumberFormatSymbols_ar_TD', 'goog.i18n.NumberFormatSymbols_ar_TN', 'goog.i18n.NumberFormatSymbols_ar_YE', 'goog.i18n.NumberFormatSymbols_as', 'goog.i18n.NumberFormatSymbols_as_IN', 'goog.i18n.NumberFormatSymbols_asa', 'goog.i18n.NumberFormatSymbols_asa_TZ', 'goog.i18n.NumberFormatSymbols_ast', 'goog.i18n.NumberFormatSymbols_ast_ES', 'goog.i18n.NumberFormatSymbols_az_Cyrl', 'goog.i18n.NumberFormatSymbols_az_Cyrl_AZ', 'goog.i18n.NumberFormatSymbols_az_Latn', 'goog.i18n.NumberFormatSymbols_bas', 'goog.i18n.NumberFormatSymbols_bas_CM', 'goog.i18n.NumberFormatSymbols_be', 'goog.i18n.NumberFormatSymbols_be_BY', 'goog.i18n.NumberFormatSymbols_bem', 'goog.i18n.NumberFormatSymbols_bem_ZM', 'goog.i18n.NumberFormatSymbols_bez', 'goog.i18n.NumberFormatSymbols_bez_TZ', 'goog.i18n.NumberFormatSymbols_bm', 'goog.i18n.NumberFormatSymbols_bm_Latn', 'goog.i18n.NumberFormatSymbols_bm_Latn_ML', 'goog.i18n.NumberFormatSymbols_bn_IN', 'goog.i18n.NumberFormatSymbols_bo', 'goog.i18n.NumberFormatSymbols_bo_CN', 'goog.i18n.NumberFormatSymbols_bo_IN', 'goog.i18n.NumberFormatSymbols_brx', 'goog.i18n.NumberFormatSymbols_brx_IN', 'goog.i18n.NumberFormatSymbols_bs', 'goog.i18n.NumberFormatSymbols_bs_Cyrl', 'goog.i18n.NumberFormatSymbols_bs_Cyrl_BA', 'goog.i18n.NumberFormatSymbols_bs_Latn', 'goog.i18n.NumberFormatSymbols_bs_Latn_BA', 'goog.i18n.NumberFormatSymbols_cgg', 'goog.i18n.NumberFormatSymbols_cgg_UG', 'goog.i18n.NumberFormatSymbols_ckb', 'goog.i18n.NumberFormatSymbols_ckb_Arab', 'goog.i18n.NumberFormatSymbols_ckb_Arab_IQ', 'goog.i18n.NumberFormatSymbols_ckb_Arab_IR', 'goog.i18n.NumberFormatSymbols_ckb_IQ', 'goog.i18n.NumberFormatSymbols_ckb_IR', 'goog.i18n.NumberFormatSymbols_ckb_Latn', 'goog.i18n.NumberFormatSymbols_ckb_Latn_IQ', 'goog.i18n.NumberFormatSymbols_dav', 'goog.i18n.NumberFormatSymbols_dav_KE', 'goog.i18n.NumberFormatSymbols_de_LI', 'goog.i18n.NumberFormatSymbols_dje', 'goog.i18n.NumberFormatSymbols_dje_NE', 'goog.i18n.NumberFormatSymbols_dsb', 'goog.i18n.NumberFormatSymbols_dsb_DE', 'goog.i18n.NumberFormatSymbols_dua', 'goog.i18n.NumberFormatSymbols_dua_CM', 'goog.i18n.NumberFormatSymbols_dyo', 'goog.i18n.NumberFormatSymbols_dyo_SN', 'goog.i18n.NumberFormatSymbols_dz', 'goog.i18n.NumberFormatSymbols_dz_BT', 'goog.i18n.NumberFormatSymbols_ebu', 'goog.i18n.NumberFormatSymbols_ebu_KE', 'goog.i18n.NumberFormatSymbols_ee', 'goog.i18n.NumberFormatSymbols_ee_GH', 'goog.i18n.NumberFormatSymbols_ee_TG', 'goog.i18n.NumberFormatSymbols_el_CY', 'goog.i18n.NumberFormatSymbols_en_150', 'goog.i18n.NumberFormatSymbols_en_AG', 'goog.i18n.NumberFormatSymbols_en_AI', 'goog.i18n.NumberFormatSymbols_en_BB', 'goog.i18n.NumberFormatSymbols_en_BE', 'goog.i18n.NumberFormatSymbols_en_BM', 'goog.i18n.NumberFormatSymbols_en_BS', 'goog.i18n.NumberFormatSymbols_en_BW', 'goog.i18n.NumberFormatSymbols_en_BZ', 'goog.i18n.NumberFormatSymbols_en_CA', 'goog.i18n.NumberFormatSymbols_en_CC', 'goog.i18n.NumberFormatSymbols_en_CK', 'goog.i18n.NumberFormatSymbols_en_CM', 'goog.i18n.NumberFormatSymbols_en_CX', 'goog.i18n.NumberFormatSymbols_en_DM', 'goog.i18n.NumberFormatSymbols_en_ER', 'goog.i18n.NumberFormatSymbols_en_FJ', 'goog.i18n.NumberFormatSymbols_en_FK', 'goog.i18n.NumberFormatSymbols_en_GD', 'goog.i18n.NumberFormatSymbols_en_GG', 'goog.i18n.NumberFormatSymbols_en_GH', 'goog.i18n.NumberFormatSymbols_en_GI', 'goog.i18n.NumberFormatSymbols_en_GM', 'goog.i18n.NumberFormatSymbols_en_GY', 'goog.i18n.NumberFormatSymbols_en_HK', 'goog.i18n.NumberFormatSymbols_en_IM', 'goog.i18n.NumberFormatSymbols_en_JE', 'goog.i18n.NumberFormatSymbols_en_JM', 'goog.i18n.NumberFormatSymbols_en_KE', 'goog.i18n.NumberFormatSymbols_en_KI', 'goog.i18n.NumberFormatSymbols_en_KN', 'goog.i18n.NumberFormatSymbols_en_KY', 'goog.i18n.NumberFormatSymbols_en_LC', 'goog.i18n.NumberFormatSymbols_en_LR', 'goog.i18n.NumberFormatSymbols_en_LS', 'goog.i18n.NumberFormatSymbols_en_MG', 'goog.i18n.NumberFormatSymbols_en_MO', 'goog.i18n.NumberFormatSymbols_en_MS', 'goog.i18n.NumberFormatSymbols_en_MT', 'goog.i18n.NumberFormatSymbols_en_MU', 'goog.i18n.NumberFormatSymbols_en_MW', 'goog.i18n.NumberFormatSymbols_en_MY', 'goog.i18n.NumberFormatSymbols_en_NA', 'goog.i18n.NumberFormatSymbols_en_NF', 'goog.i18n.NumberFormatSymbols_en_NG', 'goog.i18n.NumberFormatSymbols_en_NR', 'goog.i18n.NumberFormatSymbols_en_NU', 'goog.i18n.NumberFormatSymbols_en_NZ', 'goog.i18n.NumberFormatSymbols_en_PG', 'goog.i18n.NumberFormatSymbols_en_PH', 'goog.i18n.NumberFormatSymbols_en_PK', 'goog.i18n.NumberFormatSymbols_en_PN', 'goog.i18n.NumberFormatSymbols_en_RW', 'goog.i18n.NumberFormatSymbols_en_SB', 'goog.i18n.NumberFormatSymbols_en_SC', 'goog.i18n.NumberFormatSymbols_en_SD', 'goog.i18n.NumberFormatSymbols_en_SH', 'goog.i18n.NumberFormatSymbols_en_SL', 'goog.i18n.NumberFormatSymbols_en_SS', 'goog.i18n.NumberFormatSymbols_en_SX', 'goog.i18n.NumberFormatSymbols_en_SZ', 'goog.i18n.NumberFormatSymbols_en_TK', 'goog.i18n.NumberFormatSymbols_en_TO', 'goog.i18n.NumberFormatSymbols_en_TT', 'goog.i18n.NumberFormatSymbols_en_TV', 'goog.i18n.NumberFormatSymbols_en_TZ', 'goog.i18n.NumberFormatSymbols_en_UG', 'goog.i18n.NumberFormatSymbols_en_VC', 'goog.i18n.NumberFormatSymbols_en_VU', 'goog.i18n.NumberFormatSymbols_en_WS', 'goog.i18n.NumberFormatSymbols_en_ZM', 'goog.i18n.NumberFormatSymbols_eo', 'goog.i18n.NumberFormatSymbols_eo_001', 'goog.i18n.NumberFormatSymbols_es_AR', 'goog.i18n.NumberFormatSymbols_es_BO', 'goog.i18n.NumberFormatSymbols_es_CL', 'goog.i18n.NumberFormatSymbols_es_CO', 'goog.i18n.NumberFormatSymbols_es_CR', 'goog.i18n.NumberFormatSymbols_es_CU', 'goog.i18n.NumberFormatSymbols_es_DO', 'goog.i18n.NumberFormatSymbols_es_EC', 'goog.i18n.NumberFormatSymbols_es_GQ', 'goog.i18n.NumberFormatSymbols_es_GT', 'goog.i18n.NumberFormatSymbols_es_HN', 'goog.i18n.NumberFormatSymbols_es_MX', 'goog.i18n.NumberFormatSymbols_es_NI', 'goog.i18n.NumberFormatSymbols_es_PA', 'goog.i18n.NumberFormatSymbols_es_PE', 'goog.i18n.NumberFormatSymbols_es_PH', 'goog.i18n.NumberFormatSymbols_es_PR', 'goog.i18n.NumberFormatSymbols_es_PY', 'goog.i18n.NumberFormatSymbols_es_SV', 'goog.i18n.NumberFormatSymbols_es_US', 'goog.i18n.NumberFormatSymbols_es_UY', 'goog.i18n.NumberFormatSymbols_es_VE', 'goog.i18n.NumberFormatSymbols_ewo', 'goog.i18n.NumberFormatSymbols_ewo_CM', 'goog.i18n.NumberFormatSymbols_fa_AF', 'goog.i18n.NumberFormatSymbols_ff', 'goog.i18n.NumberFormatSymbols_ff_CM', 'goog.i18n.NumberFormatSymbols_ff_GN', 'goog.i18n.NumberFormatSymbols_ff_MR', 'goog.i18n.NumberFormatSymbols_ff_SN', 'goog.i18n.NumberFormatSymbols_fo', 'goog.i18n.NumberFormatSymbols_fo_FO', 'goog.i18n.NumberFormatSymbols_fr_BE', 'goog.i18n.NumberFormatSymbols_fr_BF', 'goog.i18n.NumberFormatSymbols_fr_BI', 'goog.i18n.NumberFormatSymbols_fr_BJ', 'goog.i18n.NumberFormatSymbols_fr_CD', 'goog.i18n.NumberFormatSymbols_fr_CF', 'goog.i18n.NumberFormatSymbols_fr_CG', 'goog.i18n.NumberFormatSymbols_fr_CH', 'goog.i18n.NumberFormatSymbols_fr_CI', 'goog.i18n.NumberFormatSymbols_fr_CM', 'goog.i18n.NumberFormatSymbols_fr_DJ', 'goog.i18n.NumberFormatSymbols_fr_DZ', 'goog.i18n.NumberFormatSymbols_fr_GA', 'goog.i18n.NumberFormatSymbols_fr_GN', 'goog.i18n.NumberFormatSymbols_fr_GQ', 'goog.i18n.NumberFormatSymbols_fr_HT', 'goog.i18n.NumberFormatSymbols_fr_KM', 'goog.i18n.NumberFormatSymbols_fr_LU', 'goog.i18n.NumberFormatSymbols_fr_MA', 'goog.i18n.NumberFormatSymbols_fr_MG', 'goog.i18n.NumberFormatSymbols_fr_ML', 'goog.i18n.NumberFormatSymbols_fr_MR', 'goog.i18n.NumberFormatSymbols_fr_MU', 'goog.i18n.NumberFormatSymbols_fr_NC', 'goog.i18n.NumberFormatSymbols_fr_NE', 'goog.i18n.NumberFormatSymbols_fr_PF', 'goog.i18n.NumberFormatSymbols_fr_RW', 'goog.i18n.NumberFormatSymbols_fr_SC', 'goog.i18n.NumberFormatSymbols_fr_SN', 'goog.i18n.NumberFormatSymbols_fr_SY', 'goog.i18n.NumberFormatSymbols_fr_TD', 'goog.i18n.NumberFormatSymbols_fr_TG', 'goog.i18n.NumberFormatSymbols_fr_TN', 'goog.i18n.NumberFormatSymbols_fr_VU', 'goog.i18n.NumberFormatSymbols_fr_WF', 'goog.i18n.NumberFormatSymbols_fur', 'goog.i18n.NumberFormatSymbols_fur_IT', 'goog.i18n.NumberFormatSymbols_fy', 'goog.i18n.NumberFormatSymbols_fy_NL', 'goog.i18n.NumberFormatSymbols_gd', 'goog.i18n.NumberFormatSymbols_gd_GB', 'goog.i18n.NumberFormatSymbols_gsw_FR', 'goog.i18n.NumberFormatSymbols_guz', 'goog.i18n.NumberFormatSymbols_guz_KE', 'goog.i18n.NumberFormatSymbols_gv', 'goog.i18n.NumberFormatSymbols_gv_IM', 'goog.i18n.NumberFormatSymbols_ha', 'goog.i18n.NumberFormatSymbols_ha_Latn', 'goog.i18n.NumberFormatSymbols_ha_Latn_GH', 'goog.i18n.NumberFormatSymbols_ha_Latn_NE', 'goog.i18n.NumberFormatSymbols_ha_Latn_NG', 'goog.i18n.NumberFormatSymbols_hr_BA', 'goog.i18n.NumberFormatSymbols_hsb', 'goog.i18n.NumberFormatSymbols_hsb_DE', 'goog.i18n.NumberFormatSymbols_ia', 'goog.i18n.NumberFormatSymbols_ia_FR', 'goog.i18n.NumberFormatSymbols_ig', 'goog.i18n.NumberFormatSymbols_ig_NG', 'goog.i18n.NumberFormatSymbols_ii', 'goog.i18n.NumberFormatSymbols_ii_CN', 'goog.i18n.NumberFormatSymbols_it_CH', 'goog.i18n.NumberFormatSymbols_jgo', 'goog.i18n.NumberFormatSymbols_jgo_CM', 'goog.i18n.NumberFormatSymbols_jmc', 'goog.i18n.NumberFormatSymbols_jmc_TZ', 'goog.i18n.NumberFormatSymbols_kab', 'goog.i18n.NumberFormatSymbols_kab_DZ', 'goog.i18n.NumberFormatSymbols_kam', 'goog.i18n.NumberFormatSymbols_kam_KE', 'goog.i18n.NumberFormatSymbols_kde', 'goog.i18n.NumberFormatSymbols_kde_TZ', 'goog.i18n.NumberFormatSymbols_kea', 'goog.i18n.NumberFormatSymbols_kea_CV', 'goog.i18n.NumberFormatSymbols_khq', 'goog.i18n.NumberFormatSymbols_khq_ML', 'goog.i18n.NumberFormatSymbols_ki', 'goog.i18n.NumberFormatSymbols_ki_KE', 'goog.i18n.NumberFormatSymbols_kk_Cyrl', 'goog.i18n.NumberFormatSymbols_kkj', 'goog.i18n.NumberFormatSymbols_kkj_CM', 'goog.i18n.NumberFormatSymbols_kl', 'goog.i18n.NumberFormatSymbols_kl_GL', 'goog.i18n.NumberFormatSymbols_kln', 'goog.i18n.NumberFormatSymbols_kln_KE', 'goog.i18n.NumberFormatSymbols_ko_KP', 'goog.i18n.NumberFormatSymbols_kok', 'goog.i18n.NumberFormatSymbols_kok_IN', 'goog.i18n.NumberFormatSymbols_ks', 'goog.i18n.NumberFormatSymbols_ks_Arab', 'goog.i18n.NumberFormatSymbols_ks_Arab_IN', 'goog.i18n.NumberFormatSymbols_ksb', 'goog.i18n.NumberFormatSymbols_ksb_TZ', 'goog.i18n.NumberFormatSymbols_ksf', 'goog.i18n.NumberFormatSymbols_ksf_CM', 'goog.i18n.NumberFormatSymbols_ksh', 'goog.i18n.NumberFormatSymbols_ksh_DE', 'goog.i18n.NumberFormatSymbols_kw', 'goog.i18n.NumberFormatSymbols_kw_GB', 'goog.i18n.NumberFormatSymbols_ky_Cyrl', 'goog.i18n.NumberFormatSymbols_lag', 'goog.i18n.NumberFormatSymbols_lag_TZ', 'goog.i18n.NumberFormatSymbols_lb', 'goog.i18n.NumberFormatSymbols_lb_LU', 'goog.i18n.NumberFormatSymbols_lg', 'goog.i18n.NumberFormatSymbols_lg_UG', 'goog.i18n.NumberFormatSymbols_lkt', 'goog.i18n.NumberFormatSymbols_lkt_US', 'goog.i18n.NumberFormatSymbols_ln_AO', 'goog.i18n.NumberFormatSymbols_ln_CF', 'goog.i18n.NumberFormatSymbols_ln_CG', 'goog.i18n.NumberFormatSymbols_lu', 'goog.i18n.NumberFormatSymbols_lu_CD', 'goog.i18n.NumberFormatSymbols_luo', 'goog.i18n.NumberFormatSymbols_luo_KE', 'goog.i18n.NumberFormatSymbols_luy', 'goog.i18n.NumberFormatSymbols_luy_KE', 'goog.i18n.NumberFormatSymbols_mas', 'goog.i18n.NumberFormatSymbols_mas_KE', 'goog.i18n.NumberFormatSymbols_mas_TZ', 'goog.i18n.NumberFormatSymbols_mer', 'goog.i18n.NumberFormatSymbols_mer_KE', 'goog.i18n.NumberFormatSymbols_mfe', 'goog.i18n.NumberFormatSymbols_mfe_MU', 'goog.i18n.NumberFormatSymbols_mg', 'goog.i18n.NumberFormatSymbols_mg_MG', 'goog.i18n.NumberFormatSymbols_mgh', 'goog.i18n.NumberFormatSymbols_mgh_MZ', 'goog.i18n.NumberFormatSymbols_mgo', 'goog.i18n.NumberFormatSymbols_mgo_CM', 'goog.i18n.NumberFormatSymbols_mn_Cyrl', 'goog.i18n.NumberFormatSymbols_ms_Latn', 'goog.i18n.NumberFormatSymbols_ms_Latn_BN', 'goog.i18n.NumberFormatSymbols_ms_Latn_SG', 'goog.i18n.NumberFormatSymbols_mua', 'goog.i18n.NumberFormatSymbols_mua_CM', 'goog.i18n.NumberFormatSymbols_naq', 'goog.i18n.NumberFormatSymbols_naq_NA', 'goog.i18n.NumberFormatSymbols_nd', 'goog.i18n.NumberFormatSymbols_nd_ZW', 'goog.i18n.NumberFormatSymbols_ne_IN', 'goog.i18n.NumberFormatSymbols_nl_AW', 'goog.i18n.NumberFormatSymbols_nl_BE', 'goog.i18n.NumberFormatSymbols_nl_BQ', 'goog.i18n.NumberFormatSymbols_nl_CW', 'goog.i18n.NumberFormatSymbols_nl_SR', 'goog.i18n.NumberFormatSymbols_nl_SX', 'goog.i18n.NumberFormatSymbols_nmg', 'goog.i18n.NumberFormatSymbols_nmg_CM', 'goog.i18n.NumberFormatSymbols_nn', 'goog.i18n.NumberFormatSymbols_nn_NO', 'goog.i18n.NumberFormatSymbols_nnh', 'goog.i18n.NumberFormatSymbols_nnh_CM', 'goog.i18n.NumberFormatSymbols_nr', 'goog.i18n.NumberFormatSymbols_nr_ZA', 'goog.i18n.NumberFormatSymbols_nso', 'goog.i18n.NumberFormatSymbols_nso_ZA', 'goog.i18n.NumberFormatSymbols_nus', 'goog.i18n.NumberFormatSymbols_nus_SD', 'goog.i18n.NumberFormatSymbols_nyn', 'goog.i18n.NumberFormatSymbols_nyn_UG', 'goog.i18n.NumberFormatSymbols_om', 'goog.i18n.NumberFormatSymbols_om_ET', 'goog.i18n.NumberFormatSymbols_om_KE', 'goog.i18n.NumberFormatSymbols_os', 'goog.i18n.NumberFormatSymbols_os_GE', 'goog.i18n.NumberFormatSymbols_os_RU', 'goog.i18n.NumberFormatSymbols_pa_Arab', 'goog.i18n.NumberFormatSymbols_pa_Arab_PK', 'goog.i18n.NumberFormatSymbols_pa_Guru', 'goog.i18n.NumberFormatSymbols_ps', 'goog.i18n.NumberFormatSymbols_ps_AF', 'goog.i18n.NumberFormatSymbols_pt_AO', 'goog.i18n.NumberFormatSymbols_pt_CV', 'goog.i18n.NumberFormatSymbols_pt_GW', 'goog.i18n.NumberFormatSymbols_pt_MO', 'goog.i18n.NumberFormatSymbols_pt_MZ', 'goog.i18n.NumberFormatSymbols_pt_ST', 'goog.i18n.NumberFormatSymbols_pt_TL', 'goog.i18n.NumberFormatSymbols_qu', 'goog.i18n.NumberFormatSymbols_qu_BO', 'goog.i18n.NumberFormatSymbols_qu_EC', 'goog.i18n.NumberFormatSymbols_qu_PE', 'goog.i18n.NumberFormatSymbols_rm', 'goog.i18n.NumberFormatSymbols_rm_CH', 'goog.i18n.NumberFormatSymbols_rn', 'goog.i18n.NumberFormatSymbols_rn_BI', 'goog.i18n.NumberFormatSymbols_ro_MD', 'goog.i18n.NumberFormatSymbols_rof', 'goog.i18n.NumberFormatSymbols_rof_TZ', 'goog.i18n.NumberFormatSymbols_ru_BY', 'goog.i18n.NumberFormatSymbols_ru_KG', 'goog.i18n.NumberFormatSymbols_ru_KZ', 'goog.i18n.NumberFormatSymbols_ru_MD', 'goog.i18n.NumberFormatSymbols_ru_UA', 'goog.i18n.NumberFormatSymbols_rw', 'goog.i18n.NumberFormatSymbols_rw_RW', 'goog.i18n.NumberFormatSymbols_rwk', 'goog.i18n.NumberFormatSymbols_rwk_TZ', 'goog.i18n.NumberFormatSymbols_sah', 'goog.i18n.NumberFormatSymbols_sah_RU', 'goog.i18n.NumberFormatSymbols_saq', 'goog.i18n.NumberFormatSymbols_saq_KE', 'goog.i18n.NumberFormatSymbols_sbp', 'goog.i18n.NumberFormatSymbols_sbp_TZ', 'goog.i18n.NumberFormatSymbols_se', 'goog.i18n.NumberFormatSymbols_se_FI', 'goog.i18n.NumberFormatSymbols_se_NO', 'goog.i18n.NumberFormatSymbols_se_SE', 'goog.i18n.NumberFormatSymbols_seh', 'goog.i18n.NumberFormatSymbols_seh_MZ', 'goog.i18n.NumberFormatSymbols_ses', 'goog.i18n.NumberFormatSymbols_ses_ML', 'goog.i18n.NumberFormatSymbols_sg', 'goog.i18n.NumberFormatSymbols_sg_CF', 'goog.i18n.NumberFormatSymbols_shi', 'goog.i18n.NumberFormatSymbols_shi_Latn', 'goog.i18n.NumberFormatSymbols_shi_Latn_MA', 'goog.i18n.NumberFormatSymbols_shi_Tfng', 'goog.i18n.NumberFormatSymbols_shi_Tfng_MA', 'goog.i18n.NumberFormatSymbols_smn', 'goog.i18n.NumberFormatSymbols_smn_FI', 'goog.i18n.NumberFormatSymbols_sn', 'goog.i18n.NumberFormatSymbols_sn_ZW', 'goog.i18n.NumberFormatSymbols_so', 'goog.i18n.NumberFormatSymbols_so_DJ', 'goog.i18n.NumberFormatSymbols_so_ET', 'goog.i18n.NumberFormatSymbols_so_KE', 'goog.i18n.NumberFormatSymbols_so_SO', 'goog.i18n.NumberFormatSymbols_sq_MK', 'goog.i18n.NumberFormatSymbols_sq_XK', 'goog.i18n.NumberFormatSymbols_sr_Cyrl', 'goog.i18n.NumberFormatSymbols_sr_Cyrl_BA', 'goog.i18n.NumberFormatSymbols_sr_Cyrl_ME', 'goog.i18n.NumberFormatSymbols_sr_Cyrl_XK', 'goog.i18n.NumberFormatSymbols_sr_Latn', 'goog.i18n.NumberFormatSymbols_sr_Latn_BA', 'goog.i18n.NumberFormatSymbols_sr_Latn_ME', 'goog.i18n.NumberFormatSymbols_sr_Latn_RS', 'goog.i18n.NumberFormatSymbols_sr_Latn_XK', 'goog.i18n.NumberFormatSymbols_ss', 'goog.i18n.NumberFormatSymbols_ss_SZ', 'goog.i18n.NumberFormatSymbols_ss_ZA', 'goog.i18n.NumberFormatSymbols_ssy', 'goog.i18n.NumberFormatSymbols_ssy_ER', 'goog.i18n.NumberFormatSymbols_sv_AX', 'goog.i18n.NumberFormatSymbols_sv_FI', 'goog.i18n.NumberFormatSymbols_sw_KE', 'goog.i18n.NumberFormatSymbols_sw_UG', 'goog.i18n.NumberFormatSymbols_swc', 'goog.i18n.NumberFormatSymbols_swc_CD', 'goog.i18n.NumberFormatSymbols_ta_LK', 'goog.i18n.NumberFormatSymbols_ta_MY', 'goog.i18n.NumberFormatSymbols_ta_SG', 'goog.i18n.NumberFormatSymbols_teo', 'goog.i18n.NumberFormatSymbols_teo_KE', 'goog.i18n.NumberFormatSymbols_teo_UG', 'goog.i18n.NumberFormatSymbols_ti', 'goog.i18n.NumberFormatSymbols_ti_ER', 'goog.i18n.NumberFormatSymbols_ti_ET', 'goog.i18n.NumberFormatSymbols_tn', 'goog.i18n.NumberFormatSymbols_tn_BW', 'goog.i18n.NumberFormatSymbols_tn_ZA', 'goog.i18n.NumberFormatSymbols_to', 'goog.i18n.NumberFormatSymbols_to_TO', 'goog.i18n.NumberFormatSymbols_tr_CY', 'goog.i18n.NumberFormatSymbols_ts', 'goog.i18n.NumberFormatSymbols_ts_ZA', 'goog.i18n.NumberFormatSymbols_twq', 'goog.i18n.NumberFormatSymbols_twq_NE', 'goog.i18n.NumberFormatSymbols_tzm', 'goog.i18n.NumberFormatSymbols_tzm_Latn', 'goog.i18n.NumberFormatSymbols_tzm_Latn_MA', 'goog.i18n.NumberFormatSymbols_ug', 'goog.i18n.NumberFormatSymbols_ug_Arab', 'goog.i18n.NumberFormatSymbols_ug_Arab_CN', 'goog.i18n.NumberFormatSymbols_ur_IN', 'goog.i18n.NumberFormatSymbols_uz_Arab', 'goog.i18n.NumberFormatSymbols_uz_Arab_AF', 'goog.i18n.NumberFormatSymbols_uz_Cyrl', 'goog.i18n.NumberFormatSymbols_uz_Cyrl_UZ', 'goog.i18n.NumberFormatSymbols_uz_Latn', 'goog.i18n.NumberFormatSymbols_vai', 'goog.i18n.NumberFormatSymbols_vai_Latn', 'goog.i18n.NumberFormatSymbols_vai_Latn_LR', 'goog.i18n.NumberFormatSymbols_vai_Vaii', 'goog.i18n.NumberFormatSymbols_vai_Vaii_LR', 'goog.i18n.NumberFormatSymbols_ve', 'goog.i18n.NumberFormatSymbols_ve_ZA', 'goog.i18n.NumberFormatSymbols_vo', 'goog.i18n.NumberFormatSymbols_vo_001', 'goog.i18n.NumberFormatSymbols_vun', 'goog.i18n.NumberFormatSymbols_vun_TZ', 'goog.i18n.NumberFormatSymbols_wae', 'goog.i18n.NumberFormatSymbols_wae_CH', 'goog.i18n.NumberFormatSymbols_xog', 'goog.i18n.NumberFormatSymbols_xog_UG', 'goog.i18n.NumberFormatSymbols_yav', 'goog.i18n.NumberFormatSymbols_yav_CM', 'goog.i18n.NumberFormatSymbols_yi', 'goog.i18n.NumberFormatSymbols_yi_001', 'goog.i18n.NumberFormatSymbols_yo', 'goog.i18n.NumberFormatSymbols_yo_BJ', 'goog.i18n.NumberFormatSymbols_yo_NG', 'goog.i18n.NumberFormatSymbols_zgh', 'goog.i18n.NumberFormatSymbols_zgh_MA', 'goog.i18n.NumberFormatSymbols_zh_Hans', 'goog.i18n.NumberFormatSymbols_zh_Hans_HK', 'goog.i18n.NumberFormatSymbols_zh_Hans_MO', 'goog.i18n.NumberFormatSymbols_zh_Hans_SG', 'goog.i18n.NumberFormatSymbols_zh_Hant', 'goog.i18n.NumberFormatSymbols_zh_Hant_HK', 'goog.i18n.NumberFormatSymbols_zh_Hant_MO', 'goog.i18n.NumberFormatSymbols_zh_Hant_TW'], ['goog.i18n.NumberFormatSymbols'], false); >+goog.addDependency('i18n/ordinalrules.js', ['goog.i18n.ordinalRules'], [], false); >+goog.addDependency('i18n/pluralrules.js', ['goog.i18n.pluralRules'], [], false); >+goog.addDependency('i18n/pluralrules_test.js', ['goog.i18n.pluralRulesTest'], ['goog.i18n.pluralRules', 'goog.testing.jsunit'], false); >+goog.addDependency('i18n/timezone.js', ['goog.i18n.TimeZone'], ['goog.array', 'goog.date.DateLike', 'goog.string'], false); >+goog.addDependency('i18n/timezone_test.js', ['goog.i18n.TimeZoneTest'], ['goog.i18n.TimeZone', 'goog.testing.jsunit'], false); >+goog.addDependency('i18n/uchar.js', ['goog.i18n.uChar'], [], false); >+goog.addDependency('i18n/uchar/localnamefetcher.js', ['goog.i18n.uChar.LocalNameFetcher'], ['goog.i18n.uChar', 'goog.i18n.uChar.NameFetcher', 'goog.log'], false); >+goog.addDependency('i18n/uchar/localnamefetcher_test.js', ['goog.i18n.uChar.LocalNameFetcherTest'], ['goog.i18n.uChar.LocalNameFetcher', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('i18n/uchar/namefetcher.js', ['goog.i18n.uChar.NameFetcher'], [], false); >+goog.addDependency('i18n/uchar/remotenamefetcher.js', ['goog.i18n.uChar.RemoteNameFetcher'], ['goog.Disposable', 'goog.Uri', 'goog.i18n.uChar', 'goog.i18n.uChar.NameFetcher', 'goog.log', 'goog.net.XhrIo', 'goog.structs.Map'], false); >+goog.addDependency('i18n/uchar/remotenamefetcher_test.js', ['goog.i18n.uChar.RemoteNameFetcherTest'], ['goog.i18n.uChar.RemoteNameFetcher', 'goog.net.XhrIo', 'goog.testing.jsunit', 'goog.testing.net.XhrIo', 'goog.testing.recordFunction'], false); >+goog.addDependency('i18n/uchar_test.js', ['goog.i18n.uCharTest'], ['goog.i18n.uChar', 'goog.testing.jsunit'], false); >+goog.addDependency('iter/iter.js', ['goog.iter', 'goog.iter.Iterable', 'goog.iter.Iterator', 'goog.iter.StopIteration'], ['goog.array', 'goog.asserts', 'goog.functions', 'goog.math'], false); >+goog.addDependency('iter/iter_test.js', ['goog.iterTest'], ['goog.iter', 'goog.iter.Iterator', 'goog.iter.StopIteration', 'goog.testing.jsunit'], false); >+goog.addDependency('json/evaljsonprocessor.js', ['goog.json.EvalJsonProcessor'], ['goog.json', 'goog.json.Processor', 'goog.json.Serializer'], false); >+goog.addDependency('json/hybrid.js', ['goog.json.hybrid'], ['goog.asserts', 'goog.json'], false); >+goog.addDependency('json/hybrid_test.js', ['goog.json.hybridTest'], ['goog.json', 'goog.json.hybrid', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.userAgent'], false); >+goog.addDependency('json/hybridjsonprocessor.js', ['goog.json.HybridJsonProcessor'], ['goog.json.Processor', 'goog.json.hybrid'], false); >+goog.addDependency('json/hybridjsonprocessor_test.js', ['goog.json.HybridJsonProcessorTest'], ['goog.json.HybridJsonProcessor', 'goog.json.hybrid', 'goog.testing.jsunit'], false); >+goog.addDependency('json/json.js', ['goog.json', 'goog.json.Replacer', 'goog.json.Reviver', 'goog.json.Serializer'], [], false); >+goog.addDependency('json/json_perf.js', ['goog.jsonPerf'], ['goog.dom', 'goog.json', 'goog.math', 'goog.string', 'goog.testing.PerformanceTable', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], false); >+goog.addDependency('json/json_test.js', ['goog.jsonTest'], ['goog.functions', 'goog.json', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('json/nativejsonprocessor.js', ['goog.json.NativeJsonProcessor'], ['goog.asserts', 'goog.json.Processor'], false); >+goog.addDependency('json/processor.js', ['goog.json.Processor'], ['goog.string.Parser', 'goog.string.Stringifier'], false); >+goog.addDependency('json/processor_test.js', ['goog.json.processorTest'], ['goog.json.EvalJsonProcessor', 'goog.json.NativeJsonProcessor', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('labs/dom/pagevisibilitymonitor.js', ['goog.labs.dom.PageVisibilityEvent', 'goog.labs.dom.PageVisibilityMonitor', 'goog.labs.dom.PageVisibilityState'], ['goog.dom', 'goog.dom.vendor', 'goog.events', 'goog.events.Event', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.memoize'], false); >+goog.addDependency('labs/dom/pagevisibilitymonitor_test.js', ['goog.labs.dom.PageVisibilityMonitorTest'], ['goog.events', 'goog.functions', 'goog.labs.dom.PageVisibilityMonitor', 'goog.testing.PropertyReplacer', 'goog.testing.events', 'goog.testing.events.Event', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('labs/events/nondisposableeventtarget.js', ['goog.labs.events.NonDisposableEventTarget'], ['goog.array', 'goog.asserts', 'goog.events.Event', 'goog.events.Listenable', 'goog.events.ListenerMap', 'goog.object'], false); >+goog.addDependency('labs/events/nondisposableeventtarget_test.js', ['goog.labs.events.NonDisposableEventTargetTest'], ['goog.events.Listenable', 'goog.events.eventTargetTester', 'goog.events.eventTargetTester.KeyType', 'goog.events.eventTargetTester.UnlistenReturnType', 'goog.labs.events.NonDisposableEventTarget', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/events/nondisposableeventtarget_via_googevents_test.js', ['goog.labs.events.NonDisposableEventTargetGoogEventsTest'], ['goog.events', 'goog.events.eventTargetTester', 'goog.events.eventTargetTester.KeyType', 'goog.events.eventTargetTester.UnlistenReturnType', 'goog.labs.events.NonDisposableEventTarget', 'goog.testing', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/events/touch.js', ['goog.labs.events.touch', 'goog.labs.events.touch.TouchData'], ['goog.array', 'goog.asserts', 'goog.events.EventType', 'goog.string'], false); >+goog.addDependency('labs/events/touch_test.js', ['goog.labs.events.touchTest'], ['goog.labs.events.touch', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/format/csv.js', ['goog.labs.format.csv', 'goog.labs.format.csv.ParseError', 'goog.labs.format.csv.Token'], ['goog.array', 'goog.asserts', 'goog.debug.Error', 'goog.object', 'goog.string', 'goog.string.newlines'], false); >+goog.addDependency('labs/format/csv_test.js', ['goog.labs.format.csvTest'], ['goog.labs.format.csv', 'goog.labs.format.csv.ParseError', 'goog.object', 'goog.testing.asserts', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/html/attribute_rewriter.js', ['goog.labs.html.AttributeRewriter', 'goog.labs.html.AttributeValue', 'goog.labs.html.attributeRewriterPresubmitWorkaround'], [], false); >+goog.addDependency('labs/html/sanitizer.js', ['goog.labs.html.Sanitizer'], ['goog.asserts', 'goog.html.SafeUrl', 'goog.labs.html.attributeRewriterPresubmitWorkaround', 'goog.labs.html.scrubber', 'goog.object', 'goog.string'], false); >+goog.addDependency('labs/html/sanitizer_test.js', ['goog.labs.html.SanitizerTest'], ['goog.html.SafeUrl', 'goog.labs.html.Sanitizer', 'goog.string', 'goog.string.Const', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/html/scrubber.js', ['goog.labs.html.scrubber'], ['goog.array', 'goog.dom.tags', 'goog.labs.html.attributeRewriterPresubmitWorkaround', 'goog.string'], false); >+goog.addDependency('labs/html/scrubber_test.js', ['goog.html.ScrubberTest'], ['goog.labs.html.scrubber', 'goog.object', 'goog.string', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/i18n/listformat.js', ['goog.labs.i18n.GenderInfo', 'goog.labs.i18n.GenderInfo.Gender', 'goog.labs.i18n.ListFormat'], ['goog.asserts', 'goog.labs.i18n.ListFormatSymbols'], false); >+goog.addDependency('labs/i18n/listformat_test.js', ['goog.labs.i18n.ListFormatTest'], ['goog.labs.i18n.GenderInfo', 'goog.labs.i18n.ListFormat', 'goog.labs.i18n.ListFormatSymbols', 'goog.labs.i18n.ListFormatSymbols_el', 'goog.labs.i18n.ListFormatSymbols_en', 'goog.labs.i18n.ListFormatSymbols_fr', 'goog.labs.i18n.ListFormatSymbols_ml', 'goog.labs.i18n.ListFormatSymbols_zu', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/i18n/listsymbols.js', ['goog.labs.i18n.ListFormatSymbols', 'goog.labs.i18n.ListFormatSymbols_af', 'goog.labs.i18n.ListFormatSymbols_am', 'goog.labs.i18n.ListFormatSymbols_ar', 'goog.labs.i18n.ListFormatSymbols_az', 'goog.labs.i18n.ListFormatSymbols_bg', 'goog.labs.i18n.ListFormatSymbols_bn', 'goog.labs.i18n.ListFormatSymbols_br', 'goog.labs.i18n.ListFormatSymbols_ca', 'goog.labs.i18n.ListFormatSymbols_chr', 'goog.labs.i18n.ListFormatSymbols_cs', 'goog.labs.i18n.ListFormatSymbols_cy', 'goog.labs.i18n.ListFormatSymbols_da', 'goog.labs.i18n.ListFormatSymbols_de', 'goog.labs.i18n.ListFormatSymbols_de_AT', 'goog.labs.i18n.ListFormatSymbols_de_CH', 'goog.labs.i18n.ListFormatSymbols_el', 'goog.labs.i18n.ListFormatSymbols_en', 'goog.labs.i18n.ListFormatSymbols_en_AU', 'goog.labs.i18n.ListFormatSymbols_en_GB', 'goog.labs.i18n.ListFormatSymbols_en_IE', 'goog.labs.i18n.ListFormatSymbols_en_IN', 'goog.labs.i18n.ListFormatSymbols_en_SG', 'goog.labs.i18n.ListFormatSymbols_en_US', 'goog.labs.i18n.ListFormatSymbols_en_ZA', 'goog.labs.i18n.ListFormatSymbols_es', 'goog.labs.i18n.ListFormatSymbols_es_419', 'goog.labs.i18n.ListFormatSymbols_es_ES', 'goog.labs.i18n.ListFormatSymbols_et', 'goog.labs.i18n.ListFormatSymbols_eu', 'goog.labs.i18n.ListFormatSymbols_fa', 'goog.labs.i18n.ListFormatSymbols_fi', 'goog.labs.i18n.ListFormatSymbols_fil', 'goog.labs.i18n.ListFormatSymbols_fr', 'goog.labs.i18n.ListFormatSymbols_fr_CA', 'goog.labs.i18n.ListFormatSymbols_ga', 'goog.labs.i18n.ListFormatSymbols_gl', 'goog.labs.i18n.ListFormatSymbols_gsw', 'goog.labs.i18n.ListFormatSymbols_gu', 'goog.labs.i18n.ListFormatSymbols_haw', 'goog.labs.i18n.ListFormatSymbols_he', 'goog.labs.i18n.ListFormatSymbols_hi', 'goog.labs.i18n.ListFormatSymbols_hr', 'goog.labs.i18n.ListFormatSymbols_hu', 'goog.labs.i18n.ListFormatSymbols_hy', 'goog.labs.i18n.ListFormatSymbols_id', 'goog.labs.i18n.ListFormatSymbols_in', 'goog.labs.i18n.ListFormatSymbols_is', 'goog.labs.i18n.ListFormatSymbols_it', 'goog.labs.i18n.ListFormatSymbols_iw', 'goog.labs.i18n.ListFormatSymbols_ja', 'goog.labs.i18n.ListFormatSymbols_ka', 'goog.labs.i18n.ListFormatSymbols_kk', 'goog.labs.i18n.ListFormatSymbols_km', 'goog.labs.i18n.ListFormatSymbols_kn', 'goog.labs.i18n.ListFormatSymbols_ko', 'goog.labs.i18n.ListFormatSymbols_ky', 'goog.labs.i18n.ListFormatSymbols_ln', 'goog.labs.i18n.ListFormatSymbols_lo', 'goog.labs.i18n.ListFormatSymbols_lt', 'goog.labs.i18n.ListFormatSymbols_lv', 'goog.labs.i18n.ListFormatSymbols_mk', 'goog.labs.i18n.ListFormatSymbols_ml', 'goog.labs.i18n.ListFormatSymbols_mn', 'goog.labs.i18n.ListFormatSymbols_mo', 'goog.labs.i18n.ListFormatSymbols_mr', 'goog.labs.i18n.ListFormatSymbols_ms', 'goog.labs.i18n.ListFormatSymbols_mt', 'goog.labs.i18n.ListFormatSymbols_my', 'goog.labs.i18n.ListFormatSymbols_nb', 'goog.labs.i18n.ListFormatSymbols_ne', 'goog.labs.i18n.ListFormatSymbols_nl', 'goog.labs.i18n.ListFormatSymbols_no', 'goog.labs.i18n.ListFormatSymbols_no_NO', 'goog.labs.i18n.ListFormatSymbols_or', 'goog.labs.i18n.ListFormatSymbols_pa', 'goog.labs.i18n.ListFormatSymbols_pl', 'goog.labs.i18n.ListFormatSymbols_pt', 'goog.labs.i18n.ListFormatSymbols_pt_BR', 'goog.labs.i18n.ListFormatSymbols_pt_PT', 'goog.labs.i18n.ListFormatSymbols_ro', 'goog.labs.i18n.ListFormatSymbols_ru', 'goog.labs.i18n.ListFormatSymbols_sh', 'goog.labs.i18n.ListFormatSymbols_si', 'goog.labs.i18n.ListFormatSymbols_sk', 'goog.labs.i18n.ListFormatSymbols_sl', 'goog.labs.i18n.ListFormatSymbols_sq', 'goog.labs.i18n.ListFormatSymbols_sr', 'goog.labs.i18n.ListFormatSymbols_sv', 'goog.labs.i18n.ListFormatSymbols_sw', 'goog.labs.i18n.ListFormatSymbols_ta', 'goog.labs.i18n.ListFormatSymbols_te', 'goog.labs.i18n.ListFormatSymbols_th', 'goog.labs.i18n.ListFormatSymbols_tl', 'goog.labs.i18n.ListFormatSymbols_tr', 'goog.labs.i18n.ListFormatSymbols_uk', 'goog.labs.i18n.ListFormatSymbols_ur', 'goog.labs.i18n.ListFormatSymbols_uz', 'goog.labs.i18n.ListFormatSymbols_vi', 'goog.labs.i18n.ListFormatSymbols_zh', 'goog.labs.i18n.ListFormatSymbols_zh_CN', 'goog.labs.i18n.ListFormatSymbols_zh_HK', 'goog.labs.i18n.ListFormatSymbols_zh_TW', 'goog.labs.i18n.ListFormatSymbols_zu'], [], false); >+goog.addDependency('labs/i18n/listsymbolsext.js', ['goog.labs.i18n.ListFormatSymbolsExt', 'goog.labs.i18n.ListFormatSymbols_af_NA', 'goog.labs.i18n.ListFormatSymbols_af_ZA', 'goog.labs.i18n.ListFormatSymbols_agq', 'goog.labs.i18n.ListFormatSymbols_agq_CM', 'goog.labs.i18n.ListFormatSymbols_ak', 'goog.labs.i18n.ListFormatSymbols_ak_GH', 'goog.labs.i18n.ListFormatSymbols_am_ET', 'goog.labs.i18n.ListFormatSymbols_ar_001', 'goog.labs.i18n.ListFormatSymbols_ar_AE', 'goog.labs.i18n.ListFormatSymbols_ar_BH', 'goog.labs.i18n.ListFormatSymbols_ar_DJ', 'goog.labs.i18n.ListFormatSymbols_ar_DZ', 'goog.labs.i18n.ListFormatSymbols_ar_EG', 'goog.labs.i18n.ListFormatSymbols_ar_EH', 'goog.labs.i18n.ListFormatSymbols_ar_ER', 'goog.labs.i18n.ListFormatSymbols_ar_IL', 'goog.labs.i18n.ListFormatSymbols_ar_IQ', 'goog.labs.i18n.ListFormatSymbols_ar_JO', 'goog.labs.i18n.ListFormatSymbols_ar_KM', 'goog.labs.i18n.ListFormatSymbols_ar_KW', 'goog.labs.i18n.ListFormatSymbols_ar_LB', 'goog.labs.i18n.ListFormatSymbols_ar_LY', 'goog.labs.i18n.ListFormatSymbols_ar_MA', 'goog.labs.i18n.ListFormatSymbols_ar_MR', 'goog.labs.i18n.ListFormatSymbols_ar_OM', 'goog.labs.i18n.ListFormatSymbols_ar_PS', 'goog.labs.i18n.ListFormatSymbols_ar_QA', 'goog.labs.i18n.ListFormatSymbols_ar_SA', 'goog.labs.i18n.ListFormatSymbols_ar_SD', 'goog.labs.i18n.ListFormatSymbols_ar_SO', 'goog.labs.i18n.ListFormatSymbols_ar_SS', 'goog.labs.i18n.ListFormatSymbols_ar_SY', 'goog.labs.i18n.ListFormatSymbols_ar_TD', 'goog.labs.i18n.ListFormatSymbols_ar_TN', 'goog.labs.i18n.ListFormatSymbols_ar_YE', 'goog.labs.i18n.ListFormatSymbols_as', 'goog.labs.i18n.ListFormatSymbols_as_IN', 'goog.labs.i18n.ListFormatSymbols_asa', 'goog.labs.i18n.ListFormatSymbols_asa_TZ', 'goog.labs.i18n.ListFormatSymbols_az_Cyrl', 'goog.labs.i18n.ListFormatSymbols_az_Cyrl_AZ', 'goog.labs.i18n.ListFormatSymbols_az_Latn', 'goog.labs.i18n.ListFormatSymbols_az_Latn_AZ', 'goog.labs.i18n.ListFormatSymbols_bas', 'goog.labs.i18n.ListFormatSymbols_bas_CM', 'goog.labs.i18n.ListFormatSymbols_be', 'goog.labs.i18n.ListFormatSymbols_be_BY', 'goog.labs.i18n.ListFormatSymbols_bem', 'goog.labs.i18n.ListFormatSymbols_bem_ZM', 'goog.labs.i18n.ListFormatSymbols_bez', 'goog.labs.i18n.ListFormatSymbols_bez_TZ', 'goog.labs.i18n.ListFormatSymbols_bg_BG', 'goog.labs.i18n.ListFormatSymbols_bm', 'goog.labs.i18n.ListFormatSymbols_bm_Latn', 'goog.labs.i18n.ListFormatSymbols_bm_Latn_ML', 'goog.labs.i18n.ListFormatSymbols_bn_BD', 'goog.labs.i18n.ListFormatSymbols_bn_IN', 'goog.labs.i18n.ListFormatSymbols_bo', 'goog.labs.i18n.ListFormatSymbols_bo_CN', 'goog.labs.i18n.ListFormatSymbols_bo_IN', 'goog.labs.i18n.ListFormatSymbols_br_FR', 'goog.labs.i18n.ListFormatSymbols_brx', 'goog.labs.i18n.ListFormatSymbols_brx_IN', 'goog.labs.i18n.ListFormatSymbols_bs', 'goog.labs.i18n.ListFormatSymbols_bs_Cyrl', 'goog.labs.i18n.ListFormatSymbols_bs_Cyrl_BA', 'goog.labs.i18n.ListFormatSymbols_bs_Latn', 'goog.labs.i18n.ListFormatSymbols_bs_Latn_BA', 'goog.labs.i18n.ListFormatSymbols_ca_AD', 'goog.labs.i18n.ListFormatSymbols_ca_ES', 'goog.labs.i18n.ListFormatSymbols_ca_FR', 'goog.labs.i18n.ListFormatSymbols_ca_IT', 'goog.labs.i18n.ListFormatSymbols_cgg', 'goog.labs.i18n.ListFormatSymbols_cgg_UG', 'goog.labs.i18n.ListFormatSymbols_chr_US', 'goog.labs.i18n.ListFormatSymbols_cs_CZ', 'goog.labs.i18n.ListFormatSymbols_cy_GB', 'goog.labs.i18n.ListFormatSymbols_da_DK', 'goog.labs.i18n.ListFormatSymbols_da_GL', 'goog.labs.i18n.ListFormatSymbols_dav', 'goog.labs.i18n.ListFormatSymbols_dav_KE', 'goog.labs.i18n.ListFormatSymbols_de_BE', 'goog.labs.i18n.ListFormatSymbols_de_DE', 'goog.labs.i18n.ListFormatSymbols_de_LI', 'goog.labs.i18n.ListFormatSymbols_de_LU', 'goog.labs.i18n.ListFormatSymbols_dje', 'goog.labs.i18n.ListFormatSymbols_dje_NE', 'goog.labs.i18n.ListFormatSymbols_dsb', 'goog.labs.i18n.ListFormatSymbols_dsb_DE', 'goog.labs.i18n.ListFormatSymbols_dua', 'goog.labs.i18n.ListFormatSymbols_dua_CM', 'goog.labs.i18n.ListFormatSymbols_dyo', 'goog.labs.i18n.ListFormatSymbols_dyo_SN', 'goog.labs.i18n.ListFormatSymbols_dz', 'goog.labs.i18n.ListFormatSymbols_dz_BT', 'goog.labs.i18n.ListFormatSymbols_ebu', 'goog.labs.i18n.ListFormatSymbols_ebu_KE', 'goog.labs.i18n.ListFormatSymbols_ee', 'goog.labs.i18n.ListFormatSymbols_ee_GH', 'goog.labs.i18n.ListFormatSymbols_ee_TG', 'goog.labs.i18n.ListFormatSymbols_el_CY', 'goog.labs.i18n.ListFormatSymbols_el_GR', 'goog.labs.i18n.ListFormatSymbols_en_001', 'goog.labs.i18n.ListFormatSymbols_en_150', 'goog.labs.i18n.ListFormatSymbols_en_AG', 'goog.labs.i18n.ListFormatSymbols_en_AI', 'goog.labs.i18n.ListFormatSymbols_en_AS', 'goog.labs.i18n.ListFormatSymbols_en_BB', 'goog.labs.i18n.ListFormatSymbols_en_BE', 'goog.labs.i18n.ListFormatSymbols_en_BM', 'goog.labs.i18n.ListFormatSymbols_en_BS', 'goog.labs.i18n.ListFormatSymbols_en_BW', 'goog.labs.i18n.ListFormatSymbols_en_BZ', 'goog.labs.i18n.ListFormatSymbols_en_CA', 'goog.labs.i18n.ListFormatSymbols_en_CC', 'goog.labs.i18n.ListFormatSymbols_en_CK', 'goog.labs.i18n.ListFormatSymbols_en_CM', 'goog.labs.i18n.ListFormatSymbols_en_CX', 'goog.labs.i18n.ListFormatSymbols_en_DG', 'goog.labs.i18n.ListFormatSymbols_en_DM', 'goog.labs.i18n.ListFormatSymbols_en_ER', 'goog.labs.i18n.ListFormatSymbols_en_FJ', 'goog.labs.i18n.ListFormatSymbols_en_FK', 'goog.labs.i18n.ListFormatSymbols_en_FM', 'goog.labs.i18n.ListFormatSymbols_en_GD', 'goog.labs.i18n.ListFormatSymbols_en_GG', 'goog.labs.i18n.ListFormatSymbols_en_GH', 'goog.labs.i18n.ListFormatSymbols_en_GI', 'goog.labs.i18n.ListFormatSymbols_en_GM', 'goog.labs.i18n.ListFormatSymbols_en_GU', 'goog.labs.i18n.ListFormatSymbols_en_GY', 'goog.labs.i18n.ListFormatSymbols_en_HK', 'goog.labs.i18n.ListFormatSymbols_en_IM', 'goog.labs.i18n.ListFormatSymbols_en_IO', 'goog.labs.i18n.ListFormatSymbols_en_JE', 'goog.labs.i18n.ListFormatSymbols_en_JM', 'goog.labs.i18n.ListFormatSymbols_en_KE', 'goog.labs.i18n.ListFormatSymbols_en_KI', 'goog.labs.i18n.ListFormatSymbols_en_KN', 'goog.labs.i18n.ListFormatSymbols_en_KY', 'goog.labs.i18n.ListFormatSymbols_en_LC', 'goog.labs.i18n.ListFormatSymbols_en_LR', 'goog.labs.i18n.ListFormatSymbols_en_LS', 'goog.labs.i18n.ListFormatSymbols_en_MG', 'goog.labs.i18n.ListFormatSymbols_en_MH', 'goog.labs.i18n.ListFormatSymbols_en_MO', 'goog.labs.i18n.ListFormatSymbols_en_MP', 'goog.labs.i18n.ListFormatSymbols_en_MS', 'goog.labs.i18n.ListFormatSymbols_en_MT', 'goog.labs.i18n.ListFormatSymbols_en_MU', 'goog.labs.i18n.ListFormatSymbols_en_MW', 'goog.labs.i18n.ListFormatSymbols_en_MY', 'goog.labs.i18n.ListFormatSymbols_en_NA', 'goog.labs.i18n.ListFormatSymbols_en_NF', 'goog.labs.i18n.ListFormatSymbols_en_NG', 'goog.labs.i18n.ListFormatSymbols_en_NR', 'goog.labs.i18n.ListFormatSymbols_en_NU', 'goog.labs.i18n.ListFormatSymbols_en_NZ', 'goog.labs.i18n.ListFormatSymbols_en_PG', 'goog.labs.i18n.ListFormatSymbols_en_PH', 'goog.labs.i18n.ListFormatSymbols_en_PK', 'goog.labs.i18n.ListFormatSymbols_en_PN', 'goog.labs.i18n.ListFormatSymbols_en_PR', 'goog.labs.i18n.ListFormatSymbols_en_PW', 'goog.labs.i18n.ListFormatSymbols_en_RW', 'goog.labs.i18n.ListFormatSymbols_en_SB', 'goog.labs.i18n.ListFormatSymbols_en_SC', 'goog.labs.i18n.ListFormatSymbols_en_SD', 'goog.labs.i18n.ListFormatSymbols_en_SH', 'goog.labs.i18n.ListFormatSymbols_en_SL', 'goog.labs.i18n.ListFormatSymbols_en_SS', 'goog.labs.i18n.ListFormatSymbols_en_SX', 'goog.labs.i18n.ListFormatSymbols_en_SZ', 'goog.labs.i18n.ListFormatSymbols_en_TC', 'goog.labs.i18n.ListFormatSymbols_en_TK', 'goog.labs.i18n.ListFormatSymbols_en_TO', 'goog.labs.i18n.ListFormatSymbols_en_TT', 'goog.labs.i18n.ListFormatSymbols_en_TV', 'goog.labs.i18n.ListFormatSymbols_en_TZ', 'goog.labs.i18n.ListFormatSymbols_en_UG', 'goog.labs.i18n.ListFormatSymbols_en_UM', 'goog.labs.i18n.ListFormatSymbols_en_US_POSIX', 'goog.labs.i18n.ListFormatSymbols_en_VC', 'goog.labs.i18n.ListFormatSymbols_en_VG', 'goog.labs.i18n.ListFormatSymbols_en_VI', 'goog.labs.i18n.ListFormatSymbols_en_VU', 'goog.labs.i18n.ListFormatSymbols_en_WS', 'goog.labs.i18n.ListFormatSymbols_en_ZM', 'goog.labs.i18n.ListFormatSymbols_en_ZW', 'goog.labs.i18n.ListFormatSymbols_eo', 'goog.labs.i18n.ListFormatSymbols_es_AR', 'goog.labs.i18n.ListFormatSymbols_es_BO', 'goog.labs.i18n.ListFormatSymbols_es_CL', 'goog.labs.i18n.ListFormatSymbols_es_CO', 'goog.labs.i18n.ListFormatSymbols_es_CR', 'goog.labs.i18n.ListFormatSymbols_es_CU', 'goog.labs.i18n.ListFormatSymbols_es_DO', 'goog.labs.i18n.ListFormatSymbols_es_EA', 'goog.labs.i18n.ListFormatSymbols_es_EC', 'goog.labs.i18n.ListFormatSymbols_es_GQ', 'goog.labs.i18n.ListFormatSymbols_es_GT', 'goog.labs.i18n.ListFormatSymbols_es_HN', 'goog.labs.i18n.ListFormatSymbols_es_IC', 'goog.labs.i18n.ListFormatSymbols_es_MX', 'goog.labs.i18n.ListFormatSymbols_es_NI', 'goog.labs.i18n.ListFormatSymbols_es_PA', 'goog.labs.i18n.ListFormatSymbols_es_PE', 'goog.labs.i18n.ListFormatSymbols_es_PH', 'goog.labs.i18n.ListFormatSymbols_es_PR', 'goog.labs.i18n.ListFormatSymbols_es_PY', 'goog.labs.i18n.ListFormatSymbols_es_SV', 'goog.labs.i18n.ListFormatSymbols_es_US', 'goog.labs.i18n.ListFormatSymbols_es_UY', 'goog.labs.i18n.ListFormatSymbols_es_VE', 'goog.labs.i18n.ListFormatSymbols_et_EE', 'goog.labs.i18n.ListFormatSymbols_eu_ES', 'goog.labs.i18n.ListFormatSymbols_ewo', 'goog.labs.i18n.ListFormatSymbols_ewo_CM', 'goog.labs.i18n.ListFormatSymbols_fa_AF', 'goog.labs.i18n.ListFormatSymbols_fa_IR', 'goog.labs.i18n.ListFormatSymbols_ff', 'goog.labs.i18n.ListFormatSymbols_ff_CM', 'goog.labs.i18n.ListFormatSymbols_ff_GN', 'goog.labs.i18n.ListFormatSymbols_ff_MR', 'goog.labs.i18n.ListFormatSymbols_ff_SN', 'goog.labs.i18n.ListFormatSymbols_fi_FI', 'goog.labs.i18n.ListFormatSymbols_fil_PH', 'goog.labs.i18n.ListFormatSymbols_fo', 'goog.labs.i18n.ListFormatSymbols_fo_FO', 'goog.labs.i18n.ListFormatSymbols_fr_BE', 'goog.labs.i18n.ListFormatSymbols_fr_BF', 'goog.labs.i18n.ListFormatSymbols_fr_BI', 'goog.labs.i18n.ListFormatSymbols_fr_BJ', 'goog.labs.i18n.ListFormatSymbols_fr_BL', 'goog.labs.i18n.ListFormatSymbols_fr_CD', 'goog.labs.i18n.ListFormatSymbols_fr_CF', 'goog.labs.i18n.ListFormatSymbols_fr_CG', 'goog.labs.i18n.ListFormatSymbols_fr_CH', 'goog.labs.i18n.ListFormatSymbols_fr_CI', 'goog.labs.i18n.ListFormatSymbols_fr_CM', 'goog.labs.i18n.ListFormatSymbols_fr_DJ', 'goog.labs.i18n.ListFormatSymbols_fr_DZ', 'goog.labs.i18n.ListFormatSymbols_fr_FR', 'goog.labs.i18n.ListFormatSymbols_fr_GA', 'goog.labs.i18n.ListFormatSymbols_fr_GF', 'goog.labs.i18n.ListFormatSymbols_fr_GN', 'goog.labs.i18n.ListFormatSymbols_fr_GP', 'goog.labs.i18n.ListFormatSymbols_fr_GQ', 'goog.labs.i18n.ListFormatSymbols_fr_HT', 'goog.labs.i18n.ListFormatSymbols_fr_KM', 'goog.labs.i18n.ListFormatSymbols_fr_LU', 'goog.labs.i18n.ListFormatSymbols_fr_MA', 'goog.labs.i18n.ListFormatSymbols_fr_MC', 'goog.labs.i18n.ListFormatSymbols_fr_MF', 'goog.labs.i18n.ListFormatSymbols_fr_MG', 'goog.labs.i18n.ListFormatSymbols_fr_ML', 'goog.labs.i18n.ListFormatSymbols_fr_MQ', 'goog.labs.i18n.ListFormatSymbols_fr_MR', 'goog.labs.i18n.ListFormatSymbols_fr_MU', 'goog.labs.i18n.ListFormatSymbols_fr_NC', 'goog.labs.i18n.ListFormatSymbols_fr_NE', 'goog.labs.i18n.ListFormatSymbols_fr_PF', 'goog.labs.i18n.ListFormatSymbols_fr_PM', 'goog.labs.i18n.ListFormatSymbols_fr_RE', 'goog.labs.i18n.ListFormatSymbols_fr_RW', 'goog.labs.i18n.ListFormatSymbols_fr_SC', 'goog.labs.i18n.ListFormatSymbols_fr_SN', 'goog.labs.i18n.ListFormatSymbols_fr_SY', 'goog.labs.i18n.ListFormatSymbols_fr_TD', 'goog.labs.i18n.ListFormatSymbols_fr_TG', 'goog.labs.i18n.ListFormatSymbols_fr_TN', 'goog.labs.i18n.ListFormatSymbols_fr_VU', 'goog.labs.i18n.ListFormatSymbols_fr_WF', 'goog.labs.i18n.ListFormatSymbols_fr_YT', 'goog.labs.i18n.ListFormatSymbols_fur', 'goog.labs.i18n.ListFormatSymbols_fur_IT', 'goog.labs.i18n.ListFormatSymbols_fy', 'goog.labs.i18n.ListFormatSymbols_fy_NL', 'goog.labs.i18n.ListFormatSymbols_ga_IE', 'goog.labs.i18n.ListFormatSymbols_gd', 'goog.labs.i18n.ListFormatSymbols_gd_GB', 'goog.labs.i18n.ListFormatSymbols_gl_ES', 'goog.labs.i18n.ListFormatSymbols_gsw_CH', 'goog.labs.i18n.ListFormatSymbols_gsw_FR', 'goog.labs.i18n.ListFormatSymbols_gsw_LI', 'goog.labs.i18n.ListFormatSymbols_gu_IN', 'goog.labs.i18n.ListFormatSymbols_guz', 'goog.labs.i18n.ListFormatSymbols_guz_KE', 'goog.labs.i18n.ListFormatSymbols_gv', 'goog.labs.i18n.ListFormatSymbols_gv_IM', 'goog.labs.i18n.ListFormatSymbols_ha', 'goog.labs.i18n.ListFormatSymbols_ha_Latn', 'goog.labs.i18n.ListFormatSymbols_ha_Latn_GH', 'goog.labs.i18n.ListFormatSymbols_ha_Latn_NE', 'goog.labs.i18n.ListFormatSymbols_ha_Latn_NG', 'goog.labs.i18n.ListFormatSymbols_haw_US', 'goog.labs.i18n.ListFormatSymbols_he_IL', 'goog.labs.i18n.ListFormatSymbols_hi_IN', 'goog.labs.i18n.ListFormatSymbols_hr_BA', 'goog.labs.i18n.ListFormatSymbols_hr_HR', 'goog.labs.i18n.ListFormatSymbols_hsb', 'goog.labs.i18n.ListFormatSymbols_hsb_DE', 'goog.labs.i18n.ListFormatSymbols_hu_HU', 'goog.labs.i18n.ListFormatSymbols_hy_AM', 'goog.labs.i18n.ListFormatSymbols_id_ID', 'goog.labs.i18n.ListFormatSymbols_ig', 'goog.labs.i18n.ListFormatSymbols_ig_NG', 'goog.labs.i18n.ListFormatSymbols_ii', 'goog.labs.i18n.ListFormatSymbols_ii_CN', 'goog.labs.i18n.ListFormatSymbols_is_IS', 'goog.labs.i18n.ListFormatSymbols_it_CH', 'goog.labs.i18n.ListFormatSymbols_it_IT', 'goog.labs.i18n.ListFormatSymbols_it_SM', 'goog.labs.i18n.ListFormatSymbols_ja_JP', 'goog.labs.i18n.ListFormatSymbols_jgo', 'goog.labs.i18n.ListFormatSymbols_jgo_CM', 'goog.labs.i18n.ListFormatSymbols_jmc', 'goog.labs.i18n.ListFormatSymbols_jmc_TZ', 'goog.labs.i18n.ListFormatSymbols_ka_GE', 'goog.labs.i18n.ListFormatSymbols_kab', 'goog.labs.i18n.ListFormatSymbols_kab_DZ', 'goog.labs.i18n.ListFormatSymbols_kam', 'goog.labs.i18n.ListFormatSymbols_kam_KE', 'goog.labs.i18n.ListFormatSymbols_kde', 'goog.labs.i18n.ListFormatSymbols_kde_TZ', 'goog.labs.i18n.ListFormatSymbols_kea', 'goog.labs.i18n.ListFormatSymbols_kea_CV', 'goog.labs.i18n.ListFormatSymbols_khq', 'goog.labs.i18n.ListFormatSymbols_khq_ML', 'goog.labs.i18n.ListFormatSymbols_ki', 'goog.labs.i18n.ListFormatSymbols_ki_KE', 'goog.labs.i18n.ListFormatSymbols_kk_Cyrl', 'goog.labs.i18n.ListFormatSymbols_kk_Cyrl_KZ', 'goog.labs.i18n.ListFormatSymbols_kkj', 'goog.labs.i18n.ListFormatSymbols_kkj_CM', 'goog.labs.i18n.ListFormatSymbols_kl', 'goog.labs.i18n.ListFormatSymbols_kl_GL', 'goog.labs.i18n.ListFormatSymbols_kln', 'goog.labs.i18n.ListFormatSymbols_kln_KE', 'goog.labs.i18n.ListFormatSymbols_km_KH', 'goog.labs.i18n.ListFormatSymbols_kn_IN', 'goog.labs.i18n.ListFormatSymbols_ko_KP', 'goog.labs.i18n.ListFormatSymbols_ko_KR', 'goog.labs.i18n.ListFormatSymbols_kok', 'goog.labs.i18n.ListFormatSymbols_kok_IN', 'goog.labs.i18n.ListFormatSymbols_ks', 'goog.labs.i18n.ListFormatSymbols_ks_Arab', 'goog.labs.i18n.ListFormatSymbols_ks_Arab_IN', 'goog.labs.i18n.ListFormatSymbols_ksb', 'goog.labs.i18n.ListFormatSymbols_ksb_TZ', 'goog.labs.i18n.ListFormatSymbols_ksf', 'goog.labs.i18n.ListFormatSymbols_ksf_CM', 'goog.labs.i18n.ListFormatSymbols_ksh', 'goog.labs.i18n.ListFormatSymbols_ksh_DE', 'goog.labs.i18n.ListFormatSymbols_kw', 'goog.labs.i18n.ListFormatSymbols_kw_GB', 'goog.labs.i18n.ListFormatSymbols_ky_Cyrl', 'goog.labs.i18n.ListFormatSymbols_ky_Cyrl_KG', 'goog.labs.i18n.ListFormatSymbols_lag', 'goog.labs.i18n.ListFormatSymbols_lag_TZ', 'goog.labs.i18n.ListFormatSymbols_lb', 'goog.labs.i18n.ListFormatSymbols_lb_LU', 'goog.labs.i18n.ListFormatSymbols_lg', 'goog.labs.i18n.ListFormatSymbols_lg_UG', 'goog.labs.i18n.ListFormatSymbols_lkt', 'goog.labs.i18n.ListFormatSymbols_lkt_US', 'goog.labs.i18n.ListFormatSymbols_ln_AO', 'goog.labs.i18n.ListFormatSymbols_ln_CD', 'goog.labs.i18n.ListFormatSymbols_ln_CF', 'goog.labs.i18n.ListFormatSymbols_ln_CG', 'goog.labs.i18n.ListFormatSymbols_lo_LA', 'goog.labs.i18n.ListFormatSymbols_lt_LT', 'goog.labs.i18n.ListFormatSymbols_lu', 'goog.labs.i18n.ListFormatSymbols_lu_CD', 'goog.labs.i18n.ListFormatSymbols_luo', 'goog.labs.i18n.ListFormatSymbols_luo_KE', 'goog.labs.i18n.ListFormatSymbols_luy', 'goog.labs.i18n.ListFormatSymbols_luy_KE', 'goog.labs.i18n.ListFormatSymbols_lv_LV', 'goog.labs.i18n.ListFormatSymbols_mas', 'goog.labs.i18n.ListFormatSymbols_mas_KE', 'goog.labs.i18n.ListFormatSymbols_mas_TZ', 'goog.labs.i18n.ListFormatSymbols_mer', 'goog.labs.i18n.ListFormatSymbols_mer_KE', 'goog.labs.i18n.ListFormatSymbols_mfe', 'goog.labs.i18n.ListFormatSymbols_mfe_MU', 'goog.labs.i18n.ListFormatSymbols_mg', 'goog.labs.i18n.ListFormatSymbols_mg_MG', 'goog.labs.i18n.ListFormatSymbols_mgh', 'goog.labs.i18n.ListFormatSymbols_mgh_MZ', 'goog.labs.i18n.ListFormatSymbols_mgo', 'goog.labs.i18n.ListFormatSymbols_mgo_CM', 'goog.labs.i18n.ListFormatSymbols_mk_MK', 'goog.labs.i18n.ListFormatSymbols_ml_IN', 'goog.labs.i18n.ListFormatSymbols_mn_Cyrl', 'goog.labs.i18n.ListFormatSymbols_mn_Cyrl_MN', 'goog.labs.i18n.ListFormatSymbols_mr_IN', 'goog.labs.i18n.ListFormatSymbols_ms_Latn', 'goog.labs.i18n.ListFormatSymbols_ms_Latn_BN', 'goog.labs.i18n.ListFormatSymbols_ms_Latn_MY', 'goog.labs.i18n.ListFormatSymbols_ms_Latn_SG', 'goog.labs.i18n.ListFormatSymbols_mt_MT', 'goog.labs.i18n.ListFormatSymbols_mua', 'goog.labs.i18n.ListFormatSymbols_mua_CM', 'goog.labs.i18n.ListFormatSymbols_my_MM', 'goog.labs.i18n.ListFormatSymbols_naq', 'goog.labs.i18n.ListFormatSymbols_naq_NA', 'goog.labs.i18n.ListFormatSymbols_nb_NO', 'goog.labs.i18n.ListFormatSymbols_nb_SJ', 'goog.labs.i18n.ListFormatSymbols_nd', 'goog.labs.i18n.ListFormatSymbols_nd_ZW', 'goog.labs.i18n.ListFormatSymbols_ne_IN', 'goog.labs.i18n.ListFormatSymbols_ne_NP', 'goog.labs.i18n.ListFormatSymbols_nl_AW', 'goog.labs.i18n.ListFormatSymbols_nl_BE', 'goog.labs.i18n.ListFormatSymbols_nl_BQ', 'goog.labs.i18n.ListFormatSymbols_nl_CW', 'goog.labs.i18n.ListFormatSymbols_nl_NL', 'goog.labs.i18n.ListFormatSymbols_nl_SR', 'goog.labs.i18n.ListFormatSymbols_nl_SX', 'goog.labs.i18n.ListFormatSymbols_nmg', 'goog.labs.i18n.ListFormatSymbols_nmg_CM', 'goog.labs.i18n.ListFormatSymbols_nn', 'goog.labs.i18n.ListFormatSymbols_nn_NO', 'goog.labs.i18n.ListFormatSymbols_nnh', 'goog.labs.i18n.ListFormatSymbols_nnh_CM', 'goog.labs.i18n.ListFormatSymbols_nus', 'goog.labs.i18n.ListFormatSymbols_nus_SD', 'goog.labs.i18n.ListFormatSymbols_nyn', 'goog.labs.i18n.ListFormatSymbols_nyn_UG', 'goog.labs.i18n.ListFormatSymbols_om', 'goog.labs.i18n.ListFormatSymbols_om_ET', 'goog.labs.i18n.ListFormatSymbols_om_KE', 'goog.labs.i18n.ListFormatSymbols_or_IN', 'goog.labs.i18n.ListFormatSymbols_os', 'goog.labs.i18n.ListFormatSymbols_os_GE', 'goog.labs.i18n.ListFormatSymbols_os_RU', 'goog.labs.i18n.ListFormatSymbols_pa_Arab', 'goog.labs.i18n.ListFormatSymbols_pa_Arab_PK', 'goog.labs.i18n.ListFormatSymbols_pa_Guru', 'goog.labs.i18n.ListFormatSymbols_pa_Guru_IN', 'goog.labs.i18n.ListFormatSymbols_pl_PL', 'goog.labs.i18n.ListFormatSymbols_ps', 'goog.labs.i18n.ListFormatSymbols_ps_AF', 'goog.labs.i18n.ListFormatSymbols_pt_AO', 'goog.labs.i18n.ListFormatSymbols_pt_CV', 'goog.labs.i18n.ListFormatSymbols_pt_GW', 'goog.labs.i18n.ListFormatSymbols_pt_MO', 'goog.labs.i18n.ListFormatSymbols_pt_MZ', 'goog.labs.i18n.ListFormatSymbols_pt_ST', 'goog.labs.i18n.ListFormatSymbols_pt_TL', 'goog.labs.i18n.ListFormatSymbols_qu', 'goog.labs.i18n.ListFormatSymbols_qu_BO', 'goog.labs.i18n.ListFormatSymbols_qu_EC', 'goog.labs.i18n.ListFormatSymbols_qu_PE', 'goog.labs.i18n.ListFormatSymbols_rm', 'goog.labs.i18n.ListFormatSymbols_rm_CH', 'goog.labs.i18n.ListFormatSymbols_rn', 'goog.labs.i18n.ListFormatSymbols_rn_BI', 'goog.labs.i18n.ListFormatSymbols_ro_MD', 'goog.labs.i18n.ListFormatSymbols_ro_RO', 'goog.labs.i18n.ListFormatSymbols_rof', 'goog.labs.i18n.ListFormatSymbols_rof_TZ', 'goog.labs.i18n.ListFormatSymbols_ru_BY', 'goog.labs.i18n.ListFormatSymbols_ru_KG', 'goog.labs.i18n.ListFormatSymbols_ru_KZ', 'goog.labs.i18n.ListFormatSymbols_ru_MD', 'goog.labs.i18n.ListFormatSymbols_ru_RU', 'goog.labs.i18n.ListFormatSymbols_ru_UA', 'goog.labs.i18n.ListFormatSymbols_rw', 'goog.labs.i18n.ListFormatSymbols_rw_RW', 'goog.labs.i18n.ListFormatSymbols_rwk', 'goog.labs.i18n.ListFormatSymbols_rwk_TZ', 'goog.labs.i18n.ListFormatSymbols_sah', 'goog.labs.i18n.ListFormatSymbols_sah_RU', 'goog.labs.i18n.ListFormatSymbols_saq', 'goog.labs.i18n.ListFormatSymbols_saq_KE', 'goog.labs.i18n.ListFormatSymbols_sbp', 'goog.labs.i18n.ListFormatSymbols_sbp_TZ', 'goog.labs.i18n.ListFormatSymbols_se', 'goog.labs.i18n.ListFormatSymbols_se_FI', 'goog.labs.i18n.ListFormatSymbols_se_NO', 'goog.labs.i18n.ListFormatSymbols_se_SE', 'goog.labs.i18n.ListFormatSymbols_seh', 'goog.labs.i18n.ListFormatSymbols_seh_MZ', 'goog.labs.i18n.ListFormatSymbols_ses', 'goog.labs.i18n.ListFormatSymbols_ses_ML', 'goog.labs.i18n.ListFormatSymbols_sg', 'goog.labs.i18n.ListFormatSymbols_sg_CF', 'goog.labs.i18n.ListFormatSymbols_shi', 'goog.labs.i18n.ListFormatSymbols_shi_Latn', 'goog.labs.i18n.ListFormatSymbols_shi_Latn_MA', 'goog.labs.i18n.ListFormatSymbols_shi_Tfng', 'goog.labs.i18n.ListFormatSymbols_shi_Tfng_MA', 'goog.labs.i18n.ListFormatSymbols_si_LK', 'goog.labs.i18n.ListFormatSymbols_sk_SK', 'goog.labs.i18n.ListFormatSymbols_sl_SI', 'goog.labs.i18n.ListFormatSymbols_smn', 'goog.labs.i18n.ListFormatSymbols_smn_FI', 'goog.labs.i18n.ListFormatSymbols_sn', 'goog.labs.i18n.ListFormatSymbols_sn_ZW', 'goog.labs.i18n.ListFormatSymbols_so', 'goog.labs.i18n.ListFormatSymbols_so_DJ', 'goog.labs.i18n.ListFormatSymbols_so_ET', 'goog.labs.i18n.ListFormatSymbols_so_KE', 'goog.labs.i18n.ListFormatSymbols_so_SO', 'goog.labs.i18n.ListFormatSymbols_sq_AL', 'goog.labs.i18n.ListFormatSymbols_sq_MK', 'goog.labs.i18n.ListFormatSymbols_sq_XK', 'goog.labs.i18n.ListFormatSymbols_sr_Cyrl', 'goog.labs.i18n.ListFormatSymbols_sr_Cyrl_BA', 'goog.labs.i18n.ListFormatSymbols_sr_Cyrl_ME', 'goog.labs.i18n.ListFormatSymbols_sr_Cyrl_RS', 'goog.labs.i18n.ListFormatSymbols_sr_Cyrl_XK', 'goog.labs.i18n.ListFormatSymbols_sr_Latn', 'goog.labs.i18n.ListFormatSymbols_sr_Latn_BA', 'goog.labs.i18n.ListFormatSymbols_sr_Latn_ME', 'goog.labs.i18n.ListFormatSymbols_sr_Latn_RS', 'goog.labs.i18n.ListFormatSymbols_sr_Latn_XK', 'goog.labs.i18n.ListFormatSymbols_sv_AX', 'goog.labs.i18n.ListFormatSymbols_sv_FI', 'goog.labs.i18n.ListFormatSymbols_sv_SE', 'goog.labs.i18n.ListFormatSymbols_sw_KE', 'goog.labs.i18n.ListFormatSymbols_sw_TZ', 'goog.labs.i18n.ListFormatSymbols_sw_UG', 'goog.labs.i18n.ListFormatSymbols_swc', 'goog.labs.i18n.ListFormatSymbols_swc_CD', 'goog.labs.i18n.ListFormatSymbols_ta_IN', 'goog.labs.i18n.ListFormatSymbols_ta_LK', 'goog.labs.i18n.ListFormatSymbols_ta_MY', 'goog.labs.i18n.ListFormatSymbols_ta_SG', 'goog.labs.i18n.ListFormatSymbols_te_IN', 'goog.labs.i18n.ListFormatSymbols_teo', 'goog.labs.i18n.ListFormatSymbols_teo_KE', 'goog.labs.i18n.ListFormatSymbols_teo_UG', 'goog.labs.i18n.ListFormatSymbols_th_TH', 'goog.labs.i18n.ListFormatSymbols_ti', 'goog.labs.i18n.ListFormatSymbols_ti_ER', 'goog.labs.i18n.ListFormatSymbols_ti_ET', 'goog.labs.i18n.ListFormatSymbols_to', 'goog.labs.i18n.ListFormatSymbols_to_TO', 'goog.labs.i18n.ListFormatSymbols_tr_CY', 'goog.labs.i18n.ListFormatSymbols_tr_TR', 'goog.labs.i18n.ListFormatSymbols_twq', 'goog.labs.i18n.ListFormatSymbols_twq_NE', 'goog.labs.i18n.ListFormatSymbols_tzm', 'goog.labs.i18n.ListFormatSymbols_tzm_Latn', 'goog.labs.i18n.ListFormatSymbols_tzm_Latn_MA', 'goog.labs.i18n.ListFormatSymbols_ug', 'goog.labs.i18n.ListFormatSymbols_ug_Arab', 'goog.labs.i18n.ListFormatSymbols_ug_Arab_CN', 'goog.labs.i18n.ListFormatSymbols_uk_UA', 'goog.labs.i18n.ListFormatSymbols_ur_IN', 'goog.labs.i18n.ListFormatSymbols_ur_PK', 'goog.labs.i18n.ListFormatSymbols_uz_Arab', 'goog.labs.i18n.ListFormatSymbols_uz_Arab_AF', 'goog.labs.i18n.ListFormatSymbols_uz_Cyrl', 'goog.labs.i18n.ListFormatSymbols_uz_Cyrl_UZ', 'goog.labs.i18n.ListFormatSymbols_uz_Latn', 'goog.labs.i18n.ListFormatSymbols_uz_Latn_UZ', 'goog.labs.i18n.ListFormatSymbols_vai', 'goog.labs.i18n.ListFormatSymbols_vai_Latn', 'goog.labs.i18n.ListFormatSymbols_vai_Latn_LR', 'goog.labs.i18n.ListFormatSymbols_vai_Vaii', 'goog.labs.i18n.ListFormatSymbols_vai_Vaii_LR', 'goog.labs.i18n.ListFormatSymbols_vi_VN', 'goog.labs.i18n.ListFormatSymbols_vun', 'goog.labs.i18n.ListFormatSymbols_vun_TZ', 'goog.labs.i18n.ListFormatSymbols_wae', 'goog.labs.i18n.ListFormatSymbols_wae_CH', 'goog.labs.i18n.ListFormatSymbols_xog', 'goog.labs.i18n.ListFormatSymbols_xog_UG', 'goog.labs.i18n.ListFormatSymbols_yav', 'goog.labs.i18n.ListFormatSymbols_yav_CM', 'goog.labs.i18n.ListFormatSymbols_yi', 'goog.labs.i18n.ListFormatSymbols_yi_001', 'goog.labs.i18n.ListFormatSymbols_yo', 'goog.labs.i18n.ListFormatSymbols_yo_BJ', 'goog.labs.i18n.ListFormatSymbols_yo_NG', 'goog.labs.i18n.ListFormatSymbols_zgh', 'goog.labs.i18n.ListFormatSymbols_zgh_MA', 'goog.labs.i18n.ListFormatSymbols_zh_Hans', 'goog.labs.i18n.ListFormatSymbols_zh_Hans_CN', 'goog.labs.i18n.ListFormatSymbols_zh_Hans_HK', 'goog.labs.i18n.ListFormatSymbols_zh_Hans_MO', 'goog.labs.i18n.ListFormatSymbols_zh_Hans_SG', 'goog.labs.i18n.ListFormatSymbols_zh_Hant', 'goog.labs.i18n.ListFormatSymbols_zh_Hant_HK', 'goog.labs.i18n.ListFormatSymbols_zh_Hant_MO', 'goog.labs.i18n.ListFormatSymbols_zh_Hant_TW', 'goog.labs.i18n.ListFormatSymbols_zu_ZA'], ['goog.labs.i18n.ListFormatSymbols'], false); >+goog.addDependency('labs/iterable/iterable.js', ['goog.labs.iterable'], [], true); >+goog.addDependency('labs/iterable/iterable_test.js', ['goog.labs.iterableTest'], ['goog.labs.iterable', 'goog.testing.jsunit', 'goog.testing.recordFunction'], true); >+goog.addDependency('labs/mock/mock.js', ['goog.labs.mock', 'goog.labs.mock.VerificationError'], ['goog.array', 'goog.asserts', 'goog.debug', 'goog.debug.Error', 'goog.functions', 'goog.object'], false); >+goog.addDependency('labs/mock/mock_test.js', ['goog.labs.mockTest'], ['goog.array', 'goog.labs.mock', 'goog.labs.mock.VerificationError', 'goog.labs.testing.AnythingMatcher', 'goog.labs.testing.GreaterThanMatcher', 'goog.string', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/net/image.js', ['goog.labs.net.image'], ['goog.Promise', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.net.EventType', 'goog.userAgent'], false); >+goog.addDependency('labs/net/image_test.js', ['goog.labs.net.imageTest'], ['goog.labs.net.image', 'goog.string', 'goog.testing.AsyncTestCase', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('labs/net/webchannel.js', ['goog.net.WebChannel'], ['goog.events', 'goog.events.Event'], false); >+goog.addDependency('labs/net/webchannel/basetestchannel.js', ['goog.labs.net.webChannel.BaseTestChannel'], ['goog.labs.net.webChannel.Channel', 'goog.labs.net.webChannel.ChannelRequest', 'goog.labs.net.webChannel.requestStats', 'goog.labs.net.webChannel.requestStats.Stat'], false); >+goog.addDependency('labs/net/webchannel/channel.js', ['goog.labs.net.webChannel.Channel'], [], false); >+goog.addDependency('labs/net/webchannel/channelrequest.js', ['goog.labs.net.webChannel.ChannelRequest'], ['goog.Timer', 'goog.async.Throttle', 'goog.events.EventHandler', 'goog.labs.net.webChannel.requestStats', 'goog.labs.net.webChannel.requestStats.ServerReachability', 'goog.labs.net.webChannel.requestStats.Stat', 'goog.net.ErrorCode', 'goog.net.EventType', 'goog.net.XmlHttp', 'goog.object', 'goog.uri.utils.StandardQueryParam', 'goog.userAgent'], false); >+goog.addDependency('labs/net/webchannel/channelrequest_test.js', ['goog.labs.net.webChannel.channelRequestTest'], ['goog.Uri', 'goog.functions', 'goog.labs.net.webChannel.ChannelRequest', 'goog.labs.net.webChannel.WebChannelDebug', 'goog.labs.net.webChannel.requestStats', 'goog.labs.net.webChannel.requestStats.ServerReachability', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.net.XhrIo', 'goog.testing.recordFunction'], false); >+goog.addDependency('labs/net/webchannel/connectionstate.js', ['goog.labs.net.webChannel.ConnectionState'], [], false); >+goog.addDependency('labs/net/webchannel/forwardchannelrequestpool.js', ['goog.labs.net.webChannel.ForwardChannelRequestPool'], ['goog.array', 'goog.string', 'goog.structs.Set'], false); >+goog.addDependency('labs/net/webchannel/forwardchannelrequestpool_test.js', ['goog.labs.net.webChannel.forwardChannelRequestPoolTest'], ['goog.labs.net.webChannel.ChannelRequest', 'goog.labs.net.webChannel.ForwardChannelRequestPool', 'goog.testing.PropertyReplacer', 'goog.testing.asserts', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/net/webchannel/netutils.js', ['goog.labs.net.webChannel.netUtils'], ['goog.Uri', 'goog.labs.net.webChannel.WebChannelDebug'], false); >+goog.addDependency('labs/net/webchannel/requeststats.js', ['goog.labs.net.webChannel.requestStats', 'goog.labs.net.webChannel.requestStats.Event', 'goog.labs.net.webChannel.requestStats.ServerReachability', 'goog.labs.net.webChannel.requestStats.ServerReachabilityEvent', 'goog.labs.net.webChannel.requestStats.Stat', 'goog.labs.net.webChannel.requestStats.StatEvent', 'goog.labs.net.webChannel.requestStats.TimingEvent'], ['goog.events.Event', 'goog.events.EventTarget'], false); >+goog.addDependency('labs/net/webchannel/webchannelbase.js', ['goog.labs.net.webChannel.WebChannelBase'], ['goog.Uri', 'goog.array', 'goog.asserts', 'goog.debug.TextFormatter', 'goog.json', 'goog.labs.net.webChannel.BaseTestChannel', 'goog.labs.net.webChannel.Channel', 'goog.labs.net.webChannel.ChannelRequest', 'goog.labs.net.webChannel.ConnectionState', 'goog.labs.net.webChannel.ForwardChannelRequestPool', 'goog.labs.net.webChannel.WebChannelDebug', 'goog.labs.net.webChannel.Wire', 'goog.labs.net.webChannel.WireV8', 'goog.labs.net.webChannel.netUtils', 'goog.labs.net.webChannel.requestStats', 'goog.labs.net.webChannel.requestStats.Stat', 'goog.log', 'goog.net.XhrIo', 'goog.object', 'goog.string', 'goog.structs', 'goog.structs.CircularBuffer'], false); >+goog.addDependency('labs/net/webchannel/webchannelbase_test.js', ['goog.labs.net.webChannel.webChannelBaseTest'], ['goog.Timer', 'goog.array', 'goog.dom', 'goog.functions', 'goog.json', 'goog.labs.net.webChannel.ChannelRequest', 'goog.labs.net.webChannel.ForwardChannelRequestPool', 'goog.labs.net.webChannel.WebChannelBase', 'goog.labs.net.webChannel.WebChannelBaseTransport', 'goog.labs.net.webChannel.WebChannelDebug', 'goog.labs.net.webChannel.Wire', 'goog.labs.net.webChannel.netUtils', 'goog.labs.net.webChannel.requestStats', 'goog.labs.net.webChannel.requestStats.Stat', 'goog.structs.Map', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.asserts', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/net/webchannel/webchannelbasetransport.js', ['goog.labs.net.webChannel.WebChannelBaseTransport'], ['goog.asserts', 'goog.events.EventTarget', 'goog.labs.net.webChannel.ChannelRequest', 'goog.labs.net.webChannel.WebChannelBase', 'goog.log', 'goog.net.WebChannel', 'goog.net.WebChannelTransport', 'goog.object', 'goog.string.path'], false); >+goog.addDependency('labs/net/webchannel/webchannelbasetransport_test.js', ['goog.labs.net.webChannel.webChannelBaseTransportTest'], ['goog.events', 'goog.functions', 'goog.labs.net.webChannel.ChannelRequest', 'goog.labs.net.webChannel.WebChannelBaseTransport', 'goog.net.WebChannel', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/net/webchannel/webchanneldebug.js', ['goog.labs.net.webChannel.WebChannelDebug'], ['goog.json', 'goog.log'], false); >+goog.addDependency('labs/net/webchannel/wire.js', ['goog.labs.net.webChannel.Wire'], [], false); >+goog.addDependency('labs/net/webchannel/wirev8.js', ['goog.labs.net.webChannel.WireV8'], ['goog.asserts', 'goog.json', 'goog.json.NativeJsonProcessor', 'goog.structs'], false); >+goog.addDependency('labs/net/webchannel/wirev8_test.js', ['goog.labs.net.webChannel.WireV8Test'], ['goog.labs.net.webChannel.WireV8', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/net/webchanneltransport.js', ['goog.net.WebChannelTransport'], [], false); >+goog.addDependency('labs/net/webchanneltransportfactory.js', ['goog.net.createWebChannelTransport'], ['goog.functions', 'goog.labs.net.webChannel.WebChannelBaseTransport'], false); >+goog.addDependency('labs/net/xhr.js', ['goog.labs.net.xhr', 'goog.labs.net.xhr.Error', 'goog.labs.net.xhr.HttpError', 'goog.labs.net.xhr.Options', 'goog.labs.net.xhr.PostData', 'goog.labs.net.xhr.ResponseType', 'goog.labs.net.xhr.TimeoutError'], ['goog.Promise', 'goog.debug.Error', 'goog.json', 'goog.net.HttpStatus', 'goog.net.XmlHttp', 'goog.string', 'goog.uri.utils', 'goog.userAgent'], false); >+goog.addDependency('labs/net/xhr_test.js', ['goog.labs.net.xhrTest'], ['goog.Promise', 'goog.labs.net.xhr', 'goog.net.WrapperXmlHttpFactory', 'goog.net.XmlHttp', 'goog.testing.MockClock', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('labs/object/object.js', ['goog.labs.object'], [], false); >+goog.addDependency('labs/object/object_test.js', ['goog.labs.objectTest'], ['goog.labs.object', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/pubsub/broadcastpubsub.js', ['goog.labs.pubsub.BroadcastPubSub'], ['goog.Disposable', 'goog.Timer', 'goog.array', 'goog.async.run', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.json', 'goog.log', 'goog.math', 'goog.pubsub.PubSub', 'goog.storage.Storage', 'goog.storage.mechanism.HTML5LocalStorage', 'goog.string', 'goog.userAgent'], false); >+goog.addDependency('labs/pubsub/broadcastpubsub_test.js', ['goog.labs.pubsub.BroadcastPubSubTest'], ['goog.array', 'goog.debug.Logger', 'goog.json', 'goog.labs.pubsub.BroadcastPubSub', 'goog.storage.Storage', 'goog.structs.Map', 'goog.testing.MockClock', 'goog.testing.MockControl', 'goog.testing.events', 'goog.testing.events.Event', 'goog.testing.jsunit', 'goog.testing.mockmatchers', 'goog.testing.mockmatchers.ArgumentMatcher', 'goog.testing.recordFunction', 'goog.userAgent'], false); >+goog.addDependency('labs/storage/boundedcollectablestorage.js', ['goog.labs.storage.BoundedCollectableStorage'], ['goog.array', 'goog.asserts', 'goog.iter', 'goog.storage.CollectableStorage', 'goog.storage.ErrorCode', 'goog.storage.ExpiringStorage'], false); >+goog.addDependency('labs/storage/boundedcollectablestorage_test.js', ['goog.labs.storage.BoundedCollectableStorageTest'], ['goog.labs.storage.BoundedCollectableStorage', 'goog.storage.collectableStorageTester', 'goog.storage.storage_test', 'goog.testing.MockClock', 'goog.testing.jsunit', 'goog.testing.storage.FakeMechanism'], false); >+goog.addDependency('labs/structs/map.js', ['goog.labs.structs.Map'], ['goog.array', 'goog.asserts', 'goog.labs.object', 'goog.object'], false); >+goog.addDependency('labs/structs/map_perf.js', ['goog.labs.structs.MapPerf'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.labs.structs.Map', 'goog.structs.Map', 'goog.testing.PerformanceTable', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/structs/map_test.js', ['goog.labs.structs.MapTest'], ['goog.labs.structs.Map', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/structs/multimap.js', ['goog.labs.structs.Multimap'], ['goog.array', 'goog.labs.object', 'goog.labs.structs.Map'], false); >+goog.addDependency('labs/structs/multimap_test.js', ['goog.labs.structs.MultimapTest'], ['goog.labs.structs.Map', 'goog.labs.structs.Multimap', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/style/pixeldensitymonitor.js', ['goog.labs.style.PixelDensityMonitor', 'goog.labs.style.PixelDensityMonitor.Density', 'goog.labs.style.PixelDensityMonitor.EventType'], ['goog.events', 'goog.events.EventTarget'], false); >+goog.addDependency('labs/style/pixeldensitymonitor_test.js', ['goog.labs.style.PixelDensityMonitorTest'], ['goog.array', 'goog.dom.DomHelper', 'goog.events', 'goog.labs.style.PixelDensityMonitor', 'goog.testing.MockControl', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('labs/testing/assertthat.js', ['goog.labs.testing.MatcherError', 'goog.labs.testing.assertThat'], ['goog.debug.Error'], false); >+goog.addDependency('labs/testing/assertthat_test.js', ['goog.labs.testing.assertThatTest'], ['goog.labs.testing.MatcherError', 'goog.labs.testing.assertThat', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('labs/testing/decoratormatcher.js', ['goog.labs.testing.AnythingMatcher'], ['goog.labs.testing.Matcher'], false); >+goog.addDependency('labs/testing/decoratormatcher_test.js', ['goog.labs.testing.decoratorMatcherTest'], ['goog.labs.testing.AnythingMatcher', 'goog.labs.testing.GreaterThanMatcher', 'goog.labs.testing.MatcherError', 'goog.labs.testing.assertThat', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/testing/dictionarymatcher.js', ['goog.labs.testing.HasEntriesMatcher', 'goog.labs.testing.HasEntryMatcher', 'goog.labs.testing.HasKeyMatcher', 'goog.labs.testing.HasValueMatcher'], ['goog.asserts', 'goog.labs.testing.Matcher', 'goog.object'], false); >+goog.addDependency('labs/testing/dictionarymatcher_test.js', ['goog.labs.testing.dictionaryMatcherTest'], ['goog.labs.testing.HasEntryMatcher', 'goog.labs.testing.MatcherError', 'goog.labs.testing.assertThat', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/testing/environment.js', ['goog.labs.testing.Environment'], ['goog.array', 'goog.debug.Console', 'goog.testing.MockClock', 'goog.testing.MockControl', 'goog.testing.TestCase', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/testing/environment_test.js', ['goog.labs.testing.environmentTest'], ['goog.labs.testing.Environment', 'goog.testing.MockControl', 'goog.testing.TestCase', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/testing/environment_usage_test.js', ['goog.labs.testing.environmentUsageTest'], ['goog.labs.testing.Environment'], false); >+goog.addDependency('labs/testing/logicmatcher.js', ['goog.labs.testing.AllOfMatcher', 'goog.labs.testing.AnyOfMatcher', 'goog.labs.testing.IsNotMatcher'], ['goog.array', 'goog.labs.testing.Matcher'], false); >+goog.addDependency('labs/testing/logicmatcher_test.js', ['goog.labs.testing.logicMatcherTest'], ['goog.labs.testing.AllOfMatcher', 'goog.labs.testing.GreaterThanMatcher', 'goog.labs.testing.MatcherError', 'goog.labs.testing.assertThat', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/testing/matcher.js', ['goog.labs.testing.Matcher'], [], false); >+goog.addDependency('labs/testing/numbermatcher.js', ['goog.labs.testing.CloseToMatcher', 'goog.labs.testing.EqualToMatcher', 'goog.labs.testing.GreaterThanEqualToMatcher', 'goog.labs.testing.GreaterThanMatcher', 'goog.labs.testing.LessThanEqualToMatcher', 'goog.labs.testing.LessThanMatcher'], ['goog.asserts', 'goog.labs.testing.Matcher'], false); >+goog.addDependency('labs/testing/numbermatcher_test.js', ['goog.labs.testing.numberMatcherTest'], ['goog.labs.testing.LessThanMatcher', 'goog.labs.testing.MatcherError', 'goog.labs.testing.assertThat', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/testing/objectmatcher.js', ['goog.labs.testing.HasPropertyMatcher', 'goog.labs.testing.InstanceOfMatcher', 'goog.labs.testing.IsNullMatcher', 'goog.labs.testing.IsNullOrUndefinedMatcher', 'goog.labs.testing.IsUndefinedMatcher', 'goog.labs.testing.ObjectEqualsMatcher'], ['goog.labs.testing.Matcher'], false); >+goog.addDependency('labs/testing/objectmatcher_test.js', ['goog.labs.testing.objectMatcherTest'], ['goog.labs.testing.MatcherError', 'goog.labs.testing.ObjectEqualsMatcher', 'goog.labs.testing.assertThat', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/testing/stringmatcher.js', ['goog.labs.testing.ContainsStringMatcher', 'goog.labs.testing.EndsWithMatcher', 'goog.labs.testing.EqualToIgnoringWhitespaceMatcher', 'goog.labs.testing.EqualsMatcher', 'goog.labs.testing.RegexMatcher', 'goog.labs.testing.StartsWithMatcher', 'goog.labs.testing.StringContainsInOrderMatcher'], ['goog.asserts', 'goog.labs.testing.Matcher', 'goog.string'], false); >+goog.addDependency('labs/testing/stringmatcher_test.js', ['goog.labs.testing.stringMatcherTest'], ['goog.labs.testing.MatcherError', 'goog.labs.testing.StringContainsInOrderMatcher', 'goog.labs.testing.assertThat', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/useragent/browser.js', ['goog.labs.userAgent.browser'], ['goog.array', 'goog.labs.userAgent.util', 'goog.object', 'goog.string'], false); >+goog.addDependency('labs/useragent/browser_test.js', ['goog.labs.userAgent.browserTest'], ['goog.labs.userAgent.browser', 'goog.labs.userAgent.testAgents', 'goog.labs.userAgent.util', 'goog.object', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/useragent/device.js', ['goog.labs.userAgent.device'], ['goog.labs.userAgent.util'], false); >+goog.addDependency('labs/useragent/device_test.js', ['goog.labs.userAgent.deviceTest'], ['goog.labs.userAgent.device', 'goog.labs.userAgent.testAgents', 'goog.labs.userAgent.util', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/useragent/engine.js', ['goog.labs.userAgent.engine'], ['goog.array', 'goog.labs.userAgent.util', 'goog.string'], false); >+goog.addDependency('labs/useragent/engine_test.js', ['goog.labs.userAgent.engineTest'], ['goog.labs.userAgent.engine', 'goog.labs.userAgent.testAgents', 'goog.labs.userAgent.util', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/useragent/platform.js', ['goog.labs.userAgent.platform'], ['goog.labs.userAgent.util', 'goog.string'], false); >+goog.addDependency('labs/useragent/platform_test.js', ['goog.labs.userAgent.platformTest'], ['goog.labs.userAgent.platform', 'goog.labs.userAgent.testAgents', 'goog.labs.userAgent.util', 'goog.testing.jsunit'], false); >+goog.addDependency('labs/useragent/test_agents.js', ['goog.labs.userAgent.testAgents'], [], false); >+goog.addDependency('labs/useragent/util.js', ['goog.labs.userAgent.util'], ['goog.string'], false); >+goog.addDependency('labs/useragent/util_test.js', ['goog.labs.userAgent.utilTest'], ['goog.functions', 'goog.labs.userAgent.testAgents', 'goog.labs.userAgent.util', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], false); >+goog.addDependency('locale/countries.js', ['goog.locale.countries'], [], false); >+goog.addDependency('locale/countrylanguagenames_test.js', ['goog.locale.countryLanguageNamesTest'], ['goog.locale', 'goog.testing.jsunit'], false); >+goog.addDependency('locale/defaultlocalenameconstants.js', ['goog.locale.defaultLocaleNameConstants'], [], false); >+goog.addDependency('locale/genericfontnames.js', ['goog.locale.genericFontNames'], [], false); >+goog.addDependency('locale/genericfontnames_test.js', ['goog.locale.genericFontNamesTest'], ['goog.locale.genericFontNames', 'goog.testing.jsunit'], false); >+goog.addDependency('locale/genericfontnamesdata.js', ['goog.locale.genericFontNamesData'], [], false); >+goog.addDependency('locale/locale.js', ['goog.locale'], ['goog.locale.nativeNameConstants'], false); >+goog.addDependency('locale/nativenameconstants.js', ['goog.locale.nativeNameConstants'], [], false); >+goog.addDependency('locale/scriptToLanguages.js', ['goog.locale.scriptToLanguages'], ['goog.locale'], false); >+goog.addDependency('locale/timezonedetection.js', ['goog.locale.timeZoneDetection'], ['goog.locale.TimeZoneFingerprint'], false); >+goog.addDependency('locale/timezonedetection_test.js', ['goog.locale.timeZoneDetectionTest'], ['goog.locale.timeZoneDetection', 'goog.testing.jsunit'], false); >+goog.addDependency('locale/timezonefingerprint.js', ['goog.locale.TimeZoneFingerprint'], [], false); >+goog.addDependency('locale/timezonelist.js', ['goog.locale.TimeZoneList'], ['goog.locale'], false); >+goog.addDependency('locale/timezonelist_test.js', ['goog.locale.TimeZoneListTest'], ['goog.locale', 'goog.locale.TimeZoneList', 'goog.testing.jsunit'], false); >+goog.addDependency('log/log.js', ['goog.log', 'goog.log.Level', 'goog.log.LogRecord', 'goog.log.Logger'], ['goog.debug', 'goog.debug.LogManager', 'goog.debug.LogRecord', 'goog.debug.Logger'], false); >+goog.addDependency('log/log_test.js', ['goog.logTest'], ['goog.debug.LogManager', 'goog.log', 'goog.log.Level', 'goog.testing.jsunit'], false); >+goog.addDependency('math/affinetransform.js', ['goog.math.AffineTransform'], ['goog.math'], false); >+goog.addDependency('math/affinetransform_test.js', ['goog.math.AffineTransformTest'], ['goog.array', 'goog.math', 'goog.math.AffineTransform', 'goog.testing.jsunit'], false); >+goog.addDependency('math/bezier.js', ['goog.math.Bezier'], ['goog.math', 'goog.math.Coordinate'], false); >+goog.addDependency('math/bezier_test.js', ['goog.math.BezierTest'], ['goog.math', 'goog.math.Bezier', 'goog.math.Coordinate', 'goog.testing.jsunit'], false); >+goog.addDependency('math/box.js', ['goog.math.Box'], ['goog.math.Coordinate'], false); >+goog.addDependency('math/box_test.js', ['goog.math.BoxTest'], ['goog.math.Box', 'goog.math.Coordinate', 'goog.testing.jsunit'], false); >+goog.addDependency('math/coordinate.js', ['goog.math.Coordinate'], ['goog.math'], false); >+goog.addDependency('math/coordinate3.js', ['goog.math.Coordinate3'], [], false); >+goog.addDependency('math/coordinate3_test.js', ['goog.math.Coordinate3Test'], ['goog.math.Coordinate3', 'goog.testing.jsunit'], false); >+goog.addDependency('math/coordinate_test.js', ['goog.math.CoordinateTest'], ['goog.math.Coordinate', 'goog.testing.jsunit'], false); >+goog.addDependency('math/exponentialbackoff.js', ['goog.math.ExponentialBackoff'], ['goog.asserts'], false); >+goog.addDependency('math/exponentialbackoff_test.js', ['goog.math.ExponentialBackoffTest'], ['goog.math.ExponentialBackoff', 'goog.testing.jsunit'], false); >+goog.addDependency('math/integer.js', ['goog.math.Integer'], [], false); >+goog.addDependency('math/integer_test.js', ['goog.math.IntegerTest'], ['goog.math.Integer', 'goog.testing.jsunit'], false); >+goog.addDependency('math/interpolator/interpolator1.js', ['goog.math.interpolator.Interpolator1'], [], false); >+goog.addDependency('math/interpolator/linear1.js', ['goog.math.interpolator.Linear1'], ['goog.array', 'goog.asserts', 'goog.math', 'goog.math.interpolator.Interpolator1'], false); >+goog.addDependency('math/interpolator/linear1_test.js', ['goog.math.interpolator.Linear1Test'], ['goog.math.interpolator.Linear1', 'goog.testing.jsunit'], false); >+goog.addDependency('math/interpolator/pchip1.js', ['goog.math.interpolator.Pchip1'], ['goog.math', 'goog.math.interpolator.Spline1'], false); >+goog.addDependency('math/interpolator/pchip1_test.js', ['goog.math.interpolator.Pchip1Test'], ['goog.math.interpolator.Pchip1', 'goog.testing.jsunit'], false); >+goog.addDependency('math/interpolator/spline1.js', ['goog.math.interpolator.Spline1'], ['goog.array', 'goog.asserts', 'goog.math', 'goog.math.interpolator.Interpolator1', 'goog.math.tdma'], false); >+goog.addDependency('math/interpolator/spline1_test.js', ['goog.math.interpolator.Spline1Test'], ['goog.math.interpolator.Spline1', 'goog.testing.jsunit'], false); >+goog.addDependency('math/line.js', ['goog.math.Line'], ['goog.math', 'goog.math.Coordinate'], false); >+goog.addDependency('math/line_test.js', ['goog.math.LineTest'], ['goog.math.Coordinate', 'goog.math.Line', 'goog.testing.jsunit'], false); >+goog.addDependency('math/long.js', ['goog.math.Long'], [], false); >+goog.addDependency('math/long_test.js', ['goog.math.LongTest'], ['goog.math.Long', 'goog.testing.jsunit'], false); >+goog.addDependency('math/math.js', ['goog.math'], ['goog.array', 'goog.asserts'], false); >+goog.addDependency('math/math_test.js', ['goog.mathTest'], ['goog.math', 'goog.testing.jsunit'], false); >+goog.addDependency('math/matrix.js', ['goog.math.Matrix'], ['goog.array', 'goog.math', 'goog.math.Size', 'goog.string'], false); >+goog.addDependency('math/matrix_test.js', ['goog.math.MatrixTest'], ['goog.math.Matrix', 'goog.testing.jsunit'], false); >+goog.addDependency('math/path.js', ['goog.math.Path', 'goog.math.Path.Segment'], ['goog.array', 'goog.math'], false); >+goog.addDependency('math/path_test.js', ['goog.math.PathTest'], ['goog.array', 'goog.math.AffineTransform', 'goog.math.Path', 'goog.testing.jsunit'], false); >+goog.addDependency('math/paths.js', ['goog.math.paths'], ['goog.math.Coordinate', 'goog.math.Path'], false); >+goog.addDependency('math/paths_test.js', ['goog.math.pathsTest'], ['goog.math.Coordinate', 'goog.math.paths', 'goog.testing.jsunit'], false); >+goog.addDependency('math/range.js', ['goog.math.Range'], ['goog.asserts'], false); >+goog.addDependency('math/range_test.js', ['goog.math.RangeTest'], ['goog.math.Range', 'goog.testing.jsunit'], false); >+goog.addDependency('math/rangeset.js', ['goog.math.RangeSet'], ['goog.array', 'goog.iter.Iterator', 'goog.iter.StopIteration', 'goog.math.Range'], false); >+goog.addDependency('math/rangeset_test.js', ['goog.math.RangeSetTest'], ['goog.iter', 'goog.math.Range', 'goog.math.RangeSet', 'goog.testing.jsunit'], false); >+goog.addDependency('math/rect.js', ['goog.math.Rect'], ['goog.math.Box', 'goog.math.Coordinate', 'goog.math.Size'], false); >+goog.addDependency('math/rect_test.js', ['goog.math.RectTest'], ['goog.math.Box', 'goog.math.Coordinate', 'goog.math.Rect', 'goog.math.Size', 'goog.testing.jsunit'], false); >+goog.addDependency('math/size.js', ['goog.math.Size'], [], false); >+goog.addDependency('math/size_test.js', ['goog.math.SizeTest'], ['goog.math.Size', 'goog.testing.jsunit'], false); >+goog.addDependency('math/tdma.js', ['goog.math.tdma'], [], false); >+goog.addDependency('math/tdma_test.js', ['goog.math.tdmaTest'], ['goog.math.tdma', 'goog.testing.jsunit'], false); >+goog.addDependency('math/vec2.js', ['goog.math.Vec2'], ['goog.math', 'goog.math.Coordinate'], false); >+goog.addDependency('math/vec2_test.js', ['goog.math.Vec2Test'], ['goog.math.Vec2', 'goog.testing.jsunit'], false); >+goog.addDependency('math/vec3.js', ['goog.math.Vec3'], ['goog.math', 'goog.math.Coordinate3'], false); >+goog.addDependency('math/vec3_test.js', ['goog.math.Vec3Test'], ['goog.math.Coordinate3', 'goog.math.Vec3', 'goog.testing.jsunit'], false); >+goog.addDependency('memoize/memoize.js', ['goog.memoize'], [], false); >+goog.addDependency('memoize/memoize_test.js', ['goog.memoizeTest'], ['goog.memoize', 'goog.testing.jsunit'], false); >+goog.addDependency('messaging/abstractchannel.js', ['goog.messaging.AbstractChannel'], ['goog.Disposable', 'goog.json', 'goog.log', 'goog.messaging.MessageChannel'], false); >+goog.addDependency('messaging/abstractchannel_test.js', ['goog.messaging.AbstractChannelTest'], ['goog.messaging.AbstractChannel', 'goog.testing.MockControl', 'goog.testing.async.MockControl', 'goog.testing.jsunit'], false); >+goog.addDependency('messaging/bufferedchannel.js', ['goog.messaging.BufferedChannel'], ['goog.Disposable', 'goog.Timer', 'goog.events', 'goog.log', 'goog.messaging.MessageChannel', 'goog.messaging.MultiChannel'], false); >+goog.addDependency('messaging/bufferedchannel_test.js', ['goog.messaging.BufferedChannelTest'], ['goog.debug.Console', 'goog.dom', 'goog.dom.TagName', 'goog.log', 'goog.log.Level', 'goog.messaging.BufferedChannel', 'goog.testing.MockClock', 'goog.testing.MockControl', 'goog.testing.async.MockControl', 'goog.testing.jsunit', 'goog.testing.messaging.MockMessageChannel'], false); >+goog.addDependency('messaging/deferredchannel.js', ['goog.messaging.DeferredChannel'], ['goog.Disposable', 'goog.messaging.MessageChannel'], false); >+goog.addDependency('messaging/deferredchannel_test.js', ['goog.messaging.DeferredChannelTest'], ['goog.async.Deferred', 'goog.messaging.DeferredChannel', 'goog.testing.MockControl', 'goog.testing.async.MockControl', 'goog.testing.jsunit', 'goog.testing.messaging.MockMessageChannel'], false); >+goog.addDependency('messaging/loggerclient.js', ['goog.messaging.LoggerClient'], ['goog.Disposable', 'goog.debug', 'goog.debug.LogManager', 'goog.debug.Logger'], false); >+goog.addDependency('messaging/loggerclient_test.js', ['goog.messaging.LoggerClientTest'], ['goog.debug', 'goog.debug.Logger', 'goog.messaging.LoggerClient', 'goog.testing.MockControl', 'goog.testing.jsunit', 'goog.testing.messaging.MockMessageChannel'], false); >+goog.addDependency('messaging/loggerserver.js', ['goog.messaging.LoggerServer'], ['goog.Disposable', 'goog.log', 'goog.log.Level'], false); >+goog.addDependency('messaging/loggerserver_test.js', ['goog.messaging.LoggerServerTest'], ['goog.debug.LogManager', 'goog.debug.Logger', 'goog.log', 'goog.log.Level', 'goog.messaging.LoggerServer', 'goog.testing.MockControl', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.messaging.MockMessageChannel'], false); >+goog.addDependency('messaging/messagechannel.js', ['goog.messaging.MessageChannel'], [], false); >+goog.addDependency('messaging/messaging.js', ['goog.messaging'], [], false); >+goog.addDependency('messaging/messaging_test.js', ['goog.testing.messaging.MockMessageChannelTest'], ['goog.messaging', 'goog.testing.MockControl', 'goog.testing.jsunit', 'goog.testing.messaging.MockMessageChannel'], false); >+goog.addDependency('messaging/multichannel.js', ['goog.messaging.MultiChannel', 'goog.messaging.MultiChannel.VirtualChannel'], ['goog.Disposable', 'goog.log', 'goog.messaging.MessageChannel', 'goog.object'], false); >+goog.addDependency('messaging/multichannel_test.js', ['goog.messaging.MultiChannelTest'], ['goog.messaging.MultiChannel', 'goog.testing.MockControl', 'goog.testing.jsunit', 'goog.testing.messaging.MockMessageChannel', 'goog.testing.mockmatchers.IgnoreArgument'], false); >+goog.addDependency('messaging/portcaller.js', ['goog.messaging.PortCaller'], ['goog.Disposable', 'goog.async.Deferred', 'goog.messaging.DeferredChannel', 'goog.messaging.PortChannel', 'goog.messaging.PortNetwork', 'goog.object'], false); >+goog.addDependency('messaging/portcaller_test.js', ['goog.messaging.PortCallerTest'], ['goog.events.EventTarget', 'goog.messaging.PortCaller', 'goog.messaging.PortNetwork', 'goog.testing.MockControl', 'goog.testing.jsunit', 'goog.testing.messaging.MockMessageChannel'], false); >+goog.addDependency('messaging/portchannel.js', ['goog.messaging.PortChannel'], ['goog.Timer', 'goog.array', 'goog.async.Deferred', 'goog.debug', 'goog.events', 'goog.events.EventType', 'goog.json', 'goog.log', 'goog.messaging.AbstractChannel', 'goog.messaging.DeferredChannel', 'goog.object', 'goog.string', 'goog.userAgent'], false); >+goog.addDependency('messaging/portnetwork.js', ['goog.messaging.PortNetwork'], [], false); >+goog.addDependency('messaging/portoperator.js', ['goog.messaging.PortOperator'], ['goog.Disposable', 'goog.asserts', 'goog.log', 'goog.messaging.PortChannel', 'goog.messaging.PortNetwork', 'goog.object'], false); >+goog.addDependency('messaging/portoperator_test.js', ['goog.messaging.PortOperatorTest'], ['goog.messaging.PortNetwork', 'goog.messaging.PortOperator', 'goog.testing.MockControl', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.messaging.MockMessageChannel', 'goog.testing.messaging.MockMessagePort'], false); >+goog.addDependency('messaging/respondingchannel.js', ['goog.messaging.RespondingChannel'], ['goog.Disposable', 'goog.log', 'goog.messaging.MultiChannel'], false); >+goog.addDependency('messaging/respondingchannel_test.js', ['goog.messaging.RespondingChannelTest'], ['goog.messaging.RespondingChannel', 'goog.testing.MockControl', 'goog.testing.jsunit', 'goog.testing.messaging.MockMessageChannel'], false); >+goog.addDependency('messaging/testdata/portchannel_worker.js', ['goog.messaging.testdata.portchannel_worker'], ['goog.messaging.PortChannel'], false); >+goog.addDependency('messaging/testdata/portnetwork_worker1.js', ['goog.messaging.testdata.portnetwork_worker1'], ['goog.messaging.PortCaller', 'goog.messaging.PortChannel'], false); >+goog.addDependency('messaging/testdata/portnetwork_worker2.js', ['goog.messaging.testdata.portnetwork_worker2'], ['goog.messaging.PortCaller', 'goog.messaging.PortChannel'], false); >+goog.addDependency('module/abstractmoduleloader.js', ['goog.module.AbstractModuleLoader'], ['goog.module'], false); >+goog.addDependency('module/basemodule.js', ['goog.module.BaseModule'], ['goog.Disposable', 'goog.module'], false); >+goog.addDependency('module/loader.js', ['goog.module.Loader'], ['goog.Timer', 'goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.module', 'goog.object'], false); >+goog.addDependency('module/module.js', ['goog.module'], [], false); >+goog.addDependency('module/moduleinfo.js', ['goog.module.ModuleInfo'], ['goog.Disposable', 'goog.async.throwException', 'goog.functions', 'goog.module', 'goog.module.BaseModule', 'goog.module.ModuleLoadCallback'], false); >+goog.addDependency('module/moduleinfo_test.js', ['goog.module.ModuleInfoTest'], ['goog.module.BaseModule', 'goog.module.ModuleInfo', 'goog.testing.MockClock', 'goog.testing.jsunit'], false); >+goog.addDependency('module/moduleloadcallback.js', ['goog.module.ModuleLoadCallback'], ['goog.debug.entryPointRegistry', 'goog.debug.errorHandlerWeakDep', 'goog.module'], false); >+goog.addDependency('module/moduleloadcallback_test.js', ['goog.module.ModuleLoadCallbackTest'], ['goog.debug.ErrorHandler', 'goog.debug.entryPointRegistry', 'goog.functions', 'goog.module.ModuleLoadCallback', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('module/moduleloader.js', ['goog.module.ModuleLoader'], ['goog.Timer', 'goog.array', 'goog.events', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.labs.userAgent.browser', 'goog.log', 'goog.module.AbstractModuleLoader', 'goog.net.BulkLoader', 'goog.net.EventType', 'goog.net.jsloader', 'goog.userAgent', 'goog.userAgent.product'], false); >+goog.addDependency('module/moduleloader_test.js', ['goog.module.ModuleLoaderTest'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.functions', 'goog.module.ModuleLoader', 'goog.module.ModuleManager', 'goog.net.BulkLoader', 'goog.net.XmlHttp', 'goog.object', 'goog.testing.AsyncTestCase', 'goog.testing.PropertyReplacer', 'goog.testing.events.EventObserver', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('module/modulemanager.js', ['goog.module.ModuleManager', 'goog.module.ModuleManager.CallbackType', 'goog.module.ModuleManager.FailureType'], ['goog.Disposable', 'goog.array', 'goog.asserts', 'goog.async.Deferred', 'goog.debug.Trace', 'goog.dispose', 'goog.log', 'goog.module', 'goog.module.ModuleInfo', 'goog.module.ModuleLoadCallback', 'goog.object'], false); >+goog.addDependency('module/modulemanager_test.js', ['goog.module.ModuleManagerTest'], ['goog.array', 'goog.functions', 'goog.module.BaseModule', 'goog.module.ModuleManager', 'goog.testing', 'goog.testing.MockClock', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('module/testdata/modA_1.js', ['goog.module.testdata.modA_1'], [], false); >+goog.addDependency('module/testdata/modA_2.js', ['goog.module.testdata.modA_2'], ['goog.module.ModuleManager'], false); >+goog.addDependency('module/testdata/modB_1.js', ['goog.module.testdata.modB_1'], ['goog.module.ModuleManager'], false); >+goog.addDependency('net/browserchannel.js', ['goog.net.BrowserChannel', 'goog.net.BrowserChannel.Error', 'goog.net.BrowserChannel.Event', 'goog.net.BrowserChannel.Handler', 'goog.net.BrowserChannel.LogSaver', 'goog.net.BrowserChannel.QueuedMap', 'goog.net.BrowserChannel.ServerReachability', 'goog.net.BrowserChannel.ServerReachabilityEvent', 'goog.net.BrowserChannel.Stat', 'goog.net.BrowserChannel.StatEvent', 'goog.net.BrowserChannel.State', 'goog.net.BrowserChannel.TimingEvent'], ['goog.Uri', 'goog.array', 'goog.asserts', 'goog.debug.TextFormatter', 'goog.events.Event', 'goog.events.EventTarget', 'goog.json', 'goog.json.EvalJsonProcessor', 'goog.log', 'goog.net.BrowserTestChannel', 'goog.net.ChannelDebug', 'goog.net.ChannelRequest', 'goog.net.XhrIo', 'goog.net.tmpnetwork', 'goog.object', 'goog.string', 'goog.structs', 'goog.structs.CircularBuffer'], false); >+goog.addDependency('net/browserchannel_test.js', ['goog.net.BrowserChannelTest'], ['goog.Timer', 'goog.array', 'goog.dom', 'goog.functions', 'goog.json', 'goog.net.BrowserChannel', 'goog.net.ChannelDebug', 'goog.net.ChannelRequest', 'goog.net.tmpnetwork', 'goog.structs.Map', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.asserts', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('net/browsertestchannel.js', ['goog.net.BrowserTestChannel'], ['goog.json.EvalJsonProcessor', 'goog.net.ChannelRequest', 'goog.net.ChannelRequest.Error', 'goog.net.tmpnetwork', 'goog.string.Parser', 'goog.userAgent'], false); >+goog.addDependency('net/bulkloader.js', ['goog.net.BulkLoader'], ['goog.events.EventHandler', 'goog.events.EventTarget', 'goog.log', 'goog.net.BulkLoaderHelper', 'goog.net.EventType', 'goog.net.XhrIo'], false); >+goog.addDependency('net/bulkloader_test.js', ['goog.net.BulkLoaderTest'], ['goog.events.Event', 'goog.events.EventHandler', 'goog.net.BulkLoader', 'goog.net.EventType', 'goog.testing.MockClock', 'goog.testing.jsunit'], false); >+goog.addDependency('net/bulkloaderhelper.js', ['goog.net.BulkLoaderHelper'], ['goog.Disposable', 'goog.log'], false); >+goog.addDependency('net/channeldebug.js', ['goog.net.ChannelDebug'], ['goog.json', 'goog.log'], false); >+goog.addDependency('net/channelrequest.js', ['goog.net.ChannelRequest', 'goog.net.ChannelRequest.Error'], ['goog.Timer', 'goog.async.Throttle', 'goog.dom.TagName', 'goog.events.EventHandler', 'goog.net.ErrorCode', 'goog.net.EventType', 'goog.net.XmlHttp', 'goog.object', 'goog.userAgent'], false); >+goog.addDependency('net/channelrequest_test.js', ['goog.net.ChannelRequestTest'], ['goog.Uri', 'goog.functions', 'goog.net.BrowserChannel', 'goog.net.ChannelDebug', 'goog.net.ChannelRequest', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.net.XhrIo', 'goog.testing.recordFunction'], false); >+goog.addDependency('net/cookies.js', ['goog.net.Cookies', 'goog.net.cookies'], [], false); >+goog.addDependency('net/cookies_test.js', ['goog.net.cookiesTest'], ['goog.array', 'goog.net.cookies', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], false); >+goog.addDependency('net/corsxmlhttpfactory.js', ['goog.net.CorsXmlHttpFactory', 'goog.net.IeCorsXhrAdapter'], ['goog.net.HttpStatus', 'goog.net.XhrLike', 'goog.net.XmlHttp', 'goog.net.XmlHttpFactory'], false); >+goog.addDependency('net/corsxmlhttpfactory_test.js', ['goog.net.CorsXmlHttpFactoryTest'], ['goog.net.CorsXmlHttpFactory', 'goog.net.IeCorsXhrAdapter', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('net/crossdomainrpc.js', ['goog.net.CrossDomainRpc'], ['goog.Uri', 'goog.dom', 'goog.dom.TagName', 'goog.dom.safe', 'goog.events', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.html.legacyconversions', 'goog.json', 'goog.log', 'goog.net.EventType', 'goog.net.HttpStatus', 'goog.string', 'goog.userAgent'], false); >+goog.addDependency('net/crossdomainrpc_test.js', ['goog.net.CrossDomainRpcTest'], ['goog.log', 'goog.log.Level', 'goog.net.CrossDomainRpc', 'goog.testing.AsyncTestCase', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('net/errorcode.js', ['goog.net.ErrorCode'], [], false); >+goog.addDependency('net/eventtype.js', ['goog.net.EventType'], [], false); >+goog.addDependency('net/filedownloader.js', ['goog.net.FileDownloader', 'goog.net.FileDownloader.Error'], ['goog.Disposable', 'goog.asserts', 'goog.async.Deferred', 'goog.crypt.hash32', 'goog.debug.Error', 'goog.events', 'goog.events.EventHandler', 'goog.fs', 'goog.fs.DirectoryEntry', 'goog.fs.Error', 'goog.fs.FileSaver', 'goog.net.EventType', 'goog.net.XhrIo', 'goog.net.XhrIoPool', 'goog.object'], false); >+goog.addDependency('net/filedownloader_test.js', ['goog.net.FileDownloaderTest'], ['goog.fs.Error', 'goog.net.ErrorCode', 'goog.net.FileDownloader', 'goog.net.XhrIo', 'goog.testing.AsyncTestCase', 'goog.testing.PropertyReplacer', 'goog.testing.fs', 'goog.testing.fs.FileSystem', 'goog.testing.jsunit', 'goog.testing.net.XhrIoPool'], false); >+goog.addDependency('net/httpstatus.js', ['goog.net.HttpStatus'], [], false); >+goog.addDependency('net/iframe_xhr_test.js', ['goog.net.iframeXhrTest'], ['goog.Timer', 'goog.debug.Console', 'goog.debug.LogManager', 'goog.debug.Logger', 'goog.dom.TagName', 'goog.events', 'goog.net.IframeIo', 'goog.net.XhrIo', 'goog.testing.AsyncTestCase', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('net/iframeio.js', ['goog.net.IframeIo', 'goog.net.IframeIo.IncrementalDataEvent'], ['goog.Timer', 'goog.Uri', 'goog.asserts', 'goog.debug', 'goog.dom', 'goog.dom.InputType', 'goog.dom.TagName', 'goog.dom.safe', 'goog.events', 'goog.events.Event', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.html.uncheckedconversions', 'goog.json', 'goog.log', 'goog.log.Level', 'goog.net.ErrorCode', 'goog.net.EventType', 'goog.reflect', 'goog.string', 'goog.string.Const', 'goog.structs', 'goog.userAgent'], false); >+goog.addDependency('net/iframeio_different_base_test.js', ['goog.net.iframeIoDifferentBaseTest'], ['goog.events', 'goog.net.EventType', 'goog.net.IframeIo', 'goog.testing.AsyncTestCase', 'goog.testing.jsunit'], false); >+goog.addDependency('net/iframeio_test.js', ['goog.net.IframeIoTest'], ['goog.debug', 'goog.debug.DivConsole', 'goog.debug.LogManager', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'goog.log', 'goog.log.Level', 'goog.net.IframeIo', 'goog.testing.events', 'goog.testing.events.Event', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('net/iframeloadmonitor.js', ['goog.net.IframeLoadMonitor'], ['goog.dom', 'goog.events', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.userAgent'], false); >+goog.addDependency('net/iframeloadmonitor_test.js', ['goog.net.IframeLoadMonitorTest'], ['goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.net.IframeLoadMonitor', 'goog.testing.AsyncTestCase', 'goog.testing.jsunit'], false); >+goog.addDependency('net/imageloader.js', ['goog.net.ImageLoader'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.net.EventType', 'goog.object', 'goog.userAgent'], false); >+goog.addDependency('net/imageloader_test.js', ['goog.net.ImageLoaderTest'], ['goog.Timer', 'goog.array', 'goog.dispose', 'goog.events', 'goog.events.Event', 'goog.events.EventType', 'goog.net.EventType', 'goog.net.ImageLoader', 'goog.object', 'goog.string', 'goog.testing.AsyncTestCase', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('net/ipaddress.js', ['goog.net.IpAddress', 'goog.net.Ipv4Address', 'goog.net.Ipv6Address'], ['goog.array', 'goog.math.Integer', 'goog.object', 'goog.string'], false); >+goog.addDependency('net/ipaddress_test.js', ['goog.net.IpAddressTest'], ['goog.math.Integer', 'goog.net.IpAddress', 'goog.net.Ipv4Address', 'goog.net.Ipv6Address', 'goog.testing.jsunit'], false); >+goog.addDependency('net/jsloader.js', ['goog.net.jsloader', 'goog.net.jsloader.Error', 'goog.net.jsloader.ErrorCode', 'goog.net.jsloader.Options'], ['goog.array', 'goog.async.Deferred', 'goog.debug.Error', 'goog.dom', 'goog.dom.TagName'], false); >+goog.addDependency('net/jsloader_test.js', ['goog.net.jsloaderTest'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.net.jsloader', 'goog.net.jsloader.ErrorCode', 'goog.testing.AsyncTestCase', 'goog.testing.jsunit'], false); >+goog.addDependency('net/jsonp.js', ['goog.net.Jsonp'], ['goog.Uri', 'goog.net.jsloader'], false); >+goog.addDependency('net/jsonp_test.js', ['goog.net.JsonpTest'], ['goog.net.Jsonp', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.userAgent'], false); >+goog.addDependency('net/mockiframeio.js', ['goog.net.MockIFrameIo'], ['goog.events.EventTarget', 'goog.json', 'goog.net.ErrorCode', 'goog.net.EventType', 'goog.net.IframeIo'], false); >+goog.addDependency('net/multiiframeloadmonitor.js', ['goog.net.MultiIframeLoadMonitor'], ['goog.events', 'goog.net.IframeLoadMonitor'], false); >+goog.addDependency('net/multiiframeloadmonitor_test.js', ['goog.net.MultiIframeLoadMonitorTest'], ['goog.dom', 'goog.dom.TagName', 'goog.net.IframeLoadMonitor', 'goog.net.MultiIframeLoadMonitor', 'goog.testing.AsyncTestCase', 'goog.testing.jsunit'], false); >+goog.addDependency('net/networkstatusmonitor.js', ['goog.net.NetworkStatusMonitor'], ['goog.events.Listenable'], false); >+goog.addDependency('net/networktester.js', ['goog.net.NetworkTester'], ['goog.Timer', 'goog.Uri', 'goog.log'], false); >+goog.addDependency('net/networktester_test.js', ['goog.net.NetworkTesterTest'], ['goog.Uri', 'goog.net.NetworkTester', 'goog.testing.MockClock', 'goog.testing.jsunit'], false); >+goog.addDependency('net/testdata/jsloader_test1.js', ['goog.net.testdata.jsloader_test1'], [], false); >+goog.addDependency('net/testdata/jsloader_test2.js', ['goog.net.testdata.jsloader_test2'], [], false); >+goog.addDependency('net/testdata/jsloader_test3.js', ['goog.net.testdata.jsloader_test3'], [], false); >+goog.addDependency('net/testdata/jsloader_test4.js', ['goog.net.testdata.jsloader_test4'], [], false); >+goog.addDependency('net/tmpnetwork.js', ['goog.net.tmpnetwork'], ['goog.Uri', 'goog.net.ChannelDebug'], false); >+goog.addDependency('net/websocket.js', ['goog.net.WebSocket', 'goog.net.WebSocket.ErrorEvent', 'goog.net.WebSocket.EventType', 'goog.net.WebSocket.MessageEvent'], ['goog.Timer', 'goog.asserts', 'goog.debug.entryPointRegistry', 'goog.events', 'goog.events.Event', 'goog.events.EventTarget', 'goog.log'], false); >+goog.addDependency('net/websocket_test.js', ['goog.net.WebSocketTest'], ['goog.debug.EntryPointMonitor', 'goog.debug.ErrorHandler', 'goog.debug.entryPointRegistry', 'goog.events', 'goog.functions', 'goog.net.WebSocket', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('net/wrapperxmlhttpfactory.js', ['goog.net.WrapperXmlHttpFactory'], ['goog.net.XhrLike', 'goog.net.XmlHttpFactory'], false); >+goog.addDependency('net/xhrio.js', ['goog.net.XhrIo', 'goog.net.XhrIo.ResponseType'], ['goog.Timer', 'goog.array', 'goog.debug.entryPointRegistry', 'goog.events.EventTarget', 'goog.json', 'goog.log', 'goog.net.ErrorCode', 'goog.net.EventType', 'goog.net.HttpStatus', 'goog.net.XmlHttp', 'goog.object', 'goog.string', 'goog.structs', 'goog.structs.Map', 'goog.uri.utils', 'goog.userAgent'], false); >+goog.addDependency('net/xhrio_test.js', ['goog.net.XhrIoTest'], ['goog.Uri', 'goog.debug.EntryPointMonitor', 'goog.debug.ErrorHandler', 'goog.debug.entryPointRegistry', 'goog.events', 'goog.functions', 'goog.net.EventType', 'goog.net.WrapperXmlHttpFactory', 'goog.net.XhrIo', 'goog.net.XmlHttp', 'goog.object', 'goog.string', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.net.XhrIo', 'goog.testing.recordFunction'], false); >+goog.addDependency('net/xhriopool.js', ['goog.net.XhrIoPool'], ['goog.net.XhrIo', 'goog.structs.PriorityPool'], false); >+goog.addDependency('net/xhrlike.js', ['goog.net.XhrLike'], [], false); >+goog.addDependency('net/xhrmanager.js', ['goog.net.XhrManager', 'goog.net.XhrManager.Event', 'goog.net.XhrManager.Request'], ['goog.events', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.net.ErrorCode', 'goog.net.EventType', 'goog.net.XhrIo', 'goog.net.XhrIoPool', 'goog.structs.Map'], false); >+goog.addDependency('net/xhrmanager_test.js', ['goog.net.XhrManagerTest'], ['goog.events', 'goog.net.EventType', 'goog.net.XhrIo', 'goog.net.XhrManager', 'goog.testing.jsunit', 'goog.testing.net.XhrIoPool', 'goog.testing.recordFunction'], false); >+goog.addDependency('net/xmlhttp.js', ['goog.net.DefaultXmlHttpFactory', 'goog.net.XmlHttp', 'goog.net.XmlHttp.OptionType', 'goog.net.XmlHttp.ReadyState', 'goog.net.XmlHttpDefines'], ['goog.asserts', 'goog.net.WrapperXmlHttpFactory', 'goog.net.XmlHttpFactory'], false); >+goog.addDependency('net/xmlhttpfactory.js', ['goog.net.XmlHttpFactory'], ['goog.net.XhrLike'], false); >+goog.addDependency('net/xpc/crosspagechannel.js', ['goog.net.xpc.CrossPageChannel'], ['goog.Uri', 'goog.async.Deferred', 'goog.async.Delay', 'goog.dispose', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.json', 'goog.log', 'goog.messaging.AbstractChannel', 'goog.net.xpc', 'goog.net.xpc.CfgFields', 'goog.net.xpc.ChannelStates', 'goog.net.xpc.CrossPageChannelRole', 'goog.net.xpc.DirectTransport', 'goog.net.xpc.FrameElementMethodTransport', 'goog.net.xpc.IframePollingTransport', 'goog.net.xpc.IframeRelayTransport', 'goog.net.xpc.NativeMessagingTransport', 'goog.net.xpc.NixTransport', 'goog.net.xpc.TransportTypes', 'goog.net.xpc.UriCfgFields', 'goog.string', 'goog.uri.utils', 'goog.userAgent'], false); >+goog.addDependency('net/xpc/crosspagechannel_test.js', ['goog.net.xpc.CrossPageChannelTest'], ['goog.Disposable', 'goog.Uri', 'goog.async.Deferred', 'goog.dom', 'goog.dom.TagName', 'goog.labs.userAgent.browser', 'goog.log', 'goog.log.Level', 'goog.net.xpc', 'goog.net.xpc.CfgFields', 'goog.net.xpc.CrossPageChannel', 'goog.net.xpc.CrossPageChannelRole', 'goog.net.xpc.TransportTypes', 'goog.object', 'goog.testing.AsyncTestCase', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], false); >+goog.addDependency('net/xpc/crosspagechannelrole.js', ['goog.net.xpc.CrossPageChannelRole'], [], false); >+goog.addDependency('net/xpc/directtransport.js', ['goog.net.xpc.DirectTransport'], ['goog.Timer', 'goog.async.Deferred', 'goog.events.EventHandler', 'goog.log', 'goog.net.xpc', 'goog.net.xpc.CfgFields', 'goog.net.xpc.CrossPageChannelRole', 'goog.net.xpc.Transport', 'goog.net.xpc.TransportTypes', 'goog.object'], false); >+goog.addDependency('net/xpc/directtransport_test.js', ['goog.net.xpc.DirectTransportTest'], ['goog.dom', 'goog.dom.TagName', 'goog.labs.userAgent.browser', 'goog.log', 'goog.log.Level', 'goog.net.xpc', 'goog.net.xpc.CfgFields', 'goog.net.xpc.CrossPageChannel', 'goog.net.xpc.CrossPageChannelRole', 'goog.net.xpc.TransportTypes', 'goog.testing.AsyncTestCase', 'goog.testing.jsunit'], false); >+goog.addDependency('net/xpc/frameelementmethodtransport.js', ['goog.net.xpc.FrameElementMethodTransport'], ['goog.log', 'goog.net.xpc', 'goog.net.xpc.CrossPageChannelRole', 'goog.net.xpc.Transport', 'goog.net.xpc.TransportTypes'], false); >+goog.addDependency('net/xpc/iframepollingtransport.js', ['goog.net.xpc.IframePollingTransport', 'goog.net.xpc.IframePollingTransport.Receiver', 'goog.net.xpc.IframePollingTransport.Sender'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.log', 'goog.log.Level', 'goog.net.xpc', 'goog.net.xpc.CfgFields', 'goog.net.xpc.CrossPageChannelRole', 'goog.net.xpc.Transport', 'goog.net.xpc.TransportTypes', 'goog.userAgent'], false); >+goog.addDependency('net/xpc/iframepollingtransport_test.js', ['goog.net.xpc.IframePollingTransportTest'], ['goog.Timer', 'goog.dom', 'goog.dom.TagName', 'goog.functions', 'goog.net.xpc.CfgFields', 'goog.net.xpc.CrossPageChannel', 'goog.net.xpc.CrossPageChannelRole', 'goog.net.xpc.TransportTypes', 'goog.object', 'goog.testing.MockClock', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('net/xpc/iframerelaytransport.js', ['goog.net.xpc.IframeRelayTransport'], ['goog.dom', 'goog.dom.TagName', 'goog.dom.safe', 'goog.events', 'goog.html.SafeHtml', 'goog.log', 'goog.log.Level', 'goog.net.xpc', 'goog.net.xpc.CfgFields', 'goog.net.xpc.Transport', 'goog.net.xpc.TransportTypes', 'goog.string', 'goog.string.Const', 'goog.userAgent'], false); >+goog.addDependency('net/xpc/nativemessagingtransport.js', ['goog.net.xpc.NativeMessagingTransport'], ['goog.Timer', 'goog.asserts', 'goog.async.Deferred', 'goog.events', 'goog.events.EventHandler', 'goog.log', 'goog.net.xpc', 'goog.net.xpc.CrossPageChannelRole', 'goog.net.xpc.Transport', 'goog.net.xpc.TransportTypes'], false); >+goog.addDependency('net/xpc/nativemessagingtransport_test.js', ['goog.net.xpc.NativeMessagingTransportTest'], ['goog.dom', 'goog.events', 'goog.net.xpc', 'goog.net.xpc.CfgFields', 'goog.net.xpc.CrossPageChannel', 'goog.net.xpc.CrossPageChannelRole', 'goog.net.xpc.NativeMessagingTransport', 'goog.testing.jsunit'], false); >+goog.addDependency('net/xpc/nixtransport.js', ['goog.net.xpc.NixTransport'], ['goog.log', 'goog.net.xpc', 'goog.net.xpc.CfgFields', 'goog.net.xpc.CrossPageChannelRole', 'goog.net.xpc.Transport', 'goog.net.xpc.TransportTypes', 'goog.reflect'], false); >+goog.addDependency('net/xpc/relay.js', ['goog.net.xpc.relay'], [], false); >+goog.addDependency('net/xpc/transport.js', ['goog.net.xpc.Transport'], ['goog.Disposable', 'goog.dom', 'goog.net.xpc.TransportNames'], false); >+goog.addDependency('net/xpc/xpc.js', ['goog.net.xpc', 'goog.net.xpc.CfgFields', 'goog.net.xpc.ChannelStates', 'goog.net.xpc.TransportNames', 'goog.net.xpc.TransportTypes', 'goog.net.xpc.UriCfgFields'], ['goog.log'], false); >+goog.addDependency('object/object.js', ['goog.object'], [], false); >+goog.addDependency('object/object_test.js', ['goog.objectTest'], ['goog.functions', 'goog.object', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('positioning/absoluteposition.js', ['goog.positioning.AbsolutePosition'], ['goog.math.Coordinate', 'goog.positioning', 'goog.positioning.AbstractPosition'], false); >+goog.addDependency('positioning/abstractposition.js', ['goog.positioning.AbstractPosition'], [], false); >+goog.addDependency('positioning/anchoredposition.js', ['goog.positioning.AnchoredPosition'], ['goog.positioning', 'goog.positioning.AbstractPosition'], false); >+goog.addDependency('positioning/anchoredposition_test.js', ['goog.positioning.AnchoredPositionTest'], ['goog.dom', 'goog.positioning.AnchoredPosition', 'goog.positioning.Corner', 'goog.positioning.Overflow', 'goog.style', 'goog.testing.jsunit'], false); >+goog.addDependency('positioning/anchoredviewportposition.js', ['goog.positioning.AnchoredViewportPosition'], ['goog.positioning', 'goog.positioning.AnchoredPosition', 'goog.positioning.Overflow', 'goog.positioning.OverflowStatus'], false); >+goog.addDependency('positioning/anchoredviewportposition_test.js', ['goog.positioning.AnchoredViewportPositionTest'], ['goog.dom', 'goog.math.Box', 'goog.positioning.AnchoredViewportPosition', 'goog.positioning.Corner', 'goog.positioning.OverflowStatus', 'goog.style', 'goog.testing.jsunit'], false); >+goog.addDependency('positioning/clientposition.js', ['goog.positioning.ClientPosition'], ['goog.asserts', 'goog.dom', 'goog.math.Coordinate', 'goog.positioning', 'goog.positioning.AbstractPosition', 'goog.style'], false); >+goog.addDependency('positioning/clientposition_test.js', ['goog.positioning.clientPositionTest'], ['goog.dom', 'goog.dom.TagName', 'goog.positioning.ClientPosition', 'goog.positioning.Corner', 'goog.style', 'goog.testing.jsunit'], false); >+goog.addDependency('positioning/menuanchoredposition.js', ['goog.positioning.MenuAnchoredPosition'], ['goog.positioning.AnchoredViewportPosition', 'goog.positioning.Overflow'], false); >+goog.addDependency('positioning/menuanchoredposition_test.js', ['goog.positioning.MenuAnchoredPositionTest'], ['goog.dom', 'goog.dom.TagName', 'goog.positioning.Corner', 'goog.positioning.MenuAnchoredPosition', 'goog.testing.jsunit'], false); >+goog.addDependency('positioning/positioning.js', ['goog.positioning', 'goog.positioning.Corner', 'goog.positioning.CornerBit', 'goog.positioning.Overflow', 'goog.positioning.OverflowStatus'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.math.Coordinate', 'goog.math.Rect', 'goog.math.Size', 'goog.style', 'goog.style.bidi'], false); >+goog.addDependency('positioning/positioning_test.js', ['goog.positioningTest'], ['goog.dom', 'goog.dom.DomHelper', 'goog.dom.TagName', 'goog.math.Box', 'goog.math.Coordinate', 'goog.math.Size', 'goog.positioning', 'goog.positioning.Corner', 'goog.positioning.Overflow', 'goog.positioning.OverflowStatus', 'goog.style', 'goog.testing.ExpectedFailures', 'goog.testing.jsunit', 'goog.userAgent', 'goog.userAgent.product'], false); >+goog.addDependency('positioning/viewportclientposition.js', ['goog.positioning.ViewportClientPosition'], ['goog.dom', 'goog.math.Coordinate', 'goog.positioning', 'goog.positioning.ClientPosition', 'goog.positioning.Overflow', 'goog.positioning.OverflowStatus', 'goog.style'], false); >+goog.addDependency('positioning/viewportclientposition_test.js', ['goog.positioning.ViewportClientPositionTest'], ['goog.dom', 'goog.positioning.Corner', 'goog.positioning.Overflow', 'goog.positioning.ViewportClientPosition', 'goog.style', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('positioning/viewportposition.js', ['goog.positioning.ViewportPosition'], ['goog.math.Coordinate', 'goog.positioning', 'goog.positioning.AbstractPosition', 'goog.positioning.Corner', 'goog.style'], false); >+goog.addDependency('promise/promise.js', ['goog.Promise'], ['goog.Thenable', 'goog.asserts', 'goog.async.FreeList', 'goog.async.run', 'goog.async.throwException', 'goog.debug.Error', 'goog.promise.Resolver'], false); >+goog.addDependency('promise/promise_test.js', ['goog.PromiseTest'], ['goog.Promise', 'goog.Thenable', 'goog.functions', 'goog.testing.AsyncTestCase', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('promise/resolver.js', ['goog.promise.Resolver'], [], false); >+goog.addDependency('promise/testsuiteadapter.js', ['goog.promise.testSuiteAdapter'], ['goog.Promise'], false); >+goog.addDependency('promise/thenable.js', ['goog.Thenable'], [], false); >+goog.addDependency('proto/proto.js', ['goog.proto'], ['goog.proto.Serializer'], false); >+goog.addDependency('proto/serializer.js', ['goog.proto.Serializer'], ['goog.json.Serializer', 'goog.string'], false); >+goog.addDependency('proto/serializer_test.js', ['goog.protoTest'], ['goog.proto', 'goog.testing.jsunit'], false); >+goog.addDependency('proto2/descriptor.js', ['goog.proto2.Descriptor', 'goog.proto2.Metadata'], ['goog.array', 'goog.asserts', 'goog.object', 'goog.string'], false); >+goog.addDependency('proto2/descriptor_test.js', ['goog.proto2.DescriptorTest'], ['goog.proto2.Descriptor', 'goog.proto2.Message', 'goog.testing.jsunit'], false); >+goog.addDependency('proto2/fielddescriptor.js', ['goog.proto2.FieldDescriptor'], ['goog.asserts', 'goog.string'], false); >+goog.addDependency('proto2/fielddescriptor_test.js', ['goog.proto2.FieldDescriptorTest'], ['goog.proto2.FieldDescriptor', 'goog.proto2.Message', 'goog.testing.jsunit'], false); >+goog.addDependency('proto2/lazydeserializer.js', ['goog.proto2.LazyDeserializer'], ['goog.asserts', 'goog.proto2.Message', 'goog.proto2.Serializer'], false); >+goog.addDependency('proto2/message.js', ['goog.proto2.Message'], ['goog.asserts', 'goog.proto2.Descriptor', 'goog.proto2.FieldDescriptor'], false); >+goog.addDependency('proto2/message_test.js', ['goog.proto2.MessageTest'], ['goog.testing.jsunit', 'proto2.TestAllTypes', 'proto2.TestAllTypes.NestedEnum', 'proto2.TestAllTypes.NestedMessage', 'proto2.TestAllTypes.OptionalGroup', 'proto2.TestAllTypes.RepeatedGroup'], false); >+goog.addDependency('proto2/objectserializer.js', ['goog.proto2.ObjectSerializer'], ['goog.asserts', 'goog.proto2.FieldDescriptor', 'goog.proto2.Serializer', 'goog.string'], false); >+goog.addDependency('proto2/objectserializer_test.js', ['goog.proto2.ObjectSerializerTest'], ['goog.proto2.ObjectSerializer', 'goog.proto2.Serializer', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'proto2.TestAllTypes'], false); >+goog.addDependency('proto2/package_test.pb.js', ['someprotopackage.TestPackageTypes'], ['goog.proto2.Message', 'proto2.TestAllTypes'], false); >+goog.addDependency('proto2/pbliteserializer.js', ['goog.proto2.PbLiteSerializer'], ['goog.asserts', 'goog.proto2.FieldDescriptor', 'goog.proto2.LazyDeserializer', 'goog.proto2.Serializer'], false); >+goog.addDependency('proto2/pbliteserializer_test.js', ['goog.proto2.PbLiteSerializerTest'], ['goog.proto2.PbLiteSerializer', 'goog.testing.jsunit', 'proto2.TestAllTypes'], false); >+goog.addDependency('proto2/proto_test.js', ['goog.proto2.messageTest'], ['goog.proto2.FieldDescriptor', 'goog.testing.jsunit', 'proto2.TestAllTypes', 'someprotopackage.TestPackageTypes'], false); >+goog.addDependency('proto2/serializer.js', ['goog.proto2.Serializer'], ['goog.asserts', 'goog.proto2.FieldDescriptor', 'goog.proto2.Message'], false); >+goog.addDependency('proto2/test.pb.js', ['proto2.TestAllTypes', 'proto2.TestAllTypes.NestedEnum', 'proto2.TestAllTypes.NestedMessage', 'proto2.TestAllTypes.OptionalGroup', 'proto2.TestAllTypes.RepeatedGroup', 'proto2.TestDefaultChild', 'proto2.TestDefaultParent'], ['goog.proto2.Message'], false); >+goog.addDependency('proto2/textformatserializer.js', ['goog.proto2.TextFormatSerializer'], ['goog.array', 'goog.asserts', 'goog.json', 'goog.math', 'goog.object', 'goog.proto2.FieldDescriptor', 'goog.proto2.Message', 'goog.proto2.Serializer', 'goog.string'], false); >+goog.addDependency('proto2/textformatserializer_test.js', ['goog.proto2.TextFormatSerializerTest'], ['goog.proto2.ObjectSerializer', 'goog.proto2.TextFormatSerializer', 'goog.testing.jsunit', 'proto2.TestAllTypes'], false); >+goog.addDependency('proto2/util.js', ['goog.proto2.Util'], ['goog.asserts'], false); >+goog.addDependency('pubsub/pubsub.js', ['goog.pubsub.PubSub'], ['goog.Disposable', 'goog.array'], false); >+goog.addDependency('pubsub/pubsub_test.js', ['goog.pubsub.PubSubTest'], ['goog.array', 'goog.pubsub.PubSub', 'goog.testing.jsunit'], false); >+goog.addDependency('pubsub/topicid.js', ['goog.pubsub.TopicId'], [], false); >+goog.addDependency('pubsub/typedpubsub.js', ['goog.pubsub.TypedPubSub'], ['goog.Disposable', 'goog.pubsub.PubSub'], false); >+goog.addDependency('pubsub/typedpubsub_test.js', ['goog.pubsub.TypedPubSubTest'], ['goog.array', 'goog.pubsub.TopicId', 'goog.pubsub.TypedPubSub', 'goog.testing.jsunit'], false); >+goog.addDependency('reflect/reflect.js', ['goog.reflect'], [], false); >+goog.addDependency('result/deferredadaptor.js', ['goog.result.DeferredAdaptor'], ['goog.async.Deferred', 'goog.result', 'goog.result.Result'], false); >+goog.addDependency('result/dependentresult.js', ['goog.result.DependentResult'], ['goog.result.Result'], false); >+goog.addDependency('result/result_interface.js', ['goog.result.Result'], ['goog.Thenable'], false); >+goog.addDependency('result/resultutil.js', ['goog.result'], ['goog.array', 'goog.result.DependentResult', 'goog.result.Result', 'goog.result.SimpleResult'], false); >+goog.addDependency('result/simpleresult.js', ['goog.result.SimpleResult', 'goog.result.SimpleResult.StateError'], ['goog.Promise', 'goog.Thenable', 'goog.debug.Error', 'goog.result.Result'], false); >+goog.addDependency('soy/data.js', ['goog.soy.data.SanitizedContent', 'goog.soy.data.SanitizedContentKind'], ['goog.html.SafeHtml', 'goog.html.uncheckedconversions', 'goog.string.Const'], false); >+goog.addDependency('soy/data_test.js', ['goog.soy.dataTest'], ['goog.html.SafeHtml', 'goog.soy.testHelper', 'goog.testing.jsunit'], false); >+goog.addDependency('soy/renderer.js', ['goog.soy.InjectedDataSupplier', 'goog.soy.Renderer'], ['goog.asserts', 'goog.dom', 'goog.soy', 'goog.soy.data.SanitizedContent', 'goog.soy.data.SanitizedContentKind'], false); >+goog.addDependency('soy/renderer_test.js', ['goog.soy.RendererTest'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.html.SafeHtml', 'goog.i18n.bidi.Dir', 'goog.soy.Renderer', 'goog.soy.data.SanitizedContentKind', 'goog.soy.testHelper', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('soy/soy.js', ['goog.soy'], ['goog.asserts', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.soy.data.SanitizedContent', 'goog.soy.data.SanitizedContentKind', 'goog.string'], false); >+goog.addDependency('soy/soy_test.js', ['goog.soyTest'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.functions', 'goog.soy', 'goog.soy.testHelper', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], false); >+goog.addDependency('soy/soy_testhelper.js', ['goog.soy.testHelper'], ['goog.dom', 'goog.dom.TagName', 'goog.i18n.bidi.Dir', 'goog.soy.data.SanitizedContent', 'goog.soy.data.SanitizedContentKind', 'goog.string', 'goog.userAgent'], false); >+goog.addDependency('spell/spellcheck.js', ['goog.spell.SpellCheck', 'goog.spell.SpellCheck.WordChangedEvent'], ['goog.Timer', 'goog.events.Event', 'goog.events.EventTarget', 'goog.structs.Set'], false); >+goog.addDependency('spell/spellcheck_test.js', ['goog.spell.SpellCheckTest'], ['goog.spell.SpellCheck', 'goog.testing.jsunit'], false); >+goog.addDependency('stats/basicstat.js', ['goog.stats.BasicStat'], ['goog.asserts', 'goog.log', 'goog.string.format', 'goog.structs.CircularBuffer'], false); >+goog.addDependency('stats/basicstat_test.js', ['goog.stats.BasicStatTest'], ['goog.array', 'goog.stats.BasicStat', 'goog.string.format', 'goog.testing.PseudoRandom', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('storage/collectablestorage.js', ['goog.storage.CollectableStorage'], ['goog.array', 'goog.iter', 'goog.storage.ErrorCode', 'goog.storage.ExpiringStorage', 'goog.storage.RichStorage'], false); >+goog.addDependency('storage/collectablestorage_test.js', ['goog.storage.CollectableStorageTest'], ['goog.storage.CollectableStorage', 'goog.storage.collectableStorageTester', 'goog.storage.storage_test', 'goog.testing.MockClock', 'goog.testing.jsunit', 'goog.testing.storage.FakeMechanism'], false); >+goog.addDependency('storage/collectablestoragetester.js', ['goog.storage.collectableStorageTester'], ['goog.testing.asserts'], false); >+goog.addDependency('storage/encryptedstorage.js', ['goog.storage.EncryptedStorage'], ['goog.crypt', 'goog.crypt.Arc4', 'goog.crypt.Sha1', 'goog.crypt.base64', 'goog.json', 'goog.json.Serializer', 'goog.storage.CollectableStorage', 'goog.storage.ErrorCode', 'goog.storage.RichStorage'], false); >+goog.addDependency('storage/encryptedstorage_test.js', ['goog.storage.EncryptedStorageTest'], ['goog.json', 'goog.storage.EncryptedStorage', 'goog.storage.ErrorCode', 'goog.storage.RichStorage', 'goog.storage.collectableStorageTester', 'goog.storage.storage_test', 'goog.testing.MockClock', 'goog.testing.PseudoRandom', 'goog.testing.jsunit', 'goog.testing.storage.FakeMechanism'], false); >+goog.addDependency('storage/errorcode.js', ['goog.storage.ErrorCode'], [], false); >+goog.addDependency('storage/expiringstorage.js', ['goog.storage.ExpiringStorage'], ['goog.storage.RichStorage'], false); >+goog.addDependency('storage/expiringstorage_test.js', ['goog.storage.ExpiringStorageTest'], ['goog.storage.ExpiringStorage', 'goog.storage.storage_test', 'goog.testing.MockClock', 'goog.testing.jsunit', 'goog.testing.storage.FakeMechanism'], false); >+goog.addDependency('storage/mechanism/errorcode.js', ['goog.storage.mechanism.ErrorCode'], [], false); >+goog.addDependency('storage/mechanism/errorhandlingmechanism.js', ['goog.storage.mechanism.ErrorHandlingMechanism'], ['goog.storage.mechanism.Mechanism'], false); >+goog.addDependency('storage/mechanism/errorhandlingmechanism_test.js', ['goog.storage.mechanism.ErrorHandlingMechanismTest'], ['goog.storage.mechanism.ErrorHandlingMechanism', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('storage/mechanism/html5localstorage.js', ['goog.storage.mechanism.HTML5LocalStorage'], ['goog.storage.mechanism.HTML5WebStorage'], false); >+goog.addDependency('storage/mechanism/html5localstorage_test.js', ['goog.storage.mechanism.HTML5LocalStorageTest'], ['goog.storage.mechanism.HTML5LocalStorage', 'goog.storage.mechanism.mechanismSeparationTester', 'goog.storage.mechanism.mechanismSharingTester', 'goog.storage.mechanism.mechanismTestDefinition', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('storage/mechanism/html5sessionstorage.js', ['goog.storage.mechanism.HTML5SessionStorage'], ['goog.storage.mechanism.HTML5WebStorage'], false); >+goog.addDependency('storage/mechanism/html5sessionstorage_test.js', ['goog.storage.mechanism.HTML5SessionStorageTest'], ['goog.storage.mechanism.HTML5SessionStorage', 'goog.storage.mechanism.mechanismSeparationTester', 'goog.storage.mechanism.mechanismSharingTester', 'goog.storage.mechanism.mechanismTestDefinition', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('storage/mechanism/html5webstorage.js', ['goog.storage.mechanism.HTML5WebStorage'], ['goog.asserts', 'goog.iter.Iterator', 'goog.iter.StopIteration', 'goog.storage.mechanism.ErrorCode', 'goog.storage.mechanism.IterableMechanism'], false); >+goog.addDependency('storage/mechanism/html5webstorage_test.js', ['goog.storage.mechanism.HTML5MockStorage', 'goog.storage.mechanism.HTML5WebStorageTest', 'goog.storage.mechanism.MockThrowableStorage'], ['goog.storage.mechanism.ErrorCode', 'goog.storage.mechanism.HTML5WebStorage', 'goog.testing.jsunit'], false); >+goog.addDependency('storage/mechanism/ieuserdata.js', ['goog.storage.mechanism.IEUserData'], ['goog.asserts', 'goog.iter.Iterator', 'goog.iter.StopIteration', 'goog.storage.mechanism.ErrorCode', 'goog.storage.mechanism.IterableMechanism', 'goog.structs.Map', 'goog.userAgent'], false); >+goog.addDependency('storage/mechanism/ieuserdata_test.js', ['goog.storage.mechanism.IEUserDataTest'], ['goog.storage.mechanism.IEUserData', 'goog.storage.mechanism.mechanismSeparationTester', 'goog.storage.mechanism.mechanismSharingTester', 'goog.storage.mechanism.mechanismTestDefinition', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('storage/mechanism/iterablemechanism.js', ['goog.storage.mechanism.IterableMechanism'], ['goog.array', 'goog.asserts', 'goog.iter', 'goog.storage.mechanism.Mechanism'], false); >+goog.addDependency('storage/mechanism/iterablemechanismtester.js', ['goog.storage.mechanism.iterableMechanismTester'], ['goog.iter.Iterator', 'goog.storage.mechanism.IterableMechanism', 'goog.testing.asserts'], false); >+goog.addDependency('storage/mechanism/mechanism.js', ['goog.storage.mechanism.Mechanism'], [], false); >+goog.addDependency('storage/mechanism/mechanismfactory.js', ['goog.storage.mechanism.mechanismfactory'], ['goog.storage.mechanism.HTML5LocalStorage', 'goog.storage.mechanism.HTML5SessionStorage', 'goog.storage.mechanism.IEUserData', 'goog.storage.mechanism.PrefixedMechanism'], false); >+goog.addDependency('storage/mechanism/mechanismfactory_test.js', ['goog.storage.mechanism.mechanismfactoryTest'], ['goog.storage.mechanism.mechanismfactory', 'goog.testing.jsunit'], false); >+goog.addDependency('storage/mechanism/mechanismseparationtester.js', ['goog.storage.mechanism.mechanismSeparationTester'], ['goog.iter.StopIteration', 'goog.storage.mechanism.mechanismTestDefinition', 'goog.testing.asserts'], false); >+goog.addDependency('storage/mechanism/mechanismsharingtester.js', ['goog.storage.mechanism.mechanismSharingTester'], ['goog.iter.StopIteration', 'goog.storage.mechanism.mechanismTestDefinition', 'goog.testing.asserts'], false); >+goog.addDependency('storage/mechanism/mechanismtestdefinition.js', ['goog.storage.mechanism.mechanismTestDefinition'], [], false); >+goog.addDependency('storage/mechanism/mechanismtester.js', ['goog.storage.mechanism.mechanismTester'], ['goog.storage.mechanism.ErrorCode', 'goog.testing.asserts', 'goog.userAgent', 'goog.userAgent.product', 'goog.userAgent.product.isVersion'], false); >+goog.addDependency('storage/mechanism/prefixedmechanism.js', ['goog.storage.mechanism.PrefixedMechanism'], ['goog.iter.Iterator', 'goog.storage.mechanism.IterableMechanism'], false); >+goog.addDependency('storage/mechanism/prefixedmechanism_test.js', ['goog.storage.mechanism.PrefixedMechanismTest'], ['goog.storage.mechanism.HTML5LocalStorage', 'goog.storage.mechanism.PrefixedMechanism', 'goog.storage.mechanism.mechanismSeparationTester', 'goog.storage.mechanism.mechanismSharingTester', 'goog.testing.jsunit'], false); >+goog.addDependency('storage/richstorage.js', ['goog.storage.RichStorage', 'goog.storage.RichStorage.Wrapper'], ['goog.storage.ErrorCode', 'goog.storage.Storage'], false); >+goog.addDependency('storage/richstorage_test.js', ['goog.storage.RichStorageTest'], ['goog.storage.ErrorCode', 'goog.storage.RichStorage', 'goog.storage.storage_test', 'goog.testing.jsunit', 'goog.testing.storage.FakeMechanism'], false); >+goog.addDependency('storage/storage.js', ['goog.storage.Storage'], ['goog.json', 'goog.storage.ErrorCode'], false); >+goog.addDependency('storage/storage_test.js', ['goog.storage.storage_test'], ['goog.structs.Map', 'goog.testing.asserts'], false); >+goog.addDependency('string/const.js', ['goog.string.Const'], ['goog.asserts', 'goog.string.TypedString'], false); >+goog.addDependency('string/const_test.js', ['goog.string.constTest'], ['goog.string.Const', 'goog.testing.jsunit'], false); >+goog.addDependency('string/linkify.js', ['goog.string.linkify'], ['goog.string'], false); >+goog.addDependency('string/linkify_test.js', ['goog.string.linkifyTest'], ['goog.dom.TagName', 'goog.string', 'goog.string.linkify', 'goog.testing.dom', 'goog.testing.jsunit'], false); >+goog.addDependency('string/newlines.js', ['goog.string.newlines', 'goog.string.newlines.Line'], ['goog.array'], false); >+goog.addDependency('string/newlines_test.js', ['goog.string.newlinesTest'], ['goog.string.newlines', 'goog.testing.jsunit'], false); >+goog.addDependency('string/parser.js', ['goog.string.Parser'], [], false); >+goog.addDependency('string/path.js', ['goog.string.path'], ['goog.array', 'goog.string'], false); >+goog.addDependency('string/path_test.js', ['goog.string.pathTest'], ['goog.string.path', 'goog.testing.jsunit'], false); >+goog.addDependency('string/string.js', ['goog.string', 'goog.string.Unicode'], [], false); >+goog.addDependency('string/string_test.js', ['goog.stringTest'], ['goog.dom.TagName', 'goog.functions', 'goog.object', 'goog.string', 'goog.string.Unicode', 'goog.testing.MockControl', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit'], false); >+goog.addDependency('string/stringbuffer.js', ['goog.string.StringBuffer'], [], false); >+goog.addDependency('string/stringbuffer_test.js', ['goog.string.StringBufferTest'], ['goog.string.StringBuffer', 'goog.testing.jsunit'], false); >+goog.addDependency('string/stringformat.js', ['goog.string.format'], ['goog.string'], false); >+goog.addDependency('string/stringformat_test.js', ['goog.string.formatTest'], ['goog.string.format', 'goog.testing.jsunit'], false); >+goog.addDependency('string/stringifier.js', ['goog.string.Stringifier'], [], false); >+goog.addDependency('string/typedstring.js', ['goog.string.TypedString'], [], false); >+goog.addDependency('structs/avltree.js', ['goog.structs.AvlTree', 'goog.structs.AvlTree.Node'], ['goog.structs.Collection'], false); >+goog.addDependency('structs/avltree_test.js', ['goog.structs.AvlTreeTest'], ['goog.array', 'goog.structs.AvlTree', 'goog.testing.jsunit'], false); >+goog.addDependency('structs/circularbuffer.js', ['goog.structs.CircularBuffer'], [], false); >+goog.addDependency('structs/circularbuffer_test.js', ['goog.structs.CircularBufferTest'], ['goog.structs.CircularBuffer', 'goog.testing.jsunit'], false); >+goog.addDependency('structs/collection.js', ['goog.structs.Collection'], [], false); >+goog.addDependency('structs/collection_test.js', ['goog.structs.CollectionTest'], ['goog.structs.AvlTree', 'goog.structs.Set', 'goog.testing.jsunit'], false); >+goog.addDependency('structs/heap.js', ['goog.structs.Heap'], ['goog.array', 'goog.object', 'goog.structs.Node'], false); >+goog.addDependency('structs/heap_test.js', ['goog.structs.HeapTest'], ['goog.structs', 'goog.structs.Heap', 'goog.testing.jsunit'], false); >+goog.addDependency('structs/inversionmap.js', ['goog.structs.InversionMap'], ['goog.array'], false); >+goog.addDependency('structs/inversionmap_test.js', ['goog.structs.InversionMapTest'], ['goog.structs.InversionMap', 'goog.testing.jsunit'], false); >+goog.addDependency('structs/linkedmap.js', ['goog.structs.LinkedMap'], ['goog.structs.Map'], false); >+goog.addDependency('structs/linkedmap_test.js', ['goog.structs.LinkedMapTest'], ['goog.structs.LinkedMap', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('structs/map.js', ['goog.structs.Map'], ['goog.iter.Iterator', 'goog.iter.StopIteration', 'goog.object'], false); >+goog.addDependency('structs/map_test.js', ['goog.structs.MapTest'], ['goog.iter', 'goog.structs', 'goog.structs.Map', 'goog.testing.jsunit'], false); >+goog.addDependency('structs/node.js', ['goog.structs.Node'], [], false); >+goog.addDependency('structs/pool.js', ['goog.structs.Pool'], ['goog.Disposable', 'goog.structs.Queue', 'goog.structs.Set'], false); >+goog.addDependency('structs/pool_test.js', ['goog.structs.PoolTest'], ['goog.structs.Pool', 'goog.testing.MockClock', 'goog.testing.jsunit'], false); >+goog.addDependency('structs/prioritypool.js', ['goog.structs.PriorityPool'], ['goog.structs.Pool', 'goog.structs.PriorityQueue'], false); >+goog.addDependency('structs/prioritypool_test.js', ['goog.structs.PriorityPoolTest'], ['goog.structs.PriorityPool', 'goog.testing.MockClock', 'goog.testing.jsunit'], false); >+goog.addDependency('structs/priorityqueue.js', ['goog.structs.PriorityQueue'], ['goog.structs.Heap'], false); >+goog.addDependency('structs/priorityqueue_test.js', ['goog.structs.PriorityQueueTest'], ['goog.structs', 'goog.structs.PriorityQueue', 'goog.testing.jsunit'], false); >+goog.addDependency('structs/quadtree.js', ['goog.structs.QuadTree', 'goog.structs.QuadTree.Node', 'goog.structs.QuadTree.Point'], ['goog.math.Coordinate'], false); >+goog.addDependency('structs/quadtree_test.js', ['goog.structs.QuadTreeTest'], ['goog.structs', 'goog.structs.QuadTree', 'goog.testing.jsunit'], false); >+goog.addDependency('structs/queue.js', ['goog.structs.Queue'], ['goog.array'], false); >+goog.addDependency('structs/queue_test.js', ['goog.structs.QueueTest'], ['goog.structs.Queue', 'goog.testing.jsunit'], false); >+goog.addDependency('structs/set.js', ['goog.structs.Set'], ['goog.structs', 'goog.structs.Collection', 'goog.structs.Map'], false); >+goog.addDependency('structs/set_test.js', ['goog.structs.SetTest'], ['goog.iter', 'goog.structs', 'goog.structs.Set', 'goog.testing.jsunit'], false); >+goog.addDependency('structs/simplepool.js', ['goog.structs.SimplePool'], ['goog.Disposable'], false); >+goog.addDependency('structs/stringset.js', ['goog.structs.StringSet'], ['goog.asserts', 'goog.iter'], false); >+goog.addDependency('structs/stringset_test.js', ['goog.structs.StringSetTest'], ['goog.array', 'goog.iter', 'goog.structs.StringSet', 'goog.testing.asserts', 'goog.testing.jsunit'], false); >+goog.addDependency('structs/structs.js', ['goog.structs'], ['goog.array', 'goog.object'], false); >+goog.addDependency('structs/structs_test.js', ['goog.structsTest'], ['goog.array', 'goog.dom.TagName', 'goog.structs', 'goog.structs.Map', 'goog.structs.Set', 'goog.testing.jsunit'], false); >+goog.addDependency('structs/treenode.js', ['goog.structs.TreeNode'], ['goog.array', 'goog.asserts', 'goog.structs.Node'], false); >+goog.addDependency('structs/treenode_test.js', ['goog.structs.TreeNodeTest'], ['goog.structs.TreeNode', 'goog.testing.jsunit'], false); >+goog.addDependency('structs/trie.js', ['goog.structs.Trie'], ['goog.object', 'goog.structs'], false); >+goog.addDependency('structs/trie_test.js', ['goog.structs.TrieTest'], ['goog.object', 'goog.structs', 'goog.structs.Trie', 'goog.testing.jsunit'], false); >+goog.addDependency('structs/weak/weak.js', ['goog.structs.weak'], ['goog.userAgent'], false); >+goog.addDependency('structs/weak/weak_test.js', ['goog.structs.weakTest'], ['goog.array', 'goog.structs.weak', 'goog.testing.jsunit'], false); >+goog.addDependency('style/bidi.js', ['goog.style.bidi'], ['goog.dom', 'goog.style', 'goog.userAgent'], false); >+goog.addDependency('style/bidi_test.js', ['goog.style.bidiTest'], ['goog.dom', 'goog.style', 'goog.style.bidi', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('style/cursor.js', ['goog.style.cursor'], ['goog.userAgent'], false); >+goog.addDependency('style/cursor_test.js', ['goog.style.cursorTest'], ['goog.style.cursor', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('style/style.js', ['goog.style'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.vendor', 'goog.math.Box', 'goog.math.Coordinate', 'goog.math.Rect', 'goog.math.Size', 'goog.object', 'goog.string', 'goog.userAgent'], false); >+goog.addDependency('style/style_document_scroll_test.js', ['goog.style.style_document_scroll_test'], ['goog.dom', 'goog.style', 'goog.testing.jsunit'], false); >+goog.addDependency('style/style_test.js', ['goog.style_test'], ['goog.array', 'goog.color', 'goog.dom', 'goog.dom.TagName', 'goog.events.BrowserEvent', 'goog.labs.userAgent.util', 'goog.math.Box', 'goog.math.Coordinate', 'goog.math.Rect', 'goog.math.Size', 'goog.object', 'goog.string', 'goog.style', 'goog.testing.ExpectedFailures', 'goog.testing.MockUserAgent', 'goog.testing.asserts', 'goog.testing.jsunit', 'goog.userAgent', 'goog.userAgent.product', 'goog.userAgentTestUtil', 'goog.userAgentTestUtil.UserAgents'], false); >+goog.addDependency('style/style_webkit_scrollbars_test.js', ['goog.style.webkitScrollbarsTest'], ['goog.asserts', 'goog.style', 'goog.styleScrollbarTester', 'goog.testing.ExpectedFailures', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('style/stylescrollbartester.js', ['goog.styleScrollbarTester'], ['goog.dom', 'goog.dom.TagName', 'goog.style', 'goog.testing.asserts'], false); >+goog.addDependency('style/transform.js', ['goog.style.transform'], ['goog.functions', 'goog.math.Coordinate', 'goog.math.Coordinate3', 'goog.style', 'goog.userAgent', 'goog.userAgent.product.isVersion'], false); >+goog.addDependency('style/transform_test.js', ['goog.style.transformTest'], ['goog.dom', 'goog.dom.TagName', 'goog.style.transform', 'goog.testing.jsunit', 'goog.userAgent', 'goog.userAgent.product.isVersion'], false); >+goog.addDependency('style/transition.js', ['goog.style.transition', 'goog.style.transition.Css3Property'], ['goog.array', 'goog.asserts', 'goog.dom.TagName', 'goog.dom.safe', 'goog.dom.vendor', 'goog.functions', 'goog.html.SafeHtml', 'goog.style', 'goog.userAgent'], false); >+goog.addDependency('style/transition_test.js', ['goog.style.transitionTest'], ['goog.style', 'goog.style.transition', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('test_module.js', ['goog.test_module'], ['goog.test_module_dep'], true); >+goog.addDependency('test_module_dep.js', ['goog.test_module_dep'], [], true); >+goog.addDependency('testing/asserts.js', ['goog.testing.JsUnitException', 'goog.testing.asserts', 'goog.testing.asserts.ArrayLike'], ['goog.testing.stacktrace'], false); >+goog.addDependency('testing/asserts_test.js', ['goog.testing.assertsTest'], ['goog.array', 'goog.dom', 'goog.iter.Iterator', 'goog.iter.StopIteration', 'goog.labs.userAgent.browser', 'goog.string', 'goog.structs.Map', 'goog.structs.Set', 'goog.testing.asserts', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('testing/async/mockcontrol.js', ['goog.testing.async.MockControl'], ['goog.asserts', 'goog.async.Deferred', 'goog.debug', 'goog.testing.asserts', 'goog.testing.mockmatchers.IgnoreArgument'], false); >+goog.addDependency('testing/async/mockcontrol_test.js', ['goog.testing.async.MockControlTest'], ['goog.async.Deferred', 'goog.testing.MockControl', 'goog.testing.asserts', 'goog.testing.async.MockControl', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/asynctestcase.js', ['goog.testing.AsyncTestCase', 'goog.testing.AsyncTestCase.ControlBreakingException'], ['goog.testing.TestCase', 'goog.testing.asserts'], false); >+goog.addDependency('testing/asynctestcase_async_test.js', ['goog.testing.AsyncTestCaseAsyncTest'], ['goog.testing.AsyncTestCase', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/asynctestcase_noasync_test.js', ['goog.testing.AsyncTestCaseSyncTest'], ['goog.testing.AsyncTestCase', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/asynctestcase_test.js', ['goog.testing.AsyncTestCaseTest'], ['goog.debug.Error', 'goog.testing.AsyncTestCase', 'goog.testing.asserts', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/benchmark.js', ['goog.testing.benchmark'], ['goog.dom', 'goog.dom.TagName', 'goog.testing.PerformanceTable', 'goog.testing.PerformanceTimer', 'goog.testing.TestCase'], false); >+goog.addDependency('testing/continuationtestcase.js', ['goog.testing.ContinuationTestCase', 'goog.testing.ContinuationTestCase.Step', 'goog.testing.ContinuationTestCase.Test'], ['goog.array', 'goog.events.EventHandler', 'goog.testing.TestCase', 'goog.testing.asserts'], false); >+goog.addDependency('testing/continuationtestcase_test.js', ['goog.testing.ContinuationTestCaseTest'], ['goog.events', 'goog.events.EventTarget', 'goog.testing.ContinuationTestCase', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.TestCase', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/deferredtestcase.js', ['goog.testing.DeferredTestCase'], ['goog.testing.AsyncTestCase', 'goog.testing.TestCase'], false); >+goog.addDependency('testing/deferredtestcase_test.js', ['goog.testing.DeferredTestCaseTest'], ['goog.async.Deferred', 'goog.testing.DeferredTestCase', 'goog.testing.TestCase', 'goog.testing.TestRunner', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('testing/dom.js', ['goog.testing.dom'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.InputType', 'goog.dom.NodeIterator', 'goog.dom.NodeType', 'goog.dom.TagIterator', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.iter', 'goog.object', 'goog.string', 'goog.style', 'goog.testing.asserts', 'goog.userAgent'], false); >+goog.addDependency('testing/dom_test.js', ['goog.testing.domTest'], ['goog.dom', 'goog.dom.TagName', 'goog.testing.dom', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('testing/editor/dom.js', ['goog.testing.editor.dom'], ['goog.dom.NodeType', 'goog.dom.TagIterator', 'goog.dom.TagWalkType', 'goog.iter', 'goog.string', 'goog.testing.asserts'], false); >+goog.addDependency('testing/editor/dom_test.js', ['goog.testing.editor.domTest'], ['goog.dom', 'goog.dom.TagName', 'goog.functions', 'goog.testing.editor.dom', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/editor/fieldmock.js', ['goog.testing.editor.FieldMock'], ['goog.dom', 'goog.dom.Range', 'goog.editor.Field', 'goog.testing.LooseMock', 'goog.testing.mockmatchers'], false); >+goog.addDependency('testing/editor/testhelper.js', ['goog.testing.editor.TestHelper'], ['goog.Disposable', 'goog.dom', 'goog.dom.Range', 'goog.editor.BrowserFeature', 'goog.editor.node', 'goog.editor.plugins.AbstractBubblePlugin', 'goog.testing.dom'], false); >+goog.addDependency('testing/editor/testhelper_test.js', ['goog.testing.editor.TestHelperTest'], ['goog.dom', 'goog.dom.TagName', 'goog.editor.node', 'goog.testing.editor.TestHelper', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('testing/events/eventobserver.js', ['goog.testing.events.EventObserver'], ['goog.array'], false); >+goog.addDependency('testing/events/eventobserver_test.js', ['goog.testing.events.EventObserverTest'], ['goog.array', 'goog.events', 'goog.events.Event', 'goog.events.EventTarget', 'goog.testing.events.EventObserver', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/events/events.js', ['goog.testing.events', 'goog.testing.events.Event'], ['goog.Disposable', 'goog.asserts', 'goog.dom.NodeType', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.BrowserFeature', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.object', 'goog.style', 'goog.userAgent'], false); >+goog.addDependency('testing/events/events_test.js', ['goog.testing.eventsTest'], ['goog.array', 'goog.dom', 'goog.dom.InputType', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.math.Coordinate', 'goog.string', 'goog.style', 'goog.testing.PropertyReplacer', 'goog.testing.events', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.userAgent'], false); >+goog.addDependency('testing/events/matchers.js', ['goog.testing.events.EventMatcher'], ['goog.events.Event', 'goog.testing.mockmatchers.ArgumentMatcher'], false); >+goog.addDependency('testing/events/matchers_test.js', ['goog.testing.events.EventMatcherTest'], ['goog.events.Event', 'goog.testing.events.EventMatcher', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/events/onlinehandler.js', ['goog.testing.events.OnlineHandler'], ['goog.events.EventTarget', 'goog.net.NetworkStatusMonitor'], false); >+goog.addDependency('testing/events/onlinehandler_test.js', ['goog.testing.events.OnlineHandlerTest'], ['goog.events', 'goog.net.NetworkStatusMonitor', 'goog.testing.events.EventObserver', 'goog.testing.events.OnlineHandler', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/expectedfailures.js', ['goog.testing.ExpectedFailures'], ['goog.debug.DivConsole', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'goog.log', 'goog.style', 'goog.testing.JsUnitException', 'goog.testing.TestCase', 'goog.testing.asserts'], false); >+goog.addDependency('testing/expectedfailures_test.js', ['goog.testing.ExpectedFailuresTest'], ['goog.debug.Logger', 'goog.testing.ExpectedFailures', 'goog.testing.JsUnitException', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/fs/blob.js', ['goog.testing.fs.Blob'], ['goog.crypt.base64'], false); >+goog.addDependency('testing/fs/blob_test.js', ['goog.testing.fs.BlobTest'], ['goog.testing.fs.Blob', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/fs/directoryentry_test.js', ['goog.testing.fs.DirectoryEntryTest'], ['goog.array', 'goog.fs.DirectoryEntry', 'goog.fs.Error', 'goog.testing.AsyncTestCase', 'goog.testing.MockClock', 'goog.testing.fs.FileSystem', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/fs/entry.js', ['goog.testing.fs.DirectoryEntry', 'goog.testing.fs.Entry', 'goog.testing.fs.FileEntry'], ['goog.Timer', 'goog.array', 'goog.asserts', 'goog.async.Deferred', 'goog.fs.DirectoryEntry', 'goog.fs.DirectoryEntryImpl', 'goog.fs.Entry', 'goog.fs.Error', 'goog.fs.FileEntry', 'goog.functions', 'goog.object', 'goog.string', 'goog.testing.fs.File', 'goog.testing.fs.FileWriter'], false); >+goog.addDependency('testing/fs/entry_test.js', ['goog.testing.fs.EntryTest'], ['goog.fs.DirectoryEntry', 'goog.fs.Error', 'goog.testing.AsyncTestCase', 'goog.testing.MockClock', 'goog.testing.fs.FileSystem', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/fs/file.js', ['goog.testing.fs.File'], ['goog.testing.fs.Blob'], false); >+goog.addDependency('testing/fs/fileentry_test.js', ['goog.testing.fs.FileEntryTest'], ['goog.testing.AsyncTestCase', 'goog.testing.MockClock', 'goog.testing.fs.FileEntry', 'goog.testing.fs.FileSystem', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/fs/filereader.js', ['goog.testing.fs.FileReader'], ['goog.Timer', 'goog.events.EventTarget', 'goog.fs.Error', 'goog.fs.FileReader', 'goog.testing.fs.ProgressEvent'], false); >+goog.addDependency('testing/fs/filereader_test.js', ['goog.testing.fs.FileReaderTest'], ['goog.Timer', 'goog.async.Deferred', 'goog.events', 'goog.fs.Error', 'goog.fs.FileReader', 'goog.fs.FileSaver', 'goog.testing.AsyncTestCase', 'goog.testing.fs.FileReader', 'goog.testing.fs.FileSystem', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/fs/filesystem.js', ['goog.testing.fs.FileSystem'], ['goog.fs.FileSystem', 'goog.testing.fs.DirectoryEntry'], false); >+goog.addDependency('testing/fs/filewriter.js', ['goog.testing.fs.FileWriter'], ['goog.Timer', 'goog.events.EventTarget', 'goog.fs.Error', 'goog.fs.FileSaver', 'goog.string', 'goog.testing.fs.ProgressEvent'], false); >+goog.addDependency('testing/fs/filewriter_test.js', ['goog.testing.fs.FileWriterTest'], ['goog.async.Deferred', 'goog.events', 'goog.fs.Error', 'goog.fs.FileSaver', 'goog.testing.AsyncTestCase', 'goog.testing.MockClock', 'goog.testing.fs.Blob', 'goog.testing.fs.FileSystem', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/fs/fs.js', ['goog.testing.fs'], ['goog.Timer', 'goog.array', 'goog.async.Deferred', 'goog.fs', 'goog.testing.fs.Blob', 'goog.testing.fs.FileSystem'], false); >+goog.addDependency('testing/fs/fs_test.js', ['goog.testing.fsTest'], ['goog.testing.AsyncTestCase', 'goog.testing.fs', 'goog.testing.fs.Blob', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/fs/integration_test.js', ['goog.testing.fs.integrationTest'], ['goog.async.Deferred', 'goog.async.DeferredList', 'goog.events', 'goog.fs', 'goog.fs.DirectoryEntry', 'goog.fs.Error', 'goog.fs.FileSaver', 'goog.testing.AsyncTestCase', 'goog.testing.PropertyReplacer', 'goog.testing.fs', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/fs/progressevent.js', ['goog.testing.fs.ProgressEvent'], ['goog.events.Event'], false); >+goog.addDependency('testing/functionmock.js', ['goog.testing', 'goog.testing.FunctionMock', 'goog.testing.GlobalFunctionMock', 'goog.testing.MethodMock'], ['goog.object', 'goog.testing.LooseMock', 'goog.testing.Mock', 'goog.testing.PropertyReplacer', 'goog.testing.StrictMock'], false); >+goog.addDependency('testing/functionmock_test.js', ['goog.testing.FunctionMockTest'], ['goog.array', 'goog.string', 'goog.testing', 'goog.testing.FunctionMock', 'goog.testing.Mock', 'goog.testing.StrictMock', 'goog.testing.asserts', 'goog.testing.jsunit', 'goog.testing.mockmatchers'], false); >+goog.addDependency('testing/graphics.js', ['goog.testing.graphics'], ['goog.graphics.Path', 'goog.testing.asserts'], false); >+goog.addDependency('testing/i18n/asserts.js', ['goog.testing.i18n.asserts'], ['goog.testing.jsunit'], false); >+goog.addDependency('testing/i18n/asserts_test.js', ['goog.testing.i18n.assertsTest'], ['goog.testing.ExpectedFailures', 'goog.testing.i18n.asserts'], false); >+goog.addDependency('testing/jsunit.js', ['goog.testing.jsunit'], ['goog.dom.TagName', 'goog.testing.TestCase', 'goog.testing.TestRunner'], false); >+goog.addDependency('testing/loosemock.js', ['goog.testing.LooseExpectationCollection', 'goog.testing.LooseMock'], ['goog.array', 'goog.structs.Map', 'goog.testing.Mock'], false); >+goog.addDependency('testing/loosemock_test.js', ['goog.testing.LooseMockTest'], ['goog.testing.LooseMock', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.mockmatchers'], false); >+goog.addDependency('testing/messaging/mockmessagechannel.js', ['goog.testing.messaging.MockMessageChannel'], ['goog.messaging.AbstractChannel', 'goog.testing.asserts'], false); >+goog.addDependency('testing/messaging/mockmessageevent.js', ['goog.testing.messaging.MockMessageEvent'], ['goog.events.BrowserEvent', 'goog.events.EventType', 'goog.testing.events.Event'], false); >+goog.addDependency('testing/messaging/mockmessageport.js', ['goog.testing.messaging.MockMessagePort'], ['goog.events.EventTarget'], false); >+goog.addDependency('testing/messaging/mockportnetwork.js', ['goog.testing.messaging.MockPortNetwork'], ['goog.messaging.PortNetwork', 'goog.testing.messaging.MockMessageChannel'], false); >+goog.addDependency('testing/mock.js', ['goog.testing.Mock', 'goog.testing.MockExpectation'], ['goog.array', 'goog.object', 'goog.testing.JsUnitException', 'goog.testing.MockInterface', 'goog.testing.mockmatchers'], false); >+goog.addDependency('testing/mock_test.js', ['goog.testing.MockTest'], ['goog.array', 'goog.testing', 'goog.testing.Mock', 'goog.testing.MockControl', 'goog.testing.MockExpectation', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/mockclassfactory.js', ['goog.testing.MockClassFactory', 'goog.testing.MockClassRecord'], ['goog.array', 'goog.object', 'goog.testing.LooseMock', 'goog.testing.StrictMock', 'goog.testing.TestCase', 'goog.testing.mockmatchers'], false); >+goog.addDependency('testing/mockclassfactory_test.js', ['fake.BaseClass', 'fake.ChildClass', 'goog.testing.MockClassFactoryTest'], ['goog.testing', 'goog.testing.MockClassFactory', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/mockclock.js', ['goog.testing.MockClock'], ['goog.Disposable', 'goog.async.run', 'goog.testing.PropertyReplacer', 'goog.testing.events', 'goog.testing.events.Event', 'goog.testing.watchers'], false); >+goog.addDependency('testing/mockclock_test.js', ['goog.testing.MockClockTest'], ['goog.Promise', 'goog.Timer', 'goog.events', 'goog.functions', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.recordFunction'], false); >+goog.addDependency('testing/mockcontrol.js', ['goog.testing.MockControl'], ['goog.array', 'goog.testing', 'goog.testing.LooseMock', 'goog.testing.StrictMock'], false); >+goog.addDependency('testing/mockcontrol_test.js', ['goog.testing.MockControlTest'], ['goog.testing.Mock', 'goog.testing.MockControl', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/mockinterface.js', ['goog.testing.MockInterface'], [], false); >+goog.addDependency('testing/mockmatchers.js', ['goog.testing.mockmatchers', 'goog.testing.mockmatchers.ArgumentMatcher', 'goog.testing.mockmatchers.IgnoreArgument', 'goog.testing.mockmatchers.InstanceOf', 'goog.testing.mockmatchers.ObjectEquals', 'goog.testing.mockmatchers.RegexpMatch', 'goog.testing.mockmatchers.SaveArgument', 'goog.testing.mockmatchers.TypeOf'], ['goog.array', 'goog.dom', 'goog.testing.asserts'], false); >+goog.addDependency('testing/mockmatchers_test.js', ['goog.testing.mockmatchersTest'], ['goog.dom', 'goog.dom.TagName', 'goog.testing.jsunit', 'goog.testing.mockmatchers', 'goog.testing.mockmatchers.ArgumentMatcher'], false); >+goog.addDependency('testing/mockrandom.js', ['goog.testing.MockRandom'], ['goog.Disposable'], false); >+goog.addDependency('testing/mockrandom_test.js', ['goog.testing.MockRandomTest'], ['goog.testing.MockRandom', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/mockrange.js', ['goog.testing.MockRange'], ['goog.dom.AbstractRange', 'goog.testing.LooseMock'], false); >+goog.addDependency('testing/mockrange_test.js', ['goog.testing.MockRangeTest'], ['goog.testing.MockRange', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/mockstorage.js', ['goog.testing.MockStorage'], ['goog.structs.Map'], false); >+goog.addDependency('testing/mockstorage_test.js', ['goog.testing.MockStorageTest'], ['goog.testing.MockStorage', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/mockuseragent.js', ['goog.testing.MockUserAgent'], ['goog.Disposable', 'goog.labs.userAgent.util', 'goog.testing.PropertyReplacer', 'goog.userAgent'], false); >+goog.addDependency('testing/mockuseragent_test.js', ['goog.testing.MockUserAgentTest'], ['goog.dispose', 'goog.testing.MockUserAgent', 'goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('testing/multitestrunner.js', ['goog.testing.MultiTestRunner', 'goog.testing.MultiTestRunner.TestFrame'], ['goog.Timer', 'goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events.EventHandler', 'goog.functions', 'goog.string', 'goog.ui.Component', 'goog.ui.ServerChart', 'goog.ui.TableSorter'], false); >+goog.addDependency('testing/net/xhrio.js', ['goog.testing.net.XhrIo'], ['goog.array', 'goog.dom.xml', 'goog.events', 'goog.events.EventTarget', 'goog.json', 'goog.net.ErrorCode', 'goog.net.EventType', 'goog.net.HttpStatus', 'goog.net.XhrIo', 'goog.net.XmlHttp', 'goog.object', 'goog.structs.Map'], false); >+goog.addDependency('testing/net/xhrio_test.js', ['goog.testing.net.XhrIoTest'], ['goog.dom.xml', 'goog.events', 'goog.events.Event', 'goog.net.ErrorCode', 'goog.net.EventType', 'goog.net.XmlHttp', 'goog.object', 'goog.testing.MockControl', 'goog.testing.asserts', 'goog.testing.jsunit', 'goog.testing.mockmatchers.InstanceOf', 'goog.testing.net.XhrIo'], false); >+goog.addDependency('testing/net/xhriopool.js', ['goog.testing.net.XhrIoPool'], ['goog.net.XhrIoPool', 'goog.testing.net.XhrIo'], false); >+goog.addDependency('testing/objectpropertystring.js', ['goog.testing.ObjectPropertyString'], [], false); >+goog.addDependency('testing/performancetable.js', ['goog.testing.PerformanceTable'], ['goog.dom', 'goog.dom.TagName', 'goog.testing.PerformanceTimer'], false); >+goog.addDependency('testing/performancetimer.js', ['goog.testing.PerformanceTimer', 'goog.testing.PerformanceTimer.Task'], ['goog.array', 'goog.async.Deferred', 'goog.math'], false); >+goog.addDependency('testing/performancetimer_test.js', ['goog.testing.PerformanceTimerTest'], ['goog.async.Deferred', 'goog.dom', 'goog.math', 'goog.testing.MockClock', 'goog.testing.PerformanceTimer', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/propertyreplacer.js', ['goog.testing.PropertyReplacer'], ['goog.testing.ObjectPropertyString', 'goog.userAgent'], false); >+goog.addDependency('testing/propertyreplacer_test.js', ['goog.testing.PropertyReplacerTest'], ['goog.dom.TagName', 'goog.testing.PropertyReplacer', 'goog.testing.asserts', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/proto2/proto2.js', ['goog.testing.proto2'], ['goog.proto2.Message', 'goog.proto2.ObjectSerializer', 'goog.testing.asserts'], false); >+goog.addDependency('testing/proto2/proto2_test.js', ['goog.testing.proto2Test'], ['goog.testing.jsunit', 'goog.testing.proto2', 'proto2.TestAllTypes'], false); >+goog.addDependency('testing/pseudorandom.js', ['goog.testing.PseudoRandom'], ['goog.Disposable'], false); >+goog.addDependency('testing/pseudorandom_test.js', ['goog.testing.PseudoRandomTest'], ['goog.testing.PseudoRandom', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/recordfunction.js', ['goog.testing.FunctionCall', 'goog.testing.recordConstructor', 'goog.testing.recordFunction'], ['goog.testing.asserts'], false); >+goog.addDependency('testing/recordfunction_test.js', ['goog.testing.recordFunctionTest'], ['goog.functions', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.recordConstructor', 'goog.testing.recordFunction'], false); >+goog.addDependency('testing/shardingtestcase.js', ['goog.testing.ShardingTestCase'], ['goog.asserts', 'goog.testing.TestCase'], false); >+goog.addDependency('testing/shardingtestcase_test.js', ['goog.testing.ShardingTestCaseTest'], ['goog.testing.ShardingTestCase', 'goog.testing.TestCase', 'goog.testing.asserts', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/singleton.js', ['goog.testing.singleton'], [], false); >+goog.addDependency('testing/singleton_test.js', ['goog.testing.singletonTest'], ['goog.testing.asserts', 'goog.testing.jsunit', 'goog.testing.singleton'], false); >+goog.addDependency('testing/stacktrace.js', ['goog.testing.stacktrace', 'goog.testing.stacktrace.Frame'], [], false); >+goog.addDependency('testing/stacktrace_test.js', ['goog.testing.stacktraceTest'], ['goog.functions', 'goog.string', 'goog.testing.ExpectedFailures', 'goog.testing.PropertyReplacer', 'goog.testing.StrictMock', 'goog.testing.asserts', 'goog.testing.jsunit', 'goog.testing.stacktrace', 'goog.testing.stacktrace.Frame', 'goog.userAgent'], false); >+goog.addDependency('testing/storage/fakemechanism.js', ['goog.testing.storage.FakeMechanism'], ['goog.storage.mechanism.IterableMechanism', 'goog.structs.Map'], false); >+goog.addDependency('testing/strictmock.js', ['goog.testing.StrictMock'], ['goog.array', 'goog.testing.Mock'], false); >+goog.addDependency('testing/strictmock_test.js', ['goog.testing.StrictMockTest'], ['goog.testing.StrictMock', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/style/layoutasserts.js', ['goog.testing.style.layoutasserts'], ['goog.style', 'goog.testing.asserts', 'goog.testing.style'], false); >+goog.addDependency('testing/style/layoutasserts_test.js', ['goog.testing.style.layoutassertsTest'], ['goog.dom', 'goog.dom.TagName', 'goog.style', 'goog.testing.jsunit', 'goog.testing.style.layoutasserts'], false); >+goog.addDependency('testing/style/style.js', ['goog.testing.style'], ['goog.dom', 'goog.math.Rect', 'goog.style'], false); >+goog.addDependency('testing/style/style_test.js', ['goog.testing.styleTest'], ['goog.dom', 'goog.dom.TagName', 'goog.style', 'goog.testing.jsunit', 'goog.testing.style'], false); >+goog.addDependency('testing/testcase.js', ['goog.testing.TestCase', 'goog.testing.TestCase.Error', 'goog.testing.TestCase.Order', 'goog.testing.TestCase.Result', 'goog.testing.TestCase.Test'], ['goog.Promise', 'goog.Thenable', 'goog.dom.TagName', 'goog.object', 'goog.testing.asserts', 'goog.testing.stacktrace'], false); >+goog.addDependency('testing/testcase_test.js', ['goog.testing.TestCaseTest'], ['goog.Promise', 'goog.testing.MockRandom', 'goog.testing.TestCase', 'goog.testing.jsunit'], false); >+goog.addDependency('testing/testqueue.js', ['goog.testing.TestQueue'], [], false); >+goog.addDependency('testing/testrunner.js', ['goog.testing.TestRunner'], ['goog.dom.TagName', 'goog.testing.TestCase'], false); >+goog.addDependency('testing/testsuite.js', ['goog.testing.testSuite'], ['goog.testing.TestCase'], false); >+goog.addDependency('testing/ui/rendererasserts.js', ['goog.testing.ui.rendererasserts'], ['goog.testing.asserts', 'goog.ui.ControlRenderer'], false); >+goog.addDependency('testing/ui/rendererasserts_test.js', ['goog.testing.ui.rendererassertsTest'], ['goog.testing.asserts', 'goog.testing.jsunit', 'goog.testing.ui.rendererasserts', 'goog.ui.ControlRenderer'], false); >+goog.addDependency('testing/ui/rendererharness.js', ['goog.testing.ui.RendererHarness'], ['goog.Disposable', 'goog.dom.NodeType', 'goog.testing.asserts', 'goog.testing.dom'], false); >+goog.addDependency('testing/ui/style.js', ['goog.testing.ui.style'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.classlist', 'goog.testing.asserts'], false); >+goog.addDependency('testing/ui/style_test.js', ['goog.testing.ui.styleTest'], ['goog.dom', 'goog.testing.jsunit', 'goog.testing.ui.style'], false); >+goog.addDependency('testing/watchers.js', ['goog.testing.watchers'], [], false); >+goog.addDependency('timer/timer.js', ['goog.Timer'], ['goog.Promise', 'goog.events.EventTarget'], false); >+goog.addDependency('timer/timer_test.js', ['goog.TimerTest'], ['goog.Promise', 'goog.Timer', 'goog.events', 'goog.testing.MockClock', 'goog.testing.jsunit'], false); >+goog.addDependency('tweak/entries.js', ['goog.tweak.BaseEntry', 'goog.tweak.BasePrimitiveSetting', 'goog.tweak.BaseSetting', 'goog.tweak.BooleanGroup', 'goog.tweak.BooleanInGroupSetting', 'goog.tweak.BooleanSetting', 'goog.tweak.ButtonAction', 'goog.tweak.NumericSetting', 'goog.tweak.StringSetting'], ['goog.array', 'goog.asserts', 'goog.log', 'goog.object'], false); >+goog.addDependency('tweak/entries_test.js', ['goog.tweak.BaseEntryTest'], ['goog.testing.MockControl', 'goog.testing.jsunit', 'goog.tweak.testhelpers'], false); >+goog.addDependency('tweak/registry.js', ['goog.tweak.Registry'], ['goog.array', 'goog.asserts', 'goog.log', 'goog.string', 'goog.tweak.BasePrimitiveSetting', 'goog.tweak.BaseSetting', 'goog.tweak.BooleanSetting', 'goog.tweak.NumericSetting', 'goog.tweak.StringSetting', 'goog.uri.utils'], false); >+goog.addDependency('tweak/registry_test.js', ['goog.tweak.RegistryTest'], ['goog.asserts.AssertionError', 'goog.testing.jsunit', 'goog.tweak', 'goog.tweak.testhelpers'], false); >+goog.addDependency('tweak/testhelpers.js', ['goog.tweak.testhelpers'], ['goog.tweak', 'goog.tweak.BooleanGroup', 'goog.tweak.BooleanInGroupSetting', 'goog.tweak.BooleanSetting', 'goog.tweak.ButtonAction', 'goog.tweak.NumericSetting', 'goog.tweak.Registry', 'goog.tweak.StringSetting'], false); >+goog.addDependency('tweak/tweak.js', ['goog.tweak', 'goog.tweak.ConfigParams'], ['goog.asserts', 'goog.tweak.BaseSetting', 'goog.tweak.BooleanGroup', 'goog.tweak.BooleanInGroupSetting', 'goog.tweak.BooleanSetting', 'goog.tweak.ButtonAction', 'goog.tweak.NumericSetting', 'goog.tweak.Registry', 'goog.tweak.StringSetting'], false); >+goog.addDependency('tweak/tweakui.js', ['goog.tweak.EntriesPanel', 'goog.tweak.TweakUi'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.dom.safe', 'goog.html.SafeHtml', 'goog.object', 'goog.string.Const', 'goog.style', 'goog.tweak', 'goog.tweak.BaseEntry', 'goog.tweak.BooleanGroup', 'goog.tweak.BooleanInGroupSetting', 'goog.tweak.BooleanSetting', 'goog.tweak.ButtonAction', 'goog.tweak.NumericSetting', 'goog.tweak.StringSetting', 'goog.ui.Zippy', 'goog.userAgent'], false); >+goog.addDependency('tweak/tweakui_test.js', ['goog.tweak.TweakUiTest'], ['goog.dom', 'goog.dom.TagName', 'goog.string', 'goog.testing.jsunit', 'goog.tweak', 'goog.tweak.TweakUi', 'goog.tweak.testhelpers'], false); >+goog.addDependency('ui/abstractspellchecker.js', ['goog.ui.AbstractSpellChecker', 'goog.ui.AbstractSpellChecker.AsyncResult'], ['goog.a11y.aria', 'goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.InputType', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.dom.selection', 'goog.events', 'goog.events.Event', 'goog.events.EventType', 'goog.math.Coordinate', 'goog.spell.SpellCheck', 'goog.structs.Set', 'goog.style', 'goog.ui.Component', 'goog.ui.MenuItem', 'goog.ui.MenuSeparator', 'goog.ui.PopupMenu'], false); >+goog.addDependency('ui/ac/ac.js', ['goog.ui.ac'], ['goog.ui.ac.ArrayMatcher', 'goog.ui.ac.AutoComplete', 'goog.ui.ac.InputHandler', 'goog.ui.ac.Renderer'], false); >+goog.addDependency('ui/ac/ac_test.js', ['goog.ui.acTest'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.classlist', 'goog.dom.selection', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.Event', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.style', 'goog.testing.MockClock', 'goog.testing.jsunit', 'goog.ui.ac', 'goog.userAgent'], false); >+goog.addDependency('ui/ac/arraymatcher.js', ['goog.ui.ac.ArrayMatcher'], ['goog.string'], false); >+goog.addDependency('ui/ac/arraymatcher_test.js', ['goog.ui.ac.ArrayMatcherTest'], ['goog.testing.jsunit', 'goog.ui.ac.ArrayMatcher'], false); >+goog.addDependency('ui/ac/autocomplete.js', ['goog.ui.ac.AutoComplete', 'goog.ui.ac.AutoComplete.EventType'], ['goog.array', 'goog.asserts', 'goog.events', 'goog.events.EventTarget', 'goog.object'], false); >+goog.addDependency('ui/ac/autocomplete_test.js', ['goog.ui.ac.AutoCompleteTest'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.dom', 'goog.dom.InputType', 'goog.dom.TagName', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.string', 'goog.testing.MockControl', 'goog.testing.events', 'goog.testing.jsunit', 'goog.testing.mockmatchers', 'goog.ui.ac.AutoComplete', 'goog.ui.ac.InputHandler', 'goog.ui.ac.RenderOptions', 'goog.ui.ac.Renderer'], false); >+goog.addDependency('ui/ac/cachingmatcher.js', ['goog.ui.ac.CachingMatcher'], ['goog.array', 'goog.async.Throttle', 'goog.ui.ac.ArrayMatcher', 'goog.ui.ac.RenderOptions'], false); >+goog.addDependency('ui/ac/cachingmatcher_test.js', ['goog.ui.ac.CachingMatcherTest'], ['goog.testing.MockControl', 'goog.testing.jsunit', 'goog.testing.mockmatchers', 'goog.ui.ac.CachingMatcher'], false); >+goog.addDependency('ui/ac/inputhandler.js', ['goog.ui.ac.InputHandler'], ['goog.Disposable', 'goog.Timer', 'goog.a11y.aria', 'goog.dom', 'goog.dom.selection', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.string', 'goog.userAgent', 'goog.userAgent.product'], false); >+goog.addDependency('ui/ac/inputhandler_test.js', ['goog.ui.ac.InputHandlerTest'], ['goog.dom.selection', 'goog.events.BrowserEvent', 'goog.events.Event', 'goog.events.EventTarget', 'goog.events.KeyCodes', 'goog.functions', 'goog.object', 'goog.testing.MockClock', 'goog.testing.jsunit', 'goog.ui.ac.InputHandler', 'goog.userAgent'], false); >+goog.addDependency('ui/ac/remote.js', ['goog.ui.ac.Remote'], ['goog.ui.ac.AutoComplete', 'goog.ui.ac.InputHandler', 'goog.ui.ac.RemoteArrayMatcher', 'goog.ui.ac.Renderer'], false); >+goog.addDependency('ui/ac/remotearraymatcher.js', ['goog.ui.ac.RemoteArrayMatcher'], ['goog.Disposable', 'goog.Uri', 'goog.events', 'goog.json', 'goog.net.EventType', 'goog.net.XhrIo'], false); >+goog.addDependency('ui/ac/remotearraymatcher_test.js', ['goog.ui.ac.RemoteArrayMatcherTest'], ['goog.json', 'goog.net.XhrIo', 'goog.testing.MockControl', 'goog.testing.jsunit', 'goog.testing.net.XhrIo', 'goog.ui.ac.RemoteArrayMatcher'], false); >+goog.addDependency('ui/ac/renderer.js', ['goog.ui.ac.Renderer', 'goog.ui.ac.Renderer.CustomRenderer'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.array', 'goog.asserts', 'goog.dispose', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.fx.dom.FadeInAndShow', 'goog.fx.dom.FadeOutAndHide', 'goog.positioning', 'goog.positioning.Corner', 'goog.positioning.Overflow', 'goog.string', 'goog.style', 'goog.ui.IdGenerator', 'goog.ui.ac.AutoComplete'], false); >+goog.addDependency('ui/ac/renderer_test.js', ['goog.ui.ac.RendererTest'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events', 'goog.fx.dom.FadeInAndShow', 'goog.fx.dom.FadeOutAndHide', 'goog.string', 'goog.style', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.ui.ac.AutoComplete', 'goog.ui.ac.Renderer'], false); >+goog.addDependency('ui/ac/renderoptions.js', ['goog.ui.ac.RenderOptions'], [], false); >+goog.addDependency('ui/ac/richinputhandler.js', ['goog.ui.ac.RichInputHandler'], ['goog.ui.ac.InputHandler'], false); >+goog.addDependency('ui/ac/richremote.js', ['goog.ui.ac.RichRemote'], ['goog.ui.ac.AutoComplete', 'goog.ui.ac.Remote', 'goog.ui.ac.Renderer', 'goog.ui.ac.RichInputHandler', 'goog.ui.ac.RichRemoteArrayMatcher'], false); >+goog.addDependency('ui/ac/richremotearraymatcher.js', ['goog.ui.ac.RichRemoteArrayMatcher'], ['goog.dom.safe', 'goog.html.legacyconversions', 'goog.json', 'goog.ui.ac.RemoteArrayMatcher'], false); >+goog.addDependency('ui/activitymonitor.js', ['goog.ui.ActivityMonitor'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType'], false); >+goog.addDependency('ui/activitymonitor_test.js', ['goog.ui.ActivityMonitorTest'], ['goog.dom', 'goog.events', 'goog.events.Event', 'goog.events.EventType', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.events', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.ui.ActivityMonitor'], false); >+goog.addDependency('ui/advancedtooltip.js', ['goog.ui.AdvancedTooltip'], ['goog.events', 'goog.events.EventType', 'goog.math.Box', 'goog.math.Coordinate', 'goog.style', 'goog.ui.Tooltip', 'goog.userAgent'], false); >+goog.addDependency('ui/advancedtooltip_test.js', ['goog.ui.AdvancedTooltipTest'], ['goog.dom', 'goog.dom.TagName', 'goog.events.Event', 'goog.events.EventType', 'goog.math.Box', 'goog.math.Coordinate', 'goog.style', 'goog.testing.MockClock', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.AdvancedTooltip', 'goog.ui.Tooltip', 'goog.userAgent'], false); >+goog.addDependency('ui/animatedzippy.js', ['goog.ui.AnimatedZippy'], ['goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.fx.Animation', 'goog.fx.Transition', 'goog.fx.easing', 'goog.ui.Zippy', 'goog.ui.ZippyEvent'], false); >+goog.addDependency('ui/animatedzippy_test.js', ['goog.ui.AnimatedZippyTest'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom', 'goog.events', 'goog.functions', 'goog.fx.Animation', 'goog.fx.Transition', 'goog.testing.PropertyReplacer', 'goog.testing.asserts', 'goog.testing.jsunit', 'goog.ui.AnimatedZippy', 'goog.ui.Zippy'], false); >+goog.addDependency('ui/attachablemenu.js', ['goog.ui.AttachableMenu'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.classlist', 'goog.events.Event', 'goog.events.KeyCodes', 'goog.string', 'goog.style', 'goog.ui.ItemEvent', 'goog.ui.MenuBase', 'goog.ui.PopupBase', 'goog.userAgent'], false); >+goog.addDependency('ui/bidiinput.js', ['goog.ui.BidiInput'], ['goog.dom', 'goog.dom.InputType', 'goog.dom.TagName', 'goog.events', 'goog.events.InputHandler', 'goog.i18n.bidi', 'goog.i18n.bidi.Dir', 'goog.ui.Component'], false); >+goog.addDependency('ui/bidiinput_test.js', ['goog.ui.BidiInputTest'], ['goog.dom', 'goog.testing.jsunit', 'goog.ui.BidiInput'], false); >+goog.addDependency('ui/bubble.js', ['goog.ui.Bubble'], ['goog.Timer', 'goog.dom.safe', 'goog.events', 'goog.events.EventType', 'goog.html.SafeHtml', 'goog.html.legacyconversions', 'goog.math.Box', 'goog.positioning', 'goog.positioning.AbsolutePosition', 'goog.positioning.AnchoredPosition', 'goog.positioning.Corner', 'goog.positioning.CornerBit', 'goog.string.Const', 'goog.style', 'goog.ui.Component', 'goog.ui.Popup'], false); >+goog.addDependency('ui/button.js', ['goog.ui.Button', 'goog.ui.Button.Side'], ['goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.ui.ButtonRenderer', 'goog.ui.ButtonSide', 'goog.ui.Component', 'goog.ui.Control', 'goog.ui.NativeButtonRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/button_test.js', ['goog.ui.ButtonTest'], ['goog.dom', 'goog.dom.classlist', 'goog.events', 'goog.events.Event', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.Button', 'goog.ui.ButtonRenderer', 'goog.ui.ButtonSide', 'goog.ui.Component', 'goog.ui.NativeButtonRenderer'], false); >+goog.addDependency('ui/buttonrenderer.js', ['goog.ui.ButtonRenderer'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.asserts', 'goog.ui.ButtonSide', 'goog.ui.Component', 'goog.ui.ControlRenderer'], false); >+goog.addDependency('ui/buttonrenderer_test.js', ['goog.ui.ButtonRendererTest'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.dom', 'goog.dom.classlist', 'goog.testing.ExpectedFailures', 'goog.testing.jsunit', 'goog.testing.ui.rendererasserts', 'goog.ui.Button', 'goog.ui.ButtonRenderer', 'goog.ui.ButtonSide', 'goog.ui.Component'], false); >+goog.addDependency('ui/buttonside.js', ['goog.ui.ButtonSide'], [], false); >+goog.addDependency('ui/charcounter.js', ['goog.ui.CharCounter', 'goog.ui.CharCounter.Display'], ['goog.dom', 'goog.events', 'goog.events.EventTarget', 'goog.events.InputHandler'], false); >+goog.addDependency('ui/charcounter_test.js', ['goog.ui.CharCounterTest'], ['goog.dom', 'goog.testing.asserts', 'goog.testing.jsunit', 'goog.ui.CharCounter', 'goog.userAgent'], false); >+goog.addDependency('ui/charpicker.js', ['goog.ui.CharPicker'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.events.InputHandler', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.i18n.CharListDecompressor', 'goog.i18n.uChar', 'goog.structs.Set', 'goog.style', 'goog.ui.Button', 'goog.ui.Component', 'goog.ui.ContainerScroller', 'goog.ui.FlatButtonRenderer', 'goog.ui.HoverCard', 'goog.ui.LabelInput', 'goog.ui.Menu', 'goog.ui.MenuButton', 'goog.ui.MenuItem', 'goog.ui.Tooltip'], false); >+goog.addDependency('ui/charpicker_test.js', ['goog.ui.CharPickerTest'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.dispose', 'goog.dom', 'goog.events.Event', 'goog.events.EventType', 'goog.i18n.CharPickerData', 'goog.i18n.uChar.NameFetcher', 'goog.testing.MockControl', 'goog.testing.events', 'goog.testing.jsunit', 'goog.testing.mockmatchers', 'goog.ui.CharPicker', 'goog.ui.FlatButtonRenderer'], false); >+goog.addDependency('ui/checkbox.js', ['goog.ui.Checkbox', 'goog.ui.Checkbox.State'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.string', 'goog.ui.CheckboxRenderer', 'goog.ui.Component', 'goog.ui.Control', 'goog.ui.registry'], false); >+goog.addDependency('ui/checkbox_test.js', ['goog.ui.CheckboxTest'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events', 'goog.events.KeyCodes', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.Checkbox', 'goog.ui.CheckboxRenderer', 'goog.ui.Component', 'goog.ui.ControlRenderer', 'goog.ui.decorate'], false); >+goog.addDependency('ui/checkboxmenuitem.js', ['goog.ui.CheckBoxMenuItem'], ['goog.ui.MenuItem', 'goog.ui.registry'], false); >+goog.addDependency('ui/checkboxrenderer.js', ['goog.ui.CheckboxRenderer'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.array', 'goog.asserts', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.object', 'goog.ui.ControlRenderer'], false); >+goog.addDependency('ui/colorbutton.js', ['goog.ui.ColorButton'], ['goog.ui.Button', 'goog.ui.ColorButtonRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/colorbutton_test.js', ['goog.ui.ColorButtonTest'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.testing.jsunit', 'goog.ui.ColorButton', 'goog.ui.decorate'], false); >+goog.addDependency('ui/colorbuttonrenderer.js', ['goog.ui.ColorButtonRenderer'], ['goog.asserts', 'goog.dom.classlist', 'goog.functions', 'goog.ui.ColorMenuButtonRenderer'], false); >+goog.addDependency('ui/colormenubutton.js', ['goog.ui.ColorMenuButton'], ['goog.array', 'goog.object', 'goog.ui.ColorMenuButtonRenderer', 'goog.ui.ColorPalette', 'goog.ui.Component', 'goog.ui.Menu', 'goog.ui.MenuButton', 'goog.ui.registry'], false); >+goog.addDependency('ui/colormenubuttonrenderer.js', ['goog.ui.ColorMenuButtonRenderer'], ['goog.asserts', 'goog.color', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.ui.MenuButtonRenderer', 'goog.userAgent'], false); >+goog.addDependency('ui/colormenubuttonrenderer_test.js', ['goog.ui.ColorMenuButtonTest'], ['goog.dom', 'goog.dom.TagName', 'goog.testing.jsunit', 'goog.testing.ui.RendererHarness', 'goog.testing.ui.rendererasserts', 'goog.ui.ColorMenuButton', 'goog.ui.ColorMenuButtonRenderer', 'goog.userAgent'], false); >+goog.addDependency('ui/colorpalette.js', ['goog.ui.ColorPalette'], ['goog.array', 'goog.color', 'goog.dom.TagName', 'goog.style', 'goog.ui.Palette', 'goog.ui.PaletteRenderer'], false); >+goog.addDependency('ui/colorpalette_test.js', ['goog.ui.ColorPaletteTest'], ['goog.color', 'goog.testing.jsunit', 'goog.ui.ColorPalette'], false); >+goog.addDependency('ui/colorpicker.js', ['goog.ui.ColorPicker', 'goog.ui.ColorPicker.EventType'], ['goog.ui.ColorPalette', 'goog.ui.Component'], false); >+goog.addDependency('ui/colorsplitbehavior.js', ['goog.ui.ColorSplitBehavior'], ['goog.ui.ColorMenuButton', 'goog.ui.SplitBehavior'], false); >+goog.addDependency('ui/combobox.js', ['goog.ui.ComboBox', 'goog.ui.ComboBoxItem'], ['goog.Timer', 'goog.asserts', 'goog.dom', 'goog.dom.InputType', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events.EventType', 'goog.events.InputHandler', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.log', 'goog.positioning.Corner', 'goog.positioning.MenuAnchoredPosition', 'goog.string', 'goog.style', 'goog.ui.Component', 'goog.ui.ItemEvent', 'goog.ui.LabelInput', 'goog.ui.Menu', 'goog.ui.MenuItem', 'goog.ui.MenuSeparator', 'goog.ui.registry', 'goog.userAgent'], false); >+goog.addDependency('ui/combobox_test.js', ['goog.ui.ComboBoxTest'], ['goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events.KeyCodes', 'goog.testing.MockClock', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.ComboBox', 'goog.ui.ComboBoxItem', 'goog.ui.Component', 'goog.ui.ControlRenderer', 'goog.ui.LabelInput', 'goog.ui.Menu', 'goog.ui.MenuItem'], false); >+goog.addDependency('ui/component.js', ['goog.ui.Component', 'goog.ui.Component.Error', 'goog.ui.Component.EventType', 'goog.ui.Component.State'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.object', 'goog.style', 'goog.ui.IdGenerator'], false); >+goog.addDependency('ui/component_test.js', ['goog.ui.ComponentTest'], ['goog.dom', 'goog.dom.DomHelper', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.events.EventTarget', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.ui.Component'], false); >+goog.addDependency('ui/container.js', ['goog.ui.Container', 'goog.ui.Container.EventType', 'goog.ui.Container.Orientation'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.object', 'goog.style', 'goog.ui.Component', 'goog.ui.ContainerRenderer', 'goog.ui.Control'], false); >+goog.addDependency('ui/container_test.js', ['goog.ui.ContainerTest'], ['goog.a11y.aria', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events', 'goog.events.Event', 'goog.events.KeyCodes', 'goog.events.KeyEvent', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.Component', 'goog.ui.Container', 'goog.ui.Control'], false); >+goog.addDependency('ui/containerrenderer.js', ['goog.ui.ContainerRenderer'], ['goog.a11y.aria', 'goog.array', 'goog.asserts', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.string', 'goog.style', 'goog.ui.registry', 'goog.userAgent'], false); >+goog.addDependency('ui/containerrenderer_test.js', ['goog.ui.ContainerRendererTest'], ['goog.dom', 'goog.dom.TagName', 'goog.style', 'goog.testing.ExpectedFailures', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.testing.ui.rendererasserts', 'goog.ui.Container', 'goog.ui.ContainerRenderer', 'goog.userAgent'], false); >+goog.addDependency('ui/containerscroller.js', ['goog.ui.ContainerScroller'], ['goog.Disposable', 'goog.Timer', 'goog.events.EventHandler', 'goog.style', 'goog.ui.Component', 'goog.ui.Container'], false); >+goog.addDependency('ui/containerscroller_test.js', ['goog.ui.ContainerScrollerTest'], ['goog.dom', 'goog.testing.MockClock', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.Container', 'goog.ui.ContainerScroller'], false); >+goog.addDependency('ui/control.js', ['goog.ui.Control'], ['goog.Disposable', 'goog.array', 'goog.dom', 'goog.events.BrowserEvent', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.string', 'goog.ui.Component', 'goog.ui.ControlContent', 'goog.ui.ControlRenderer', 'goog.ui.decorate', 'goog.ui.registry', 'goog.userAgent'], false); >+goog.addDependency('ui/control_test.js', ['goog.ui.ControlTest'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.KeyCodes', 'goog.object', 'goog.string', 'goog.style', 'goog.testing.ExpectedFailures', 'goog.testing.events', 'goog.testing.events.Event', 'goog.testing.jsunit', 'goog.ui.Component', 'goog.ui.Control', 'goog.ui.ControlRenderer', 'goog.ui.registry', 'goog.userAgent'], false); >+goog.addDependency('ui/controlcontent.js', ['goog.ui.ControlContent'], [], false); >+goog.addDependency('ui/controlrenderer.js', ['goog.ui.ControlRenderer'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.object', 'goog.string', 'goog.style', 'goog.ui.Component', 'goog.userAgent'], false); >+goog.addDependency('ui/controlrenderer_test.js', ['goog.ui.ControlRendererTest'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.object', 'goog.style', 'goog.testing.ExpectedFailures', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.ui.Component', 'goog.ui.Control', 'goog.ui.ControlRenderer', 'goog.userAgent'], false); >+goog.addDependency('ui/cookieeditor.js', ['goog.ui.CookieEditor'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.events.EventType', 'goog.net.cookies', 'goog.string', 'goog.style', 'goog.ui.Component'], false); >+goog.addDependency('ui/cookieeditor_test.js', ['goog.ui.CookieEditorTest'], ['goog.dom', 'goog.events.Event', 'goog.events.EventType', 'goog.net.cookies', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.CookieEditor'], false); >+goog.addDependency('ui/css3buttonrenderer.js', ['goog.ui.Css3ButtonRenderer'], ['goog.asserts', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.ui.Button', 'goog.ui.ButtonRenderer', 'goog.ui.Component', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.registry'], false); >+goog.addDependency('ui/css3menubuttonrenderer.js', ['goog.ui.Css3MenuButtonRenderer'], ['goog.dom', 'goog.dom.TagName', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.MenuButton', 'goog.ui.MenuButtonRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/cssnames.js', ['goog.ui.INLINE_BLOCK_CLASSNAME'], [], false); >+goog.addDependency('ui/custombutton.js', ['goog.ui.CustomButton'], ['goog.ui.Button', 'goog.ui.CustomButtonRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/custombuttonrenderer.js', ['goog.ui.CustomButtonRenderer'], ['goog.a11y.aria.Role', 'goog.asserts', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.string', 'goog.ui.ButtonRenderer', 'goog.ui.INLINE_BLOCK_CLASSNAME'], false); >+goog.addDependency('ui/customcolorpalette.js', ['goog.ui.CustomColorPalette'], ['goog.color', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.ui.ColorPalette', 'goog.ui.Component'], false); >+goog.addDependency('ui/customcolorpalette_test.js', ['goog.ui.CustomColorPaletteTest'], ['goog.dom.TagName', 'goog.dom.classlist', 'goog.testing.jsunit', 'goog.ui.CustomColorPalette'], false); >+goog.addDependency('ui/datepicker.js', ['goog.ui.DatePicker', 'goog.ui.DatePicker.Events', 'goog.ui.DatePickerEvent'], ['goog.a11y.aria', 'goog.asserts', 'goog.date.Date', 'goog.date.DateRange', 'goog.date.Interval', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events.Event', 'goog.events.EventType', 'goog.events.KeyHandler', 'goog.i18n.DateTimeFormat', 'goog.i18n.DateTimePatterns', 'goog.i18n.DateTimeSymbols', 'goog.style', 'goog.ui.Component', 'goog.ui.DefaultDatePickerRenderer', 'goog.ui.IdGenerator'], false); >+goog.addDependency('ui/datepicker_test.js', ['goog.ui.DatePickerTest'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.date.Date', 'goog.date.DateRange', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events', 'goog.i18n.DateTimeSymbols', 'goog.i18n.DateTimeSymbols_en_US', 'goog.i18n.DateTimeSymbols_zh_HK', 'goog.style', 'goog.testing.jsunit', 'goog.ui.DatePicker'], false); >+goog.addDependency('ui/datepickerrenderer.js', ['goog.ui.DatePickerRenderer'], [], false); >+goog.addDependency('ui/decorate.js', ['goog.ui.decorate'], ['goog.ui.registry'], false); >+goog.addDependency('ui/decorate_test.js', ['goog.ui.decorateTest'], ['goog.testing.jsunit', 'goog.ui.decorate', 'goog.ui.registry'], false); >+goog.addDependency('ui/defaultdatepickerrenderer.js', ['goog.ui.DefaultDatePickerRenderer'], ['goog.dom', 'goog.dom.TagName', 'goog.ui.DatePickerRenderer'], false); >+goog.addDependency('ui/dialog.js', ['goog.ui.Dialog', 'goog.ui.Dialog.ButtonSet', 'goog.ui.Dialog.ButtonSet.DefaultButtons', 'goog.ui.Dialog.DefaultButtonCaptions', 'goog.ui.Dialog.DefaultButtonKeys', 'goog.ui.Dialog.Event', 'goog.ui.Dialog.EventType'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.dom.safe', 'goog.events', 'goog.events.Event', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.fx.Dragger', 'goog.html.SafeHtml', 'goog.html.legacyconversions', 'goog.math.Rect', 'goog.string', 'goog.structs.Map', 'goog.style', 'goog.ui.ModalPopup'], false); >+goog.addDependency('ui/dialog_test.js', ['goog.ui.DialogTest'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.fx.css3', 'goog.html.SafeHtml', 'goog.html.testing', 'goog.style', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.events', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.ui.Dialog', 'goog.userAgent'], false); >+goog.addDependency('ui/dimensionpicker.js', ['goog.ui.DimensionPicker'], ['goog.events.EventType', 'goog.events.KeyCodes', 'goog.math.Size', 'goog.ui.Component', 'goog.ui.Control', 'goog.ui.DimensionPickerRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/dimensionpicker_test.js', ['goog.ui.DimensionPickerTest'], ['goog.dom', 'goog.dom.TagName', 'goog.events.KeyCodes', 'goog.math.Size', 'goog.testing.jsunit', 'goog.testing.ui.rendererasserts', 'goog.ui.DimensionPicker', 'goog.ui.DimensionPickerRenderer'], false); >+goog.addDependency('ui/dimensionpickerrenderer.js', ['goog.ui.DimensionPickerRenderer'], ['goog.a11y.aria.Announcer', 'goog.a11y.aria.LivePriority', 'goog.dom', 'goog.dom.TagName', 'goog.i18n.bidi', 'goog.style', 'goog.ui.ControlRenderer', 'goog.userAgent'], false); >+goog.addDependency('ui/dimensionpickerrenderer_test.js', ['goog.ui.DimensionPickerRendererTest'], ['goog.a11y.aria.LivePriority', 'goog.array', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.ui.DimensionPicker', 'goog.ui.DimensionPickerRenderer'], false); >+goog.addDependency('ui/dragdropdetector.js', ['goog.ui.DragDropDetector', 'goog.ui.DragDropDetector.EventType', 'goog.ui.DragDropDetector.ImageDropEvent', 'goog.ui.DragDropDetector.LinkDropEvent'], ['goog.dom', 'goog.dom.InputType', 'goog.dom.TagName', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.math.Coordinate', 'goog.string', 'goog.style', 'goog.userAgent'], false); >+goog.addDependency('ui/drilldownrow.js', ['goog.ui.DrilldownRow'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.html.SafeHtml', 'goog.html.legacyconversions', 'goog.ui.Component'], false); >+goog.addDependency('ui/drilldownrow_test.js', ['goog.ui.DrilldownRowTest'], ['goog.dom', 'goog.testing.jsunit', 'goog.ui.DrilldownRow'], false); >+goog.addDependency('ui/editor/abstractdialog.js', ['goog.ui.editor.AbstractDialog', 'goog.ui.editor.AbstractDialog.Builder', 'goog.ui.editor.AbstractDialog.EventType'], ['goog.asserts', 'goog.dom', 'goog.dom.classlist', 'goog.events.EventTarget', 'goog.string', 'goog.ui.Dialog', 'goog.ui.PopupBase'], false); >+goog.addDependency('ui/editor/abstractdialog_test.js', ['goog.ui.editor.AbstractDialogTest'], ['goog.dom', 'goog.dom.DomHelper', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.KeyCodes', 'goog.testing.MockControl', 'goog.testing.events', 'goog.testing.jsunit', 'goog.testing.mockmatchers.ArgumentMatcher', 'goog.ui.editor.AbstractDialog', 'goog.userAgent'], false); >+goog.addDependency('ui/editor/bubble.js', ['goog.ui.editor.Bubble'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.dom.ViewportSizeMonitor', 'goog.dom.classlist', 'goog.editor.style', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.functions', 'goog.log', 'goog.math.Box', 'goog.object', 'goog.positioning', 'goog.positioning.Corner', 'goog.positioning.Overflow', 'goog.positioning.OverflowStatus', 'goog.string', 'goog.style', 'goog.ui.Component', 'goog.ui.PopupBase', 'goog.userAgent'], false); >+goog.addDependency('ui/editor/bubble_test.js', ['goog.ui.editor.BubbleTest'], ['goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'goog.positioning.Corner', 'goog.positioning.OverflowStatus', 'goog.string', 'goog.style', 'goog.testing.editor.TestHelper', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.Component', 'goog.ui.editor.Bubble'], false); >+goog.addDependency('ui/editor/defaulttoolbar.js', ['goog.ui.editor.ButtonDescriptor', 'goog.ui.editor.DefaultToolbar'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.editor.Command', 'goog.style', 'goog.ui.editor.ToolbarFactory', 'goog.ui.editor.messages', 'goog.userAgent'], false); >+goog.addDependency('ui/editor/linkdialog.js', ['goog.ui.editor.LinkDialog', 'goog.ui.editor.LinkDialog.BeforeTestLinkEvent', 'goog.ui.editor.LinkDialog.EventType', 'goog.ui.editor.LinkDialog.OkEvent'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.dom', 'goog.dom.InputType', 'goog.dom.TagName', 'goog.dom.safe', 'goog.editor.BrowserFeature', 'goog.editor.Link', 'goog.editor.focus', 'goog.editor.node', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.InputHandler', 'goog.html.SafeHtml', 'goog.string', 'goog.string.Unicode', 'goog.style', 'goog.ui.Button', 'goog.ui.Component', 'goog.ui.LinkButtonRenderer', 'goog.ui.editor.AbstractDialog', 'goog.ui.editor.TabPane', 'goog.ui.editor.messages', 'goog.userAgent', 'goog.window'], false); >+goog.addDependency('ui/editor/linkdialog_test.js', ['goog.ui.editor.LinkDialogTest'], ['goog.dom', 'goog.dom.DomHelper', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Link', 'goog.events', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.style', 'goog.testing.MockControl', 'goog.testing.PropertyReplacer', 'goog.testing.dom', 'goog.testing.events', 'goog.testing.events.Event', 'goog.testing.jsunit', 'goog.testing.mockmatchers', 'goog.testing.mockmatchers.ArgumentMatcher', 'goog.ui.editor.AbstractDialog', 'goog.ui.editor.LinkDialog', 'goog.ui.editor.messages', 'goog.userAgent'], false); >+goog.addDependency('ui/editor/messages.js', ['goog.ui.editor.messages'], ['goog.html.uncheckedconversions', 'goog.string.Const'], false); >+goog.addDependency('ui/editor/tabpane.js', ['goog.ui.editor.TabPane'], ['goog.asserts', 'goog.dom.InputType', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.style', 'goog.ui.Component', 'goog.ui.Control', 'goog.ui.Tab', 'goog.ui.TabBar'], false); >+goog.addDependency('ui/editor/toolbarcontroller.js', ['goog.ui.editor.ToolbarController'], ['goog.editor.Field', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.ui.Component'], false); >+goog.addDependency('ui/editor/toolbarfactory.js', ['goog.ui.editor.ToolbarFactory'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.string', 'goog.string.Unicode', 'goog.style', 'goog.ui.Component', 'goog.ui.Container', 'goog.ui.Option', 'goog.ui.Toolbar', 'goog.ui.ToolbarButton', 'goog.ui.ToolbarColorMenuButton', 'goog.ui.ToolbarMenuButton', 'goog.ui.ToolbarRenderer', 'goog.ui.ToolbarSelect', 'goog.userAgent'], false); >+goog.addDependency('ui/editor/toolbarfactory_test.js', ['goog.ui.editor.ToolbarFactoryTest'], ['goog.dom', 'goog.testing.ExpectedFailures', 'goog.testing.editor.TestHelper', 'goog.testing.jsunit', 'goog.ui.editor.ToolbarFactory', 'goog.userAgent'], false); >+goog.addDependency('ui/emoji/emoji.js', ['goog.ui.emoji.Emoji'], [], false); >+goog.addDependency('ui/emoji/emojipalette.js', ['goog.ui.emoji.EmojiPalette'], ['goog.events.EventType', 'goog.net.ImageLoader', 'goog.ui.Palette', 'goog.ui.emoji.Emoji', 'goog.ui.emoji.EmojiPaletteRenderer'], false); >+goog.addDependency('ui/emoji/emojipaletterenderer.js', ['goog.ui.emoji.EmojiPaletteRenderer'], ['goog.a11y.aria', 'goog.asserts', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.style', 'goog.ui.PaletteRenderer', 'goog.ui.emoji.Emoji'], false); >+goog.addDependency('ui/emoji/emojipicker.js', ['goog.ui.emoji.EmojiPicker'], ['goog.dom.TagName', 'goog.style', 'goog.ui.Component', 'goog.ui.TabPane', 'goog.ui.emoji.Emoji', 'goog.ui.emoji.EmojiPalette', 'goog.ui.emoji.EmojiPaletteRenderer', 'goog.ui.emoji.ProgressiveEmojiPaletteRenderer'], false); >+goog.addDependency('ui/emoji/emojipicker_test.js', ['goog.ui.emoji.EmojiPickerTest'], ['goog.dom.TagName', 'goog.dom.classlist', 'goog.events.EventHandler', 'goog.style', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.Component', 'goog.ui.emoji.Emoji', 'goog.ui.emoji.EmojiPicker', 'goog.ui.emoji.SpriteInfo'], false); >+goog.addDependency('ui/emoji/fast_nonprogressive_emojipicker_test.js', ['goog.ui.emoji.FastNonProgressiveEmojiPickerTest'], ['goog.dom.classlist', 'goog.events', 'goog.events.EventType', 'goog.net.EventType', 'goog.style', 'goog.testing.AsyncTestCase', 'goog.testing.jsunit', 'goog.ui.emoji.Emoji', 'goog.ui.emoji.EmojiPicker', 'goog.ui.emoji.SpriteInfo', 'goog.userAgent'], false); >+goog.addDependency('ui/emoji/fast_progressive_emojipicker_test.js', ['goog.ui.emoji.FastProgressiveEmojiPickerTest'], ['goog.dom.classlist', 'goog.events', 'goog.events.EventType', 'goog.net.EventType', 'goog.style', 'goog.testing.AsyncTestCase', 'goog.testing.jsunit', 'goog.ui.emoji.Emoji', 'goog.ui.emoji.EmojiPicker', 'goog.ui.emoji.SpriteInfo'], false); >+goog.addDependency('ui/emoji/popupemojipicker.js', ['goog.ui.emoji.PopupEmojiPicker'], ['goog.events.EventType', 'goog.positioning.AnchoredPosition', 'goog.positioning.Corner', 'goog.ui.Component', 'goog.ui.Popup', 'goog.ui.emoji.EmojiPicker'], false); >+goog.addDependency('ui/emoji/popupemojipicker_test.js', ['goog.ui.emoji.PopupEmojiPickerTest'], ['goog.dom', 'goog.testing.jsunit', 'goog.ui.emoji.PopupEmojiPicker'], false); >+goog.addDependency('ui/emoji/progressiveemojipaletterenderer.js', ['goog.ui.emoji.ProgressiveEmojiPaletteRenderer'], ['goog.dom.TagName', 'goog.style', 'goog.ui.emoji.EmojiPaletteRenderer'], false); >+goog.addDependency('ui/emoji/spriteinfo.js', ['goog.ui.emoji.SpriteInfo'], [], false); >+goog.addDependency('ui/emoji/spriteinfo_test.js', ['goog.ui.emoji.SpriteInfoTest'], ['goog.testing.jsunit', 'goog.ui.emoji.SpriteInfo'], false); >+goog.addDependency('ui/filteredmenu.js', ['goog.ui.FilteredMenu'], ['goog.a11y.aria', 'goog.a11y.aria.AutoCompleteValues', 'goog.a11y.aria.State', 'goog.dom', 'goog.dom.InputType', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'goog.events.InputHandler', 'goog.events.KeyCodes', 'goog.object', 'goog.string', 'goog.style', 'goog.ui.Component', 'goog.ui.FilterObservingMenuItem', 'goog.ui.Menu', 'goog.ui.MenuItem', 'goog.userAgent'], false); >+goog.addDependency('ui/filteredmenu_test.js', ['goog.ui.FilteredMenuTest'], ['goog.a11y.aria', 'goog.a11y.aria.AutoCompleteValues', 'goog.a11y.aria.State', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.math.Rect', 'goog.style', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.FilteredMenu', 'goog.ui.MenuItem'], false); >+goog.addDependency('ui/filterobservingmenuitem.js', ['goog.ui.FilterObservingMenuItem'], ['goog.ui.FilterObservingMenuItemRenderer', 'goog.ui.MenuItem', 'goog.ui.registry'], false); >+goog.addDependency('ui/filterobservingmenuitemrenderer.js', ['goog.ui.FilterObservingMenuItemRenderer'], ['goog.ui.MenuItemRenderer'], false); >+goog.addDependency('ui/flatbuttonrenderer.js', ['goog.ui.FlatButtonRenderer'], ['goog.a11y.aria.Role', 'goog.asserts', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.ui.Button', 'goog.ui.ButtonRenderer', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.registry'], false); >+goog.addDependency('ui/flatmenubuttonrenderer.js', ['goog.ui.FlatMenuButtonRenderer'], ['goog.dom', 'goog.dom.TagName', 'goog.style', 'goog.ui.FlatButtonRenderer', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.Menu', 'goog.ui.MenuButton', 'goog.ui.MenuRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/formpost.js', ['goog.ui.FormPost'], ['goog.array', 'goog.dom.InputType', 'goog.dom.TagName', 'goog.dom.safe', 'goog.html.SafeHtml', 'goog.ui.Component'], false); >+goog.addDependency('ui/formpost_test.js', ['goog.ui.FormPostTest'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.object', 'goog.testing.jsunit', 'goog.ui.FormPost', 'goog.userAgent.product', 'goog.userAgent.product.isVersion'], false); >+goog.addDependency('ui/gauge.js', ['goog.ui.Gauge', 'goog.ui.GaugeColoredRange'], ['goog.a11y.aria', 'goog.asserts', 'goog.dom.TagName', 'goog.events', 'goog.fx.Animation', 'goog.fx.Transition', 'goog.fx.easing', 'goog.graphics', 'goog.graphics.Font', 'goog.graphics.Path', 'goog.graphics.SolidFill', 'goog.math', 'goog.ui.Component', 'goog.ui.GaugeTheme'], false); >+goog.addDependency('ui/gaugetheme.js', ['goog.ui.GaugeTheme'], ['goog.graphics.LinearGradient', 'goog.graphics.SolidFill', 'goog.graphics.Stroke'], false); >+goog.addDependency('ui/hovercard.js', ['goog.ui.HoverCard', 'goog.ui.HoverCard.EventType', 'goog.ui.HoverCard.TriggerEvent'], ['goog.array', 'goog.dom', 'goog.events', 'goog.events.Event', 'goog.events.EventType', 'goog.ui.AdvancedTooltip', 'goog.ui.PopupBase', 'goog.ui.Tooltip'], false); >+goog.addDependency('ui/hovercard_test.js', ['goog.ui.HoverCardTest'], ['goog.dom', 'goog.events', 'goog.math.Coordinate', 'goog.style', 'goog.testing.MockClock', 'goog.testing.events', 'goog.testing.events.Event', 'goog.testing.jsunit', 'goog.ui.HoverCard'], false); >+goog.addDependency('ui/hsvapalette.js', ['goog.ui.HsvaPalette'], ['goog.array', 'goog.color.alpha', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'goog.style', 'goog.ui.Component', 'goog.ui.HsvPalette'], false); >+goog.addDependency('ui/hsvapalette_test.js', ['goog.ui.HsvaPaletteTest'], ['goog.color.alpha', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events.Event', 'goog.math.Coordinate', 'goog.style', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.ui.HsvaPalette', 'goog.userAgent'], false); >+goog.addDependency('ui/hsvpalette.js', ['goog.ui.HsvPalette'], ['goog.color', 'goog.dom.InputType', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'goog.events.InputHandler', 'goog.style', 'goog.style.bidi', 'goog.ui.Component', 'goog.userAgent'], false); >+goog.addDependency('ui/hsvpalette_test.js', ['goog.ui.HsvPaletteTest'], ['goog.color', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events', 'goog.events.Event', 'goog.math.Coordinate', 'goog.style', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.ui.Component', 'goog.ui.HsvPalette', 'goog.userAgent'], false); >+goog.addDependency('ui/idgenerator.js', ['goog.ui.IdGenerator'], [], false); >+goog.addDependency('ui/idletimer.js', ['goog.ui.IdleTimer'], ['goog.Timer', 'goog.events', 'goog.events.EventTarget', 'goog.structs.Set', 'goog.ui.ActivityMonitor'], false); >+goog.addDependency('ui/idletimer_test.js', ['goog.ui.IdleTimerTest'], ['goog.events', 'goog.testing.MockClock', 'goog.testing.jsunit', 'goog.ui.IdleTimer', 'goog.ui.MockActivityMonitor'], false); >+goog.addDependency('ui/iframemask.js', ['goog.ui.IframeMask'], ['goog.Disposable', 'goog.Timer', 'goog.dom', 'goog.dom.iframe', 'goog.events.EventHandler', 'goog.style'], false); >+goog.addDependency('ui/iframemask_test.js', ['goog.ui.IframeMaskTest'], ['goog.dom', 'goog.dom.TagName', 'goog.dom.iframe', 'goog.structs.Pool', 'goog.style', 'goog.testing.MockClock', 'goog.testing.StrictMock', 'goog.testing.jsunit', 'goog.ui.IframeMask', 'goog.ui.Popup', 'goog.ui.PopupBase', 'goog.userAgent'], false); >+goog.addDependency('ui/imagelessbuttonrenderer.js', ['goog.ui.ImagelessButtonRenderer'], ['goog.dom.TagName', 'goog.dom.classlist', 'goog.ui.Button', 'goog.ui.Component', 'goog.ui.CustomButtonRenderer', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.registry'], false); >+goog.addDependency('ui/imagelessmenubuttonrenderer.js', ['goog.ui.ImagelessMenuButtonRenderer'], ['goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.MenuButton', 'goog.ui.MenuButtonRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/inputdatepicker.js', ['goog.ui.InputDatePicker'], ['goog.date.DateTime', 'goog.dom', 'goog.dom.InputType', 'goog.dom.TagName', 'goog.string', 'goog.ui.Component', 'goog.ui.DatePicker', 'goog.ui.PopupBase', 'goog.ui.PopupDatePicker'], false); >+goog.addDependency('ui/inputdatepicker_test.js', ['goog.ui.InputDatePickerTest'], ['goog.dom', 'goog.i18n.DateTimeFormat', 'goog.i18n.DateTimeParse', 'goog.testing.jsunit', 'goog.ui.InputDatePicker'], false); >+goog.addDependency('ui/itemevent.js', ['goog.ui.ItemEvent'], ['goog.events.Event'], false); >+goog.addDependency('ui/keyboardshortcuthandler.js', ['goog.ui.KeyboardShortcutEvent', 'goog.ui.KeyboardShortcutHandler', 'goog.ui.KeyboardShortcutHandler.EventType'], ['goog.Timer', 'goog.array', 'goog.asserts', 'goog.dom.TagName', 'goog.events', 'goog.events.Event', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyNames', 'goog.object', 'goog.userAgent'], false); >+goog.addDependency('ui/keyboardshortcuthandler_test.js', ['goog.ui.KeyboardShortcutHandlerTest'], ['goog.dom', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.KeyCodes', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.StrictMock', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.KeyboardShortcutHandler', 'goog.userAgent'], false); >+goog.addDependency('ui/labelinput.js', ['goog.ui.LabelInput'], ['goog.Timer', 'goog.a11y.aria', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom', 'goog.dom.InputType', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.ui.Component', 'goog.userAgent'], false); >+goog.addDependency('ui/labelinput_test.js', ['goog.ui.LabelInputTest'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.dom', 'goog.dom.classlist', 'goog.events.EventType', 'goog.testing.MockClock', 'goog.testing.events', 'goog.testing.events.Event', 'goog.testing.jsunit', 'goog.ui.LabelInput', 'goog.userAgent'], false); >+goog.addDependency('ui/linkbuttonrenderer.js', ['goog.ui.LinkButtonRenderer'], ['goog.ui.Button', 'goog.ui.FlatButtonRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/media/flashobject.js', ['goog.ui.media.FlashObject', 'goog.ui.media.FlashObject.ScriptAccessLevel', 'goog.ui.media.FlashObject.Wmodes'], ['goog.asserts', 'goog.dom.TagName', 'goog.dom.safe', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.html.SafeUrl', 'goog.html.TrustedResourceUrl', 'goog.html.flash', 'goog.html.legacyconversions', 'goog.log', 'goog.object', 'goog.string', 'goog.structs.Map', 'goog.style', 'goog.ui.Component', 'goog.userAgent', 'goog.userAgent.flash'], false); >+goog.addDependency('ui/media/flashobject_test.js', ['goog.ui.media.FlashObjectTest'], ['goog.dom', 'goog.dom.DomHelper', 'goog.dom.TagName', 'goog.events', 'goog.events.Event', 'goog.events.EventType', 'goog.html.SafeUrl', 'goog.testing.MockControl', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.media.FlashObject', 'goog.userAgent'], false); >+goog.addDependency('ui/media/flickr.js', ['goog.ui.media.FlickrSet', 'goog.ui.media.FlickrSetModel'], ['goog.html.TrustedResourceUrl', 'goog.string.Const', 'goog.ui.media.FlashObject', 'goog.ui.media.Media', 'goog.ui.media.MediaModel', 'goog.ui.media.MediaRenderer'], false); >+goog.addDependency('ui/media/flickr_test.js', ['goog.ui.media.FlickrSetTest'], ['goog.dom', 'goog.dom.TagName', 'goog.html.testing', 'goog.testing.jsunit', 'goog.ui.media.FlashObject', 'goog.ui.media.FlickrSet', 'goog.ui.media.FlickrSetModel', 'goog.ui.media.Media'], false); >+goog.addDependency('ui/media/googlevideo.js', ['goog.ui.media.GoogleVideo', 'goog.ui.media.GoogleVideoModel'], ['goog.string', 'goog.ui.media.FlashObject', 'goog.ui.media.Media', 'goog.ui.media.MediaModel', 'goog.ui.media.MediaRenderer'], false); >+goog.addDependency('ui/media/googlevideo_test.js', ['goog.ui.media.GoogleVideoTest'], ['goog.dom', 'goog.dom.TagName', 'goog.testing.jsunit', 'goog.ui.media.FlashObject', 'goog.ui.media.GoogleVideo', 'goog.ui.media.GoogleVideoModel', 'goog.ui.media.Media'], false); >+goog.addDependency('ui/media/media.js', ['goog.ui.media.Media', 'goog.ui.media.MediaRenderer'], ['goog.asserts', 'goog.dom.TagName', 'goog.style', 'goog.ui.Component', 'goog.ui.Control', 'goog.ui.ControlRenderer'], false); >+goog.addDependency('ui/media/media_test.js', ['goog.ui.media.MediaTest'], ['goog.dom', 'goog.dom.TagName', 'goog.math.Size', 'goog.testing.jsunit', 'goog.ui.ControlRenderer', 'goog.ui.media.Media', 'goog.ui.media.MediaModel', 'goog.ui.media.MediaRenderer'], false); >+goog.addDependency('ui/media/mediamodel.js', ['goog.ui.media.MediaModel', 'goog.ui.media.MediaModel.Category', 'goog.ui.media.MediaModel.Credit', 'goog.ui.media.MediaModel.Credit.Role', 'goog.ui.media.MediaModel.Credit.Scheme', 'goog.ui.media.MediaModel.Medium', 'goog.ui.media.MediaModel.MimeType', 'goog.ui.media.MediaModel.Player', 'goog.ui.media.MediaModel.SubTitle', 'goog.ui.media.MediaModel.Thumbnail'], ['goog.array', 'goog.html.TrustedResourceUrl', 'goog.html.legacyconversions'], false); >+goog.addDependency('ui/media/mediamodel_test.js', ['goog.ui.media.MediaModelTest'], ['goog.testing.jsunit', 'goog.ui.media.MediaModel'], false); >+goog.addDependency('ui/media/mp3.js', ['goog.ui.media.Mp3'], ['goog.string', 'goog.ui.media.FlashObject', 'goog.ui.media.Media', 'goog.ui.media.MediaRenderer'], false); >+goog.addDependency('ui/media/mp3_test.js', ['goog.ui.media.Mp3Test'], ['goog.dom', 'goog.dom.TagName', 'goog.testing.jsunit', 'goog.ui.media.FlashObject', 'goog.ui.media.Media', 'goog.ui.media.MediaModel', 'goog.ui.media.Mp3'], false); >+goog.addDependency('ui/media/photo.js', ['goog.ui.media.Photo'], ['goog.dom.TagName', 'goog.ui.media.Media', 'goog.ui.media.MediaRenderer'], false); >+goog.addDependency('ui/media/photo_test.js', ['goog.ui.media.PhotoTest'], ['goog.dom', 'goog.dom.TagName', 'goog.testing.jsunit', 'goog.ui.media.MediaModel', 'goog.ui.media.Photo'], false); >+goog.addDependency('ui/media/picasa.js', ['goog.ui.media.PicasaAlbum', 'goog.ui.media.PicasaAlbumModel'], ['goog.html.TrustedResourceUrl', 'goog.string.Const', 'goog.ui.media.FlashObject', 'goog.ui.media.Media', 'goog.ui.media.MediaModel', 'goog.ui.media.MediaRenderer'], false); >+goog.addDependency('ui/media/picasa_test.js', ['goog.ui.media.PicasaTest'], ['goog.dom', 'goog.dom.TagName', 'goog.testing.jsunit', 'goog.ui.media.FlashObject', 'goog.ui.media.Media', 'goog.ui.media.PicasaAlbum', 'goog.ui.media.PicasaAlbumModel'], false); >+goog.addDependency('ui/media/vimeo.js', ['goog.ui.media.Vimeo', 'goog.ui.media.VimeoModel'], ['goog.string', 'goog.ui.media.FlashObject', 'goog.ui.media.Media', 'goog.ui.media.MediaModel', 'goog.ui.media.MediaRenderer'], false); >+goog.addDependency('ui/media/vimeo_test.js', ['goog.ui.media.VimeoTest'], ['goog.dom', 'goog.dom.TagName', 'goog.testing.jsunit', 'goog.ui.media.FlashObject', 'goog.ui.media.Media', 'goog.ui.media.Vimeo', 'goog.ui.media.VimeoModel'], false); >+goog.addDependency('ui/media/youtube.js', ['goog.ui.media.Youtube', 'goog.ui.media.YoutubeModel'], ['goog.dom.TagName', 'goog.string', 'goog.ui.Component', 'goog.ui.media.FlashObject', 'goog.ui.media.Media', 'goog.ui.media.MediaModel', 'goog.ui.media.MediaRenderer'], false); >+goog.addDependency('ui/media/youtube_test.js', ['goog.ui.media.YoutubeTest'], ['goog.dom', 'goog.dom.TagName', 'goog.testing.jsunit', 'goog.ui.media.FlashObject', 'goog.ui.media.Youtube', 'goog.ui.media.YoutubeModel'], false); >+goog.addDependency('ui/menu.js', ['goog.ui.Menu', 'goog.ui.Menu.EventType'], ['goog.dom.TagName', 'goog.math.Coordinate', 'goog.string', 'goog.style', 'goog.ui.Component.EventType', 'goog.ui.Component.State', 'goog.ui.Container', 'goog.ui.Container.Orientation', 'goog.ui.MenuHeader', 'goog.ui.MenuItem', 'goog.ui.MenuRenderer', 'goog.ui.MenuSeparator'], false); >+goog.addDependency('ui/menu_test.js', ['goog.ui.MenuTest'], ['goog.dom', 'goog.events', 'goog.math.Coordinate', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.Component', 'goog.ui.Menu'], false); >+goog.addDependency('ui/menubar.js', ['goog.ui.menuBar'], ['goog.ui.Container', 'goog.ui.MenuBarRenderer'], false); >+goog.addDependency('ui/menubardecorator.js', ['goog.ui.menuBarDecorator'], ['goog.ui.MenuBarRenderer', 'goog.ui.menuBar', 'goog.ui.registry'], false); >+goog.addDependency('ui/menubarrenderer.js', ['goog.ui.MenuBarRenderer'], ['goog.a11y.aria.Role', 'goog.ui.Container', 'goog.ui.ContainerRenderer'], false); >+goog.addDependency('ui/menubase.js', ['goog.ui.MenuBase'], ['goog.events.EventHandler', 'goog.events.EventType', 'goog.events.KeyHandler', 'goog.ui.Popup'], false); >+goog.addDependency('ui/menubutton.js', ['goog.ui.MenuButton'], ['goog.Timer', 'goog.a11y.aria', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.math.Box', 'goog.math.Rect', 'goog.positioning', 'goog.positioning.Corner', 'goog.positioning.MenuAnchoredPosition', 'goog.positioning.Overflow', 'goog.style', 'goog.ui.Button', 'goog.ui.Component', 'goog.ui.IdGenerator', 'goog.ui.Menu', 'goog.ui.MenuButtonRenderer', 'goog.ui.MenuItem', 'goog.ui.MenuRenderer', 'goog.ui.registry', 'goog.userAgent', 'goog.userAgent.product'], false); >+goog.addDependency('ui/menubutton_test.js', ['goog.ui.MenuButtonTest'], ['goog.Timer', 'goog.a11y.aria', 'goog.a11y.aria.State', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.Event', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.positioning', 'goog.positioning.Corner', 'goog.positioning.MenuAnchoredPosition', 'goog.positioning.Overflow', 'goog.style', 'goog.testing.ExpectedFailures', 'goog.testing.PropertyReplacer', 'goog.testing.events', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.ui.Component', 'goog.ui.Menu', 'goog.ui.MenuButton', 'goog.ui.MenuItem', 'goog.ui.SubMenu', 'goog.userAgent', 'goog.userAgent.product', 'goog.userAgent.product.isVersion'], false); >+goog.addDependency('ui/menubuttonrenderer.js', ['goog.ui.MenuButtonRenderer'], ['goog.dom', 'goog.dom.TagName', 'goog.style', 'goog.ui.CustomButtonRenderer', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.Menu', 'goog.ui.MenuRenderer'], false); >+goog.addDependency('ui/menubuttonrenderer_test.js', ['goog.ui.MenuButtonRendererTest'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.testing.jsunit', 'goog.testing.ui.rendererasserts', 'goog.ui.MenuButton', 'goog.ui.MenuButtonRenderer', 'goog.userAgent'], false); >+goog.addDependency('ui/menuheader.js', ['goog.ui.MenuHeader'], ['goog.ui.Component', 'goog.ui.Control', 'goog.ui.MenuHeaderRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/menuheaderrenderer.js', ['goog.ui.MenuHeaderRenderer'], ['goog.ui.ControlRenderer'], false); >+goog.addDependency('ui/menuitem.js', ['goog.ui.MenuItem'], ['goog.a11y.aria.Role', 'goog.array', 'goog.dom', 'goog.dom.classlist', 'goog.math.Coordinate', 'goog.string', 'goog.ui.Component', 'goog.ui.Control', 'goog.ui.MenuItemRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/menuitem_test.js', ['goog.ui.MenuItemTest'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.array', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events.KeyCodes', 'goog.math.Coordinate', 'goog.testing.events', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.ui.Component', 'goog.ui.MenuItem', 'goog.ui.MenuItemRenderer'], false); >+goog.addDependency('ui/menuitemrenderer.js', ['goog.ui.MenuItemRenderer'], ['goog.a11y.aria.Role', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.ui.Component', 'goog.ui.ControlRenderer'], false); >+goog.addDependency('ui/menuitemrenderer_test.js', ['goog.ui.MenuItemRendererTest'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.dom', 'goog.dom.classlist', 'goog.testing.jsunit', 'goog.testing.ui.rendererasserts', 'goog.ui.Component', 'goog.ui.MenuItem', 'goog.ui.MenuItemRenderer'], false); >+goog.addDependency('ui/menurenderer.js', ['goog.ui.MenuRenderer'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.ui.ContainerRenderer', 'goog.ui.Separator'], false); >+goog.addDependency('ui/menuseparator.js', ['goog.ui.MenuSeparator'], ['goog.ui.MenuSeparatorRenderer', 'goog.ui.Separator', 'goog.ui.registry'], false); >+goog.addDependency('ui/menuseparatorrenderer.js', ['goog.ui.MenuSeparatorRenderer'], ['goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.ui.ControlRenderer'], false); >+goog.addDependency('ui/menuseparatorrenderer_test.js', ['goog.ui.MenuSeparatorRendererTest'], ['goog.dom', 'goog.testing.jsunit', 'goog.ui.MenuSeparator', 'goog.ui.MenuSeparatorRenderer'], false); >+goog.addDependency('ui/mockactivitymonitor.js', ['goog.ui.MockActivityMonitor'], ['goog.events.EventType', 'goog.ui.ActivityMonitor'], false); >+goog.addDependency('ui/mockactivitymonitor_test.js', ['goog.ui.MockActivityMonitorTest'], ['goog.events', 'goog.functions', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.ui.ActivityMonitor', 'goog.ui.MockActivityMonitor'], false); >+goog.addDependency('ui/modalpopup.js', ['goog.ui.ModalPopup'], ['goog.Timer', 'goog.a11y.aria', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.dom.iframe', 'goog.events', 'goog.events.EventType', 'goog.events.FocusHandler', 'goog.fx.Transition', 'goog.string', 'goog.style', 'goog.ui.Component', 'goog.ui.PopupBase', 'goog.userAgent'], false); >+goog.addDependency('ui/modalpopup_test.js', ['goog.ui.ModalPopupTest'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.dispose', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.EventTarget', 'goog.fx.Transition', 'goog.fx.css3', 'goog.string', 'goog.style', 'goog.testing.MockClock', 'goog.testing.jsunit', 'goog.ui.ModalPopup', 'goog.ui.PopupBase'], false); >+goog.addDependency('ui/nativebuttonrenderer.js', ['goog.ui.NativeButtonRenderer'], ['goog.asserts', 'goog.dom.InputType', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events.EventType', 'goog.ui.ButtonRenderer', 'goog.ui.Component'], false); >+goog.addDependency('ui/nativebuttonrenderer_test.js', ['goog.ui.NativeButtonRendererTest'], ['goog.dom', 'goog.dom.classlist', 'goog.events', 'goog.testing.ExpectedFailures', 'goog.testing.events', 'goog.testing.jsunit', 'goog.testing.ui.rendererasserts', 'goog.ui.Button', 'goog.ui.Component', 'goog.ui.NativeButtonRenderer', 'goog.userAgent'], false); >+goog.addDependency('ui/option.js', ['goog.ui.Option'], ['goog.ui.Component', 'goog.ui.MenuItem', 'goog.ui.registry'], false); >+goog.addDependency('ui/palette.js', ['goog.ui.Palette'], ['goog.array', 'goog.dom', 'goog.events', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.math.Size', 'goog.ui.Component', 'goog.ui.Control', 'goog.ui.PaletteRenderer', 'goog.ui.SelectionModel'], false); >+goog.addDependency('ui/palette_test.js', ['goog.ui.PaletteTest'], ['goog.a11y.aria', 'goog.dom', 'goog.events', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyEvent', 'goog.testing.events.Event', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.ui.Component', 'goog.ui.Container', 'goog.ui.Palette'], false); >+goog.addDependency('ui/paletterenderer.js', ['goog.ui.PaletteRenderer'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.NodeIterator', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.iter', 'goog.style', 'goog.ui.ControlRenderer', 'goog.userAgent'], false); >+goog.addDependency('ui/paletterenderer_test.js', ['goog.ui.PaletteRendererTest'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.testing.jsunit', 'goog.ui.Palette', 'goog.ui.PaletteRenderer'], false); >+goog.addDependency('ui/plaintextspellchecker.js', ['goog.ui.PlainTextSpellChecker'], ['goog.Timer', 'goog.a11y.aria', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.spell.SpellCheck', 'goog.style', 'goog.ui.AbstractSpellChecker', 'goog.ui.Component', 'goog.userAgent'], false); >+goog.addDependency('ui/plaintextspellchecker_test.js', ['goog.ui.PlainTextSpellCheckerTest'], ['goog.Timer', 'goog.dom', 'goog.events.KeyCodes', 'goog.spell.SpellCheck', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.PlainTextSpellChecker'], false); >+goog.addDependency('ui/popup.js', ['goog.ui.Popup', 'goog.ui.Popup.AbsolutePosition', 'goog.ui.Popup.AnchoredPosition', 'goog.ui.Popup.AnchoredViewPortPosition', 'goog.ui.Popup.ClientPosition', 'goog.ui.Popup.Overflow', 'goog.ui.Popup.ViewPortClientPosition', 'goog.ui.Popup.ViewPortPosition'], ['goog.math.Box', 'goog.positioning.AbsolutePosition', 'goog.positioning.AnchoredPosition', 'goog.positioning.AnchoredViewportPosition', 'goog.positioning.ClientPosition', 'goog.positioning.Corner', 'goog.positioning.Overflow', 'goog.positioning.ViewportClientPosition', 'goog.positioning.ViewportPosition', 'goog.style', 'goog.ui.PopupBase'], false); >+goog.addDependency('ui/popup_test.js', ['goog.ui.PopupTest'], ['goog.positioning.AnchoredPosition', 'goog.positioning.Corner', 'goog.style', 'goog.testing.jsunit', 'goog.ui.Popup', 'goog.userAgent'], false); >+goog.addDependency('ui/popupbase.js', ['goog.ui.PopupBase', 'goog.ui.PopupBase.EventType', 'goog.ui.PopupBase.Type'], ['goog.Timer', 'goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.fx.Transition', 'goog.style', 'goog.userAgent'], false); >+goog.addDependency('ui/popupbase_test.js', ['goog.ui.PopupBaseTest'], ['goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.fx.Transition', 'goog.fx.css3', 'goog.testing.MockClock', 'goog.testing.events', 'goog.testing.events.Event', 'goog.testing.jsunit', 'goog.ui.PopupBase'], false); >+goog.addDependency('ui/popupcolorpicker.js', ['goog.ui.PopupColorPicker'], ['goog.asserts', 'goog.dom.classlist', 'goog.events.EventType', 'goog.positioning.AnchoredPosition', 'goog.positioning.Corner', 'goog.ui.ColorPicker', 'goog.ui.Component', 'goog.ui.Popup'], false); >+goog.addDependency('ui/popupcolorpicker_test.js', ['goog.ui.PopupColorPickerTest'], ['goog.dom', 'goog.events', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.ColorPicker', 'goog.ui.PopupColorPicker'], false); >+goog.addDependency('ui/popupdatepicker.js', ['goog.ui.PopupDatePicker'], ['goog.events.EventType', 'goog.positioning.AnchoredPosition', 'goog.positioning.Corner', 'goog.positioning.Overflow', 'goog.style', 'goog.ui.Component', 'goog.ui.DatePicker', 'goog.ui.Popup', 'goog.ui.PopupBase'], false); >+goog.addDependency('ui/popupdatepicker_test.js', ['goog.ui.PopupDatePickerTest'], ['goog.events', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.ui.PopupBase', 'goog.ui.PopupDatePicker'], false); >+goog.addDependency('ui/popupmenu.js', ['goog.ui.PopupMenu'], ['goog.events.EventType', 'goog.positioning.AnchoredViewportPosition', 'goog.positioning.Corner', 'goog.positioning.MenuAnchoredPosition', 'goog.positioning.Overflow', 'goog.positioning.ViewportClientPosition', 'goog.structs.Map', 'goog.style', 'goog.ui.Component', 'goog.ui.Menu', 'goog.ui.PopupBase', 'goog.userAgent'], false); >+goog.addDependency('ui/popupmenu_test.js', ['goog.ui.PopupMenuTest'], ['goog.dom', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.math.Box', 'goog.math.Coordinate', 'goog.positioning.Corner', 'goog.style', 'goog.testing.jsunit', 'goog.ui.Menu', 'goog.ui.MenuItem', 'goog.ui.PopupMenu'], false); >+goog.addDependency('ui/progressbar.js', ['goog.ui.ProgressBar', 'goog.ui.ProgressBar.Orientation'], ['goog.a11y.aria', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events', 'goog.events.EventType', 'goog.ui.Component', 'goog.ui.RangeModel', 'goog.userAgent'], false); >+goog.addDependency('ui/prompt.js', ['goog.ui.Prompt'], ['goog.Timer', 'goog.dom', 'goog.dom.InputType', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'goog.functions', 'goog.html.SafeHtml', 'goog.html.legacyconversions', 'goog.ui.Component', 'goog.ui.Dialog', 'goog.userAgent'], false); >+goog.addDependency('ui/prompt_test.js', ['goog.ui.PromptTest'], ['goog.dom.selection', 'goog.events.InputHandler', 'goog.events.KeyCodes', 'goog.functions', 'goog.string', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.BidiInput', 'goog.ui.Dialog', 'goog.ui.Prompt', 'goog.userAgent', 'goog.userAgent.product'], false); >+goog.addDependency('ui/rangemodel.js', ['goog.ui.RangeModel'], ['goog.events.EventTarget', 'goog.ui.Component'], false); >+goog.addDependency('ui/rangemodel_test.js', ['goog.ui.RangeModelTest'], ['goog.testing.jsunit', 'goog.ui.RangeModel'], false); >+goog.addDependency('ui/ratings.js', ['goog.ui.Ratings', 'goog.ui.Ratings.EventType'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events.EventType', 'goog.ui.Component'], false); >+goog.addDependency('ui/registry.js', ['goog.ui.registry'], ['goog.asserts', 'goog.dom.classlist'], false); >+goog.addDependency('ui/registry_test.js', ['goog.ui.registryTest'], ['goog.object', 'goog.testing.jsunit', 'goog.ui.registry'], false); >+goog.addDependency('ui/richtextspellchecker.js', ['goog.ui.RichTextSpellChecker'], ['goog.Timer', 'goog.asserts', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.math.Coordinate', 'goog.spell.SpellCheck', 'goog.string.StringBuffer', 'goog.style', 'goog.ui.AbstractSpellChecker', 'goog.ui.Component', 'goog.ui.PopupMenu'], false); >+goog.addDependency('ui/richtextspellchecker_test.js', ['goog.ui.RichTextSpellCheckerTest'], ['goog.dom.Range', 'goog.dom.classlist', 'goog.events.KeyCodes', 'goog.object', 'goog.spell.SpellCheck', 'goog.testing.MockClock', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.RichTextSpellChecker'], false); >+goog.addDependency('ui/roundedpanel.js', ['goog.ui.BaseRoundedPanel', 'goog.ui.CssRoundedPanel', 'goog.ui.GraphicsRoundedPanel', 'goog.ui.RoundedPanel', 'goog.ui.RoundedPanel.Corner'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.graphics', 'goog.graphics.Path', 'goog.graphics.SolidFill', 'goog.graphics.Stroke', 'goog.math', 'goog.math.Coordinate', 'goog.style', 'goog.ui.Component', 'goog.userAgent'], false); >+goog.addDependency('ui/roundedpanel_test.js', ['goog.ui.RoundedPanelTest'], ['goog.testing.jsunit', 'goog.ui.CssRoundedPanel', 'goog.ui.GraphicsRoundedPanel', 'goog.ui.RoundedPanel', 'goog.userAgent'], false); >+goog.addDependency('ui/roundedtabrenderer.js', ['goog.ui.RoundedTabRenderer'], ['goog.dom', 'goog.dom.TagName', 'goog.ui.Tab', 'goog.ui.TabBar', 'goog.ui.TabRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/scrollfloater.js', ['goog.ui.ScrollFloater', 'goog.ui.ScrollFloater.EventType'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events.EventType', 'goog.style', 'goog.ui.Component', 'goog.userAgent'], false); >+goog.addDependency('ui/scrollfloater_test.js', ['goog.ui.ScrollFloaterTest'], ['goog.dom', 'goog.events', 'goog.style', 'goog.testing.jsunit', 'goog.ui.ScrollFloater'], false); >+goog.addDependency('ui/select.js', ['goog.ui.Select'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.array', 'goog.events.EventType', 'goog.ui.Component', 'goog.ui.IdGenerator', 'goog.ui.MenuButton', 'goog.ui.MenuItem', 'goog.ui.MenuRenderer', 'goog.ui.SelectionModel', 'goog.ui.registry'], false); >+goog.addDependency('ui/select_test.js', ['goog.ui.SelectTest'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.dom', 'goog.events', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.ui.Component', 'goog.ui.CustomButtonRenderer', 'goog.ui.Menu', 'goog.ui.MenuItem', 'goog.ui.Select', 'goog.ui.Separator'], false); >+goog.addDependency('ui/selectionmenubutton.js', ['goog.ui.SelectionMenuButton', 'goog.ui.SelectionMenuButton.SelectionState'], ['goog.dom.InputType', 'goog.dom.TagName', 'goog.events.EventType', 'goog.style', 'goog.ui.Component', 'goog.ui.MenuButton', 'goog.ui.MenuItem', 'goog.ui.registry'], false); >+goog.addDependency('ui/selectionmenubutton_test.js', ['goog.ui.SelectionMenuButtonTest'], ['goog.dom', 'goog.events', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.Component', 'goog.ui.SelectionMenuButton'], false); >+goog.addDependency('ui/selectionmodel.js', ['goog.ui.SelectionModel'], ['goog.array', 'goog.events.EventTarget', 'goog.events.EventType'], false); >+goog.addDependency('ui/selectionmodel_test.js', ['goog.ui.SelectionModelTest'], ['goog.array', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.ui.SelectionModel'], false); >+goog.addDependency('ui/separator.js', ['goog.ui.Separator'], ['goog.a11y.aria', 'goog.asserts', 'goog.ui.Component', 'goog.ui.Control', 'goog.ui.MenuSeparatorRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/serverchart.js', ['goog.ui.ServerChart', 'goog.ui.ServerChart.AxisDisplayType', 'goog.ui.ServerChart.ChartType', 'goog.ui.ServerChart.EncodingType', 'goog.ui.ServerChart.Event', 'goog.ui.ServerChart.LegendPosition', 'goog.ui.ServerChart.MaximumValue', 'goog.ui.ServerChart.MultiAxisAlignment', 'goog.ui.ServerChart.MultiAxisType', 'goog.ui.ServerChart.UriParam', 'goog.ui.ServerChart.UriTooLongEvent'], ['goog.Uri', 'goog.array', 'goog.asserts', 'goog.dom.TagName', 'goog.events.Event', 'goog.string', 'goog.ui.Component'], false); >+goog.addDependency('ui/serverchart_test.js', ['goog.ui.ServerChartTest'], ['goog.Uri', 'goog.events', 'goog.testing.jsunit', 'goog.ui.ServerChart'], false); >+goog.addDependency('ui/slider.js', ['goog.ui.Slider', 'goog.ui.Slider.Orientation'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.dom', 'goog.dom.TagName', 'goog.ui.SliderBase'], false); >+goog.addDependency('ui/sliderbase.js', ['goog.ui.SliderBase', 'goog.ui.SliderBase.AnimationFactory', 'goog.ui.SliderBase.Orientation'], ['goog.Timer', 'goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.events.MouseWheelHandler', 'goog.functions', 'goog.fx.AnimationParallelQueue', 'goog.fx.Dragger', 'goog.fx.Transition', 'goog.fx.dom.ResizeHeight', 'goog.fx.dom.ResizeWidth', 'goog.fx.dom.Slide', 'goog.math', 'goog.math.Coordinate', 'goog.style', 'goog.style.bidi', 'goog.ui.Component', 'goog.ui.RangeModel'], false); >+goog.addDependency('ui/sliderbase_test.js', ['goog.ui.SliderBaseTest'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.fx.Animation', 'goog.math.Coordinate', 'goog.style', 'goog.style.bidi', 'goog.testing.MockClock', 'goog.testing.MockControl', 'goog.testing.events', 'goog.testing.jsunit', 'goog.testing.mockmatchers', 'goog.testing.recordFunction', 'goog.ui.Component', 'goog.ui.SliderBase', 'goog.userAgent'], false); >+goog.addDependency('ui/splitbehavior.js', ['goog.ui.SplitBehavior', 'goog.ui.SplitBehavior.DefaultHandlers'], ['goog.Disposable', 'goog.asserts', 'goog.dispose', 'goog.dom.NodeType', 'goog.dom.classlist', 'goog.events.EventHandler', 'goog.ui.ButtonSide', 'goog.ui.Component', 'goog.ui.decorate', 'goog.ui.registry'], false); >+goog.addDependency('ui/splitbehavior_test.js', ['goog.ui.SplitBehaviorTest'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.Event', 'goog.testing.jsunit', 'goog.ui.Component', 'goog.ui.CustomButton', 'goog.ui.Menu', 'goog.ui.MenuButton', 'goog.ui.MenuItem', 'goog.ui.SplitBehavior', 'goog.ui.decorate'], false); >+goog.addDependency('ui/splitpane.js', ['goog.ui.SplitPane', 'goog.ui.SplitPane.Orientation'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events.EventType', 'goog.fx.Dragger', 'goog.math.Rect', 'goog.math.Size', 'goog.style', 'goog.ui.Component', 'goog.userAgent'], false); >+goog.addDependency('ui/splitpane_test.js', ['goog.ui.SplitPaneTest'], ['goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events', 'goog.math.Size', 'goog.style', 'goog.testing.events', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.ui.Component', 'goog.ui.SplitPane'], false); >+goog.addDependency('ui/style/app/buttonrenderer.js', ['goog.ui.style.app.ButtonRenderer'], ['goog.dom.TagName', 'goog.dom.classlist', 'goog.ui.Button', 'goog.ui.CustomButtonRenderer', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.registry'], false); >+goog.addDependency('ui/style/app/buttonrenderer_test.js', ['goog.ui.style.app.ButtonRendererTest'], ['goog.dom', 'goog.testing.jsunit', 'goog.testing.ui.style', 'goog.ui.Button', 'goog.ui.Component', 'goog.ui.style.app.ButtonRenderer', 'goog.userAgent'], false); >+goog.addDependency('ui/style/app/menubuttonrenderer.js', ['goog.ui.style.app.MenuButtonRenderer'], ['goog.a11y.aria.Role', 'goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.style', 'goog.ui.Menu', 'goog.ui.MenuRenderer', 'goog.ui.style.app.ButtonRenderer'], false); >+goog.addDependency('ui/style/app/menubuttonrenderer_test.js', ['goog.ui.style.app.MenuButtonRendererTest'], ['goog.dom', 'goog.testing.jsunit', 'goog.testing.ui.style', 'goog.ui.Component', 'goog.ui.MenuButton', 'goog.ui.style.app.MenuButtonRenderer'], false); >+goog.addDependency('ui/style/app/primaryactionbuttonrenderer.js', ['goog.ui.style.app.PrimaryActionButtonRenderer'], ['goog.ui.Button', 'goog.ui.registry', 'goog.ui.style.app.ButtonRenderer'], false); >+goog.addDependency('ui/style/app/primaryactionbuttonrenderer_test.js', ['goog.ui.style.app.PrimaryActionButtonRendererTest'], ['goog.dom', 'goog.testing.jsunit', 'goog.testing.ui.style', 'goog.ui.Button', 'goog.ui.Component', 'goog.ui.style.app.PrimaryActionButtonRenderer'], false); >+goog.addDependency('ui/submenu.js', ['goog.ui.SubMenu'], ['goog.Timer', 'goog.asserts', 'goog.dom', 'goog.dom.classlist', 'goog.events.KeyCodes', 'goog.positioning.AnchoredViewportPosition', 'goog.positioning.Corner', 'goog.style', 'goog.ui.Component', 'goog.ui.Menu', 'goog.ui.MenuItem', 'goog.ui.SubMenuRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/submenu_test.js', ['goog.ui.SubMenuTest'], ['goog.dom', 'goog.dom.classlist', 'goog.events', 'goog.events.Event', 'goog.events.KeyCodes', 'goog.functions', 'goog.positioning', 'goog.positioning.Overflow', 'goog.style', 'goog.testing.MockClock', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.Component', 'goog.ui.Menu', 'goog.ui.MenuItem', 'goog.ui.SubMenu', 'goog.ui.SubMenuRenderer'], false); >+goog.addDependency('ui/submenurenderer.js', ['goog.ui.SubMenuRenderer'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.style', 'goog.ui.Menu', 'goog.ui.MenuItemRenderer'], false); >+goog.addDependency('ui/tab.js', ['goog.ui.Tab'], ['goog.ui.Component', 'goog.ui.Control', 'goog.ui.TabRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/tab_test.js', ['goog.ui.TabTest'], ['goog.dom', 'goog.testing.jsunit', 'goog.ui.Component', 'goog.ui.Tab', 'goog.ui.TabRenderer'], false); >+goog.addDependency('ui/tabbar.js', ['goog.ui.TabBar', 'goog.ui.TabBar.Location'], ['goog.ui.Component.EventType', 'goog.ui.Container', 'goog.ui.Container.Orientation', 'goog.ui.Tab', 'goog.ui.TabBarRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/tabbar_test.js', ['goog.ui.TabBarTest'], ['goog.dom', 'goog.events', 'goog.events.Event', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.testing.jsunit', 'goog.ui.Component', 'goog.ui.Container', 'goog.ui.Tab', 'goog.ui.TabBar', 'goog.ui.TabBarRenderer'], false); >+goog.addDependency('ui/tabbarrenderer.js', ['goog.ui.TabBarRenderer'], ['goog.a11y.aria.Role', 'goog.object', 'goog.ui.ContainerRenderer'], false); >+goog.addDependency('ui/tabbarrenderer_test.js', ['goog.ui.TabBarRendererTest'], ['goog.a11y.aria.Role', 'goog.dom', 'goog.dom.classlist', 'goog.testing.jsunit', 'goog.testing.ui.rendererasserts', 'goog.ui.Container', 'goog.ui.TabBar', 'goog.ui.TabBarRenderer'], false); >+goog.addDependency('ui/tablesorter.js', ['goog.ui.TableSorter', 'goog.ui.TableSorter.EventType'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events.EventType', 'goog.functions', 'goog.ui.Component'], false); >+goog.addDependency('ui/tablesorter_test.js', ['goog.ui.TableSorterTest'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.TableSorter'], false); >+goog.addDependency('ui/tabpane.js', ['goog.ui.TabPane', 'goog.ui.TabPane.Events', 'goog.ui.TabPane.TabLocation', 'goog.ui.TabPane.TabPage', 'goog.ui.TabPaneEvent'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events', 'goog.events.Event', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.style'], false); >+goog.addDependency('ui/tabpane_test.js', ['goog.ui.TabPaneTest'], ['goog.dom', 'goog.testing.jsunit', 'goog.ui.TabPane'], false); >+goog.addDependency('ui/tabrenderer.js', ['goog.ui.TabRenderer'], ['goog.a11y.aria.Role', 'goog.ui.Component', 'goog.ui.ControlRenderer'], false); >+goog.addDependency('ui/tabrenderer_test.js', ['goog.ui.TabRendererTest'], ['goog.a11y.aria.Role', 'goog.dom', 'goog.dom.classlist', 'goog.testing.dom', 'goog.testing.jsunit', 'goog.testing.ui.rendererasserts', 'goog.ui.Tab', 'goog.ui.TabRenderer'], false); >+goog.addDependency('ui/textarea.js', ['goog.ui.Textarea', 'goog.ui.Textarea.EventType'], ['goog.asserts', 'goog.dom', 'goog.dom.classlist', 'goog.events.EventType', 'goog.style', 'goog.ui.Control', 'goog.ui.TextareaRenderer', 'goog.userAgent'], false); >+goog.addDependency('ui/textarea_test.js', ['goog.ui.TextareaTest'], ['goog.dom', 'goog.dom.classlist', 'goog.events', 'goog.style', 'goog.testing.ExpectedFailures', 'goog.testing.events.EventObserver', 'goog.testing.jsunit', 'goog.ui.Textarea', 'goog.ui.TextareaRenderer', 'goog.userAgent', 'goog.userAgent.product'], false); >+goog.addDependency('ui/textarearenderer.js', ['goog.ui.TextareaRenderer'], ['goog.dom.TagName', 'goog.ui.Component', 'goog.ui.ControlRenderer'], false); >+goog.addDependency('ui/togglebutton.js', ['goog.ui.ToggleButton'], ['goog.ui.Button', 'goog.ui.Component', 'goog.ui.CustomButtonRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/toolbar.js', ['goog.ui.Toolbar'], ['goog.ui.Container', 'goog.ui.ToolbarRenderer'], false); >+goog.addDependency('ui/toolbar_test.js', ['goog.ui.ToolbarTest'], ['goog.a11y.aria', 'goog.dom', 'goog.events.EventType', 'goog.testing.events', 'goog.testing.events.Event', 'goog.testing.jsunit', 'goog.ui.Toolbar', 'goog.ui.ToolbarMenuButton'], false); >+goog.addDependency('ui/toolbarbutton.js', ['goog.ui.ToolbarButton'], ['goog.ui.Button', 'goog.ui.ToolbarButtonRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/toolbarbuttonrenderer.js', ['goog.ui.ToolbarButtonRenderer'], ['goog.ui.CustomButtonRenderer'], false); >+goog.addDependency('ui/toolbarcolormenubutton.js', ['goog.ui.ToolbarColorMenuButton'], ['goog.ui.ColorMenuButton', 'goog.ui.ToolbarColorMenuButtonRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/toolbarcolormenubuttonrenderer.js', ['goog.ui.ToolbarColorMenuButtonRenderer'], ['goog.asserts', 'goog.dom.classlist', 'goog.ui.ColorMenuButtonRenderer', 'goog.ui.MenuButtonRenderer', 'goog.ui.ToolbarMenuButtonRenderer'], false); >+goog.addDependency('ui/toolbarcolormenubuttonrenderer_test.js', ['goog.ui.ToolbarColorMenuButtonRendererTest'], ['goog.dom', 'goog.testing.jsunit', 'goog.testing.ui.RendererHarness', 'goog.testing.ui.rendererasserts', 'goog.ui.ToolbarColorMenuButton', 'goog.ui.ToolbarColorMenuButtonRenderer'], false); >+goog.addDependency('ui/toolbarmenubutton.js', ['goog.ui.ToolbarMenuButton'], ['goog.ui.MenuButton', 'goog.ui.ToolbarMenuButtonRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/toolbarmenubuttonrenderer.js', ['goog.ui.ToolbarMenuButtonRenderer'], ['goog.ui.MenuButtonRenderer'], false); >+goog.addDependency('ui/toolbarrenderer.js', ['goog.ui.ToolbarRenderer'], ['goog.a11y.aria.Role', 'goog.dom.TagName', 'goog.ui.Container', 'goog.ui.ContainerRenderer', 'goog.ui.Separator', 'goog.ui.ToolbarSeparatorRenderer'], false); >+goog.addDependency('ui/toolbarselect.js', ['goog.ui.ToolbarSelect'], ['goog.ui.Select', 'goog.ui.ToolbarMenuButtonRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/toolbarseparator.js', ['goog.ui.ToolbarSeparator'], ['goog.ui.Separator', 'goog.ui.ToolbarSeparatorRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/toolbarseparatorrenderer.js', ['goog.ui.ToolbarSeparatorRenderer'], ['goog.asserts', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.MenuSeparatorRenderer'], false); >+goog.addDependency('ui/toolbarseparatorrenderer_test.js', ['goog.ui.ToolbarSeparatorRendererTest'], ['goog.dom', 'goog.dom.classlist', 'goog.testing.jsunit', 'goog.ui.Component', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.ToolbarSeparator', 'goog.ui.ToolbarSeparatorRenderer'], false); >+goog.addDependency('ui/toolbartogglebutton.js', ['goog.ui.ToolbarToggleButton'], ['goog.ui.ToggleButton', 'goog.ui.ToolbarButtonRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/tooltip.js', ['goog.ui.Tooltip', 'goog.ui.Tooltip.CursorTooltipPosition', 'goog.ui.Tooltip.ElementTooltipPosition', 'goog.ui.Tooltip.State'], ['goog.Timer', 'goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.dom.safe', 'goog.events', 'goog.events.EventType', 'goog.html.legacyconversions', 'goog.math.Box', 'goog.math.Coordinate', 'goog.positioning', 'goog.positioning.AnchoredPosition', 'goog.positioning.Corner', 'goog.positioning.Overflow', 'goog.positioning.OverflowStatus', 'goog.positioning.ViewportPosition', 'goog.structs.Set', 'goog.style', 'goog.ui.Popup', 'goog.ui.PopupBase'], false); >+goog.addDependency('ui/tooltip_test.js', ['goog.ui.TooltipTest'], ['goog.dom', 'goog.dom.TagName', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.html.testing', 'goog.math.Coordinate', 'goog.positioning.AbsolutePosition', 'goog.style', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.TestQueue', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.PopupBase', 'goog.ui.Tooltip', 'goog.userAgent'], false); >+goog.addDependency('ui/tree/basenode.js', ['goog.ui.tree.BaseNode', 'goog.ui.tree.BaseNode.EventType'], ['goog.Timer', 'goog.a11y.aria', 'goog.asserts', 'goog.dom.safe', 'goog.events.Event', 'goog.events.KeyCodes', 'goog.html.SafeHtml', 'goog.html.SafeStyle', 'goog.html.legacyconversions', 'goog.string', 'goog.string.StringBuffer', 'goog.style', 'goog.ui.Component'], false); >+goog.addDependency('ui/tree/basenode_test.js', ['goog.ui.tree.BaseNodeTest'], ['goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.html.legacyconversions', 'goog.html.testing', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.ui.Component', 'goog.ui.tree.BaseNode', 'goog.ui.tree.TreeControl', 'goog.ui.tree.TreeNode'], false); >+goog.addDependency('ui/tree/treecontrol.js', ['goog.ui.tree.TreeControl'], ['goog.a11y.aria', 'goog.asserts', 'goog.dom.classlist', 'goog.events.EventType', 'goog.events.FocusHandler', 'goog.events.KeyHandler', 'goog.html.SafeHtml', 'goog.log', 'goog.ui.tree.BaseNode', 'goog.ui.tree.TreeNode', 'goog.ui.tree.TypeAhead', 'goog.userAgent'], false); >+goog.addDependency('ui/tree/treecontrol_test.js', ['goog.ui.tree.TreeControlTest'], ['goog.dom', 'goog.testing.jsunit', 'goog.ui.tree.TreeControl'], false); >+goog.addDependency('ui/tree/treenode.js', ['goog.ui.tree.TreeNode'], ['goog.ui.tree.BaseNode'], false); >+goog.addDependency('ui/tree/typeahead.js', ['goog.ui.tree.TypeAhead', 'goog.ui.tree.TypeAhead.Offset'], ['goog.array', 'goog.events.KeyCodes', 'goog.string', 'goog.structs.Trie'], false); >+goog.addDependency('ui/tree/typeahead_test.js', ['goog.ui.tree.TypeAheadTest'], ['goog.dom', 'goog.events.KeyCodes', 'goog.testing.jsunit', 'goog.ui.tree.TreeControl', 'goog.ui.tree.TypeAhead'], false); >+goog.addDependency('ui/tristatemenuitem.js', ['goog.ui.TriStateMenuItem', 'goog.ui.TriStateMenuItem.State'], ['goog.dom.classlist', 'goog.ui.Component', 'goog.ui.MenuItem', 'goog.ui.TriStateMenuItemRenderer', 'goog.ui.registry'], false); >+goog.addDependency('ui/tristatemenuitemrenderer.js', ['goog.ui.TriStateMenuItemRenderer'], ['goog.asserts', 'goog.dom.classlist', 'goog.ui.MenuItemRenderer'], false); >+goog.addDependency('ui/twothumbslider.js', ['goog.ui.TwoThumbSlider'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.dom', 'goog.dom.TagName', 'goog.ui.SliderBase'], false); >+goog.addDependency('ui/twothumbslider_test.js', ['goog.ui.TwoThumbSliderTest'], ['goog.testing.jsunit', 'goog.ui.SliderBase', 'goog.ui.TwoThumbSlider'], false); >+goog.addDependency('ui/zippy.js', ['goog.ui.Zippy', 'goog.ui.Zippy.Events', 'goog.ui.ZippyEvent'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.dom', 'goog.dom.classlist', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.style'], false); >+goog.addDependency('ui/zippy_test.js', ['goog.ui.ZippyTest'], ['goog.a11y.aria', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classlist', 'goog.events', 'goog.object', 'goog.testing.events', 'goog.testing.jsunit', 'goog.ui.Zippy'], false); >+goog.addDependency('uri/uri.js', ['goog.Uri', 'goog.Uri.QueryData'], ['goog.array', 'goog.string', 'goog.structs', 'goog.structs.Map', 'goog.uri.utils', 'goog.uri.utils.ComponentIndex', 'goog.uri.utils.StandardQueryParam'], false); >+goog.addDependency('uri/uri_test.js', ['goog.UriTest'], ['goog.Uri', 'goog.testing.jsunit'], false); >+goog.addDependency('uri/utils.js', ['goog.uri.utils', 'goog.uri.utils.ComponentIndex', 'goog.uri.utils.QueryArray', 'goog.uri.utils.QueryValue', 'goog.uri.utils.StandardQueryParam'], ['goog.asserts', 'goog.string', 'goog.userAgent'], false); >+goog.addDependency('uri/utils_test.js', ['goog.uri.utilsTest'], ['goog.functions', 'goog.string', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.uri.utils'], false); >+goog.addDependency('useragent/adobereader.js', ['goog.userAgent.adobeReader'], ['goog.string', 'goog.userAgent'], false); >+goog.addDependency('useragent/adobereader_test.js', ['goog.userAgent.adobeReaderTest'], ['goog.testing.jsunit', 'goog.userAgent.adobeReader'], false); >+goog.addDependency('useragent/flash.js', ['goog.userAgent.flash'], ['goog.string'], false); >+goog.addDependency('useragent/flash_test.js', ['goog.userAgent.flashTest'], ['goog.testing.jsunit', 'goog.userAgent.flash'], false); >+goog.addDependency('useragent/iphoto.js', ['goog.userAgent.iphoto'], ['goog.string', 'goog.userAgent'], false); >+goog.addDependency('useragent/jscript.js', ['goog.userAgent.jscript'], ['goog.string'], false); >+goog.addDependency('useragent/jscript_test.js', ['goog.userAgent.jscriptTest'], ['goog.testing.jsunit', 'goog.userAgent.jscript'], false); >+goog.addDependency('useragent/keyboard.js', ['goog.userAgent.keyboard'], ['goog.labs.userAgent.platform'], false); >+goog.addDependency('useragent/keyboard_test.js', ['goog.userAgent.keyboardTest'], ['goog.labs.userAgent.testAgents', 'goog.labs.userAgent.util', 'goog.testing.MockUserAgent', 'goog.testing.jsunit', 'goog.userAgent.keyboard', 'goog.userAgentTestUtil'], false); >+goog.addDependency('useragent/platform.js', ['goog.userAgent.platform'], ['goog.string', 'goog.userAgent'], false); >+goog.addDependency('useragent/platform_test.js', ['goog.userAgent.platformTest'], ['goog.testing.MockUserAgent', 'goog.testing.jsunit', 'goog.userAgent', 'goog.userAgent.platform', 'goog.userAgentTestUtil'], false); >+goog.addDependency('useragent/product.js', ['goog.userAgent.product'], ['goog.labs.userAgent.browser', 'goog.labs.userAgent.platform', 'goog.userAgent'], false); >+goog.addDependency('useragent/product_isversion.js', ['goog.userAgent.product.isVersion'], ['goog.labs.userAgent.platform', 'goog.string', 'goog.userAgent', 'goog.userAgent.product'], false); >+goog.addDependency('useragent/product_test.js', ['goog.userAgent.productTest'], ['goog.array', 'goog.labs.userAgent.testAgents', 'goog.labs.userAgent.util', 'goog.testing.MockUserAgent', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.userAgent', 'goog.userAgent.product', 'goog.userAgent.product.isVersion', 'goog.userAgentTestUtil'], false); >+goog.addDependency('useragent/useragent.js', ['goog.userAgent'], ['goog.labs.userAgent.browser', 'goog.labs.userAgent.engine', 'goog.labs.userAgent.platform', 'goog.labs.userAgent.util', 'goog.string'], false); >+goog.addDependency('useragent/useragent_quirks_test.js', ['goog.userAgentQuirksTest'], ['goog.testing.jsunit', 'goog.userAgent'], false); >+goog.addDependency('useragent/useragent_test.js', ['goog.userAgentTest'], ['goog.array', 'goog.labs.userAgent.platform', 'goog.labs.userAgent.testAgents', 'goog.labs.userAgent.util', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.userAgent', 'goog.userAgentTestUtil'], false); >+goog.addDependency('useragent/useragenttestutil.js', ['goog.userAgentTestUtil', 'goog.userAgentTestUtil.UserAgents'], ['goog.labs.userAgent.browser', 'goog.labs.userAgent.engine', 'goog.labs.userAgent.platform', 'goog.userAgent', 'goog.userAgent.keyboard', 'goog.userAgent.platform', 'goog.userAgent.product', 'goog.userAgent.product.isVersion'], false); >+goog.addDependency('vec/float32array.js', ['goog.vec.Float32Array'], [], false); >+goog.addDependency('vec/float64array.js', ['goog.vec.Float64Array'], [], false); >+goog.addDependency('vec/mat3.js', ['goog.vec.Mat3'], ['goog.vec'], false); >+goog.addDependency('vec/mat3d.js', ['goog.vec.mat3d', 'goog.vec.mat3d.Type'], ['goog.vec'], false); >+goog.addDependency('vec/mat3f.js', ['goog.vec.mat3f', 'goog.vec.mat3f.Type'], ['goog.vec'], false); >+goog.addDependency('vec/mat4.js', ['goog.vec.Mat4'], ['goog.vec', 'goog.vec.Vec3', 'goog.vec.Vec4'], false); >+goog.addDependency('vec/mat4d.js', ['goog.vec.mat4d', 'goog.vec.mat4d.Type'], ['goog.vec', 'goog.vec.vec3d', 'goog.vec.vec4d'], false); >+goog.addDependency('vec/mat4f.js', ['goog.vec.mat4f', 'goog.vec.mat4f.Type'], ['goog.vec', 'goog.vec.vec3f', 'goog.vec.vec4f'], false); >+goog.addDependency('vec/matrix3.js', ['goog.vec.Matrix3'], [], false); >+goog.addDependency('vec/matrix4.js', ['goog.vec.Matrix4'], ['goog.vec', 'goog.vec.Vec3', 'goog.vec.Vec4'], false); >+goog.addDependency('vec/quaternion.js', ['goog.vec.Quaternion'], ['goog.vec', 'goog.vec.Vec3', 'goog.vec.Vec4'], false); >+goog.addDependency('vec/ray.js', ['goog.vec.Ray'], ['goog.vec.Vec3'], false); >+goog.addDependency('vec/vec.js', ['goog.vec', 'goog.vec.AnyType', 'goog.vec.ArrayType', 'goog.vec.Float32', 'goog.vec.Float64', 'goog.vec.Number'], ['goog.vec.Float32Array', 'goog.vec.Float64Array'], false); >+goog.addDependency('vec/vec2.js', ['goog.vec.Vec2'], ['goog.vec'], false); >+goog.addDependency('vec/vec2d.js', ['goog.vec.vec2d', 'goog.vec.vec2d.Type'], ['goog.vec'], false); >+goog.addDependency('vec/vec2f.js', ['goog.vec.vec2f', 'goog.vec.vec2f.Type'], ['goog.vec'], false); >+goog.addDependency('vec/vec3.js', ['goog.vec.Vec3'], ['goog.vec'], false); >+goog.addDependency('vec/vec3d.js', ['goog.vec.vec3d', 'goog.vec.vec3d.Type'], ['goog.vec'], false); >+goog.addDependency('vec/vec3f.js', ['goog.vec.vec3f', 'goog.vec.vec3f.Type'], ['goog.vec'], false); >+goog.addDependency('vec/vec4.js', ['goog.vec.Vec4'], ['goog.vec'], false); >+goog.addDependency('vec/vec4d.js', ['goog.vec.vec4d', 'goog.vec.vec4d.Type'], ['goog.vec'], false); >+goog.addDependency('vec/vec4f.js', ['goog.vec.vec4f', 'goog.vec.vec4f.Type'], ['goog.vec'], false); >+goog.addDependency('webgl/webgl.js', ['goog.webgl'], [], false); >+goog.addDependency('window/window.js', ['goog.window'], ['goog.dom.TagName', 'goog.labs.userAgent.platform', 'goog.string', 'goog.userAgent'], false); >+goog.addDependency('window/window_test.js', ['goog.windowTest'], ['goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.functions', 'goog.labs.userAgent.platform', 'goog.string', 'goog.testing.AsyncTestCase', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit', 'goog.userAgent', 'goog.window'], false); >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/00_readme.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/00_readme.txt >new file mode 100644 >index 00000000000..a04eaa37b33 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/00_readme.txt >@@ -0,0 +1,13 @@ >+This file "00_test_list.txt" lists which files the test harness should run. >+ >+If you add new tests you can update it with >+ >+on windows >+ >+ dir /b *.html >00_test_list.txt >+ >+on OSX / Linux >+ >+ ls -1 *.html >00_test_list.txt >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/00_test_list.txt >new file mode 100644 >index 00000000000..96a88cac2ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/00_test_list.txt >@@ -0,0 +1,19 @@ >+attribs/00_test_list.txt >+buffers/00_test_list.txt >+canvas/00_test_list.txt >+context/00_test_list.txt >+extensions/00_test_list.txt >+glsl/00_test_list.txt >+limits/00_test_list.txt >+misc/00_test_list.txt >+--min-version 1.0.2 ogles/00_test_list.txt >+--min-version 1.0.4 offscreencanvas/00_test_list.txt >+programs/00_test_list.txt >+reading/00_test_list.txt >+renderbuffers/00_test_list.txt >+rendering/00_test_list.txt >+state/00_test_list.txt >+textures/00_test_list.txt >+typedarrays/00_test_list.txt >+uniforms/00_test_list.txt >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/00_test_list.txt >new file mode 100644 >index 00000000000..362d6c0fd22 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/00_test_list.txt >@@ -0,0 +1,13 @@ >+--min-version 1.0.3 gl-bindAttribLocation-aliasing.html >+--min-version 1.0.3 gl-bindAttribLocation-matrix.html >+--min-version 1.0.4 gl-bindAttribLocation-nonexistent-attribute.html >+--min-version 1.0.4 gl-bindAttribLocation-repeated.html >+--min-version 1.0.2 gl-disabled-vertex-attrib.html >+gl-enable-vertex-attrib.html >+--min-version 1.0.3 gl-matrix-attributes.html >+--max-version 1.9.9 gl-vertex-attrib.html >+gl-vertexattribpointer.html >+gl-vertexattribpointer-offsets.html >+--min-version 1.0.2 gl-vertex-attrib-render.html >+gl-vertex-attrib-zero-issues.html >+--min-version 1.0.4 gl-vertex-attrib-unconsumed-out-of-bounds.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-aliasing.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-aliasing.html >new file mode 100644 >index 00000000000..ddc3f43db15 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-aliasing.html >@@ -0,0 +1,61 @@ >+<!-- >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/gl-bindattriblocation-aliasing.js"></script> >+<title>bindAttribLocation with aliasing</title> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" width="8" height="8" style="width: 8px; height: 8px;"></canvas> >+<script id="vertexShader" type="text/something-not-javascript"> >+precision mediump float; >+attribute $(type_1) a_1; >+attribute $(type_2) a_2; >+void main() { >+ gl_Position = $(gl_Position_1) + $(gl_Position_2); >+} >+</script> >+<script> >+"use strict"; >+description("This test verifies combinations of valid, active attribute types cannot be bound to the same location with bindAttribLocation."); >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas, {antialias: false}); >+var glFragmentShader = wtu.loadShader(gl, wtu.simpleColorFragmentShader, gl.FRAGMENT_SHADER); >+ >+runBindAttribLocationAliasingTest(wtu, gl, glFragmentShader, wtu.getScript('vertexShader')); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-matrix.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-matrix.html >new file mode 100644 >index 00000000000..846730feccc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-matrix.html >@@ -0,0 +1,119 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<title>WebGL bindAttribLocation with Matrix Attributes Conformance Test</title> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" width="8" height="8" style="width: 8px; height: 8px;"></canvas> >+<script> >+"use strict"; >+description("This test verifies that vectors placed via bindAttribLocation right after matricies will fail if there is insufficient room for the matrix."); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas, {antialias: false}); >+ >+// Make sure we have room for at least a mat4. >+var maxAttributes = gl.getParameter(gl.MAX_VERTEX_ATTRIBS); >+debug('MAX_VERTEX_ATTRIBUTES is ' + maxAttributes); >+shouldBeGreaterThanOrEqual('maxAttributes', '4'); >+ >+var glFragmentShader = wtu.loadShader(gl, wtu.simpleColorFragmentShader, gl.FRAGMENT_SHADER); >+ >+// Given a matrix dimension, load a vertex shader with a matrix of that dimension >+// and a vector. Ensure that both the vector and matrix are active attributes. >+// Return the compiled vertex shader. >+function loadVertexShader(numMatrixDimensions) { >+ var strVertexShader = >+ 'attribute mat' + numMatrixDimensions + ' matrix;\n' + >+ 'attribute vec' + numMatrixDimensions + ' vector;\n' + >+ 'void main(void) { gl_Position = vec4(vector*matrix'; >+ // Ensure the vec4 has the correct number of dimensions in order to be assignable >+ // to gl_Position. >+ for (var ii = numMatrixDimensions; ii < 4; ++ii) { >+ strVertexShader += ",0.0"; >+ } >+ strVertexShader += ");}\n"; >+ return wtu.loadShader(gl, strVertexShader, gl.VERTEX_SHADER); >+} >+ >+// Given a vertex shader, matrix location and vector location, create and link >+// a program with glFragmentShader and a vertex shader returned by loadVertexShader >+// attached. Bind the matrix to matrixLocation and the vector to vectorLocation. >+// Return whether the link was successful. >+function createAndLinkProgram(glVertexShader, matrixLocation, vectorLocation) { >+ var glProgram = gl.createProgram(); >+ gl.bindAttribLocation(glProgram, matrixLocation, 'matrix'); >+ gl.bindAttribLocation(glProgram, vectorLocation, 'vector'); >+ gl.attachShader(glProgram, glVertexShader); >+ gl.attachShader(glProgram, glFragmentShader); >+ gl.linkProgram(glProgram); >+ return gl.getProgramParameter(glProgram, gl.LINK_STATUS); >+} >+ >+// For each matrix dimension (mat2, mat3 and mat4) >+for (var mm = 2; mm <= 4; ++mm) { >+ debug('Testing ' + mm + ' dimensional matrices'); >+ var glVertexShader = loadVertexShader(mm); >+ // Per the WebGL spec: "LinkProgram will fail if the attribute bindings assigned >+ // by bindAttribLocation do not leave enough space to assign a location for an >+ // active matrix attribute which requires multiple contiguous generic attributes." >+ // We will test this by placing the vector after the matrix attribute such that there >+ // is not enough room for the matrix. Vertify the link operation fails. >+ >+ // Run the test for each available attribute slot. Go to maxAttributes-mm to leave enough room >+ // for the matrix itself. Leave another slot open for the vector following the matrix. >+ for (var pp = 0; pp <= maxAttributes - mm - 1; ++pp) { >+ // For each matrix dimension, bind the vector right after the matrix such that we leave >+ // insufficient room for the matrix. Verify doing this will fail the link operation. >+ for (var ll = 0; ll < mm; ++ll) { >+ var vectorLocation = pp + ll; >+ assertMsg(!createAndLinkProgram(glVertexShader, /*matrixLocation*/pp, vectorLocation), >+ "Matrix with location " + pp + " and vector with location " + vectorLocation + " should not link."); >+ } >+ // Ensure that once we have left enough room for the matrix, the program links successfully. >+ var vectorLocation = pp + ll; >+ assertMsg(createAndLinkProgram(glVertexShader, /*matrixLocation*/pp, vectorLocation), >+ "Matrix with location " + pp + " and vector with location " + vectorLocation + " should link."); >+ debug(''); >+ } >+ debug(''); >+} >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-nonexistent-attribute.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-nonexistent-attribute.html >new file mode 100644 >index 00000000000..55d3d1ae1bb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-nonexistent-attribute.html >@@ -0,0 +1,101 @@ >+<!-- >+/* >+** Copyright (c) 2017 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<title>bindAttribLocation with nonexistent attribute name</title> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" width="8" height="8"></canvas> >+<script id="vertexShader" type="text/something-not-javascript"> >+precision highp float; >+attribute vec4 attr; >+void main() { >+ gl_Position = vec4(attr); >+} >+</script> >+<script> >+"use strict"; >+description("This test verifies that calling bindAttribLocation with a non-existent attribute location is fine."); >+ >+// OpenGL ES 2.0.25 section 2.10 page 34. >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas); >+var fragmentShader = wtu.loadShader(gl, wtu.simpleColorFragmentShader, gl.FRAGMENT_SHADER); >+var vertexShader = wtu.loadShaderFromScript(gl, 'vertexShader', gl.VERTEX_SHADER); >+assertMsg(vertexShader != null, "Vertex shader compiled successfully."); >+ >+var checkAttribLocation = function(program, expectedLocation) { >+ var location = gl.getAttribLocation(program, 'attr'); >+ if (location != expectedLocation) { >+ testFailed('Unexpected location for attr: ' + location); >+ } else { >+ testPassed('Location of attr is: ' + location); >+ } >+} >+ >+var testProgramNonExistentAttributeBound = function() { >+ var program = gl.createProgram(); >+ gl.bindAttribLocation(program, 0, 'attr'); >+ gl.bindAttribLocation(program, 1, 'bogus_attr'); >+ gl.attachShader(program, vertexShader); >+ gl.attachShader(program, fragmentShader); >+ gl.linkProgram(program); >+ var linkStatus = gl.getProgramParameter(program, gl.LINK_STATUS); >+ expectTrue(linkStatus, "Link should succeed even if a non-existent attribute is bound."); >+ if (linkStatus) { >+ checkAttribLocation(program, 0); >+ } >+}; >+var testProgramNonExistentAttributeOverlap = function() { >+ var program = gl.createProgram(); >+ gl.bindAttribLocation(program, 1, 'attr'); >+ gl.bindAttribLocation(program, 1, 'bogus_attr'); >+ gl.attachShader(program, vertexShader); >+ gl.attachShader(program, fragmentShader); >+ gl.linkProgram(program); >+ var linkStatus = gl.getProgramParameter(program, gl.LINK_STATUS); >+ expectTrue(linkStatus, "Link should succeed even if a non-existent attribute is bound to the same location as an attribute that's present in the shader text."); >+ if (linkStatus) { >+ checkAttribLocation(program, 1); >+ } >+}; >+ >+testProgramNonExistentAttributeBound(); >+testProgramNonExistentAttributeOverlap(); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-repeated.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-repeated.html >new file mode 100644 >index 00000000000..ee98fb7b096 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-repeated.html >@@ -0,0 +1,89 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Repeated BindAttribLocation Test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="50" height="50"> >+</canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+ attribute vec4 vPosition; >+ void main() >+ { >+ gl_Position = vPosition; >+ } >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+ void main() >+ { >+ gl_FragColor = vec4(0.0,1.0,0.0,1.0); >+ } >+</script> >+ >+<script> >+"use strict"; >+description("Test repeated loading of programs involving bindAttribLocation calls"); >+debug("Regression test for <a href='https://code.google.com/p/chromium/issues/detail?id=510637'>crbug.com/510637</a>"); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+var g_program; >+var g_attribLocation; >+function setup(attribIndex) { >+ var program = wtu.setupProgram( >+ gl, ['vshader', 'fshader'], ['vPosition'], [attribIndex]); >+ g_program = program; >+ g_attribLocation = attribIndex; >+ shouldBe("gl.getAttribLocation(g_program, 'vPosition')", "g_attribLocation"); >+ return program; >+} >+ >+var p0 = setup(0); >+var p3 = setup(3); >+var p1 = setup(1); >+// This call fails the getAttribLocation check on some drivers when >+// Chrome's program binary cache is enabled. On the affected drivers, >+// it returns the bound attribute location from the first binary >+// created. Swapping 0 and 1 above will cause it to return 1 rather >+// than 0. >+p3 = setup(3); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-disabled-vertex-attrib.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-disabled-vertex-attrib.html >new file mode 100644 >index 00000000000..c8657a159b8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-disabled-vertex-attrib.html >@@ -0,0 +1,100 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Disabled Vertex Attrib Test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="50" height="50"> >+</canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+attribute vec4 a_color; >+varying vec4 v_color; >+bool isCorrectColor(vec4 v) { >+ return v.x == 0.0 && v.y == 0.0 && v.z == 0.0 && v.w == 1.0; >+} >+void main() { >+ gl_Position = a_position; >+ v_color = isCorrectColor(a_color) ? vec4(0, 1, 0, 1) : vec4(1, 0, 0, 1); >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec4 v_color; >+void main() { >+ gl_FragColor = v_color; >+} >+</script> >+ >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+description(); >+ >+var gl = wtu.create3DContext("example"); >+ >+var numVertexAttribs = gl.getParameter(gl.MAX_VERTEX_ATTRIBS); >+for (var ii = 0; ii < numVertexAttribs; ++ii) { >+ var colorLocation = (ii + 1) % numVertexAttribs; >+ var positionLocation = colorLocation ? 0 : 1; >+ >+ if (positionLocation != 0) { >+ // We need to create a new 3d context for testing attrib 0 >+ // since we've already effected attrib 0 on other tests. >+ gl = wtu.create3DContext(); >+ } >+ >+ debug("testing attrib: " + colorLocation); >+ var program = wtu.setupProgram( >+ gl, >+ ['vshader', 'fshader'], >+ ['a_position', 'a_color'], >+ [positionLocation, colorLocation]); >+ var gridRes = 1; >+ wtu.setupIndexedQuad(gl, gridRes, positionLocation); >+ wtu.clearAndDrawIndexedQuad(gl, gridRes); >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "should be green"); >+} >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "should be no errors"); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-enable-vertex-attrib.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-enable-vertex-attrib.html >new file mode 100644 >index 00000000000..8e7c2f5f4d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-enable-vertex-attrib.html >@@ -0,0 +1,82 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+ <head> >+<meta charset="utf-8"> >+ <title>WebGL Enable Vertex Attrib Test</title> >+ <link rel="stylesheet" href="../../resources/js-test-style.css"/> >+ <script src="../../js/js-test-pre.js"></script> >+ <script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="50" height="50"> >+</canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+ attribute vec4 vPosition; >+ void main() >+ { >+ gl_Position = vPosition; >+ } >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+ void main() >+ { >+ gl_FragColor = vec4(1.0,0.0,0.0,1.0); >+ } >+</script> >+ >+<script> >+"use strict"; >+description("tests that turning on attribs that have no buffer bound fails to draw"); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["vPosition"]); >+ >+var vertexObject = gl.createBuffer(); >+gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ 0,0.5,0, -0.5,-0.5,0, 0.5,-0.5,0 ]), gl.STATIC_DRAW); >+gl.enableVertexAttribArray(0); >+gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+ >+gl.enableVertexAttribArray(3); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+gl.drawArrays(gl.TRIANGLES, 0, 3); >+wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-matrix-attributes.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-matrix-attributes.html >new file mode 100644 >index 00000000000..f97b71cc3ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-matrix-attributes.html >@@ -0,0 +1,157 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<title>WebGL Matrix Attribute Conformance Test</title> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" width="8" height="8" style="width: 8px; height: 8px;"></canvas> >+<script> >+"use strict"; >+description("This tests ensures that matrix attribute locations do not clash with other shader attributes."); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas, {antialias: false}); >+ >+// Make sure we have room for at least a mat4. >+var maxAttributes = gl.getParameter(gl.MAX_VERTEX_ATTRIBS); >+debug('MAX_VERTEX_ATTRIBUTES is ' + maxAttributes); >+shouldBeGreaterThanOrEqual('maxAttributes', '4'); >+ >+var glFragmentShader = wtu.loadShader(gl, wtu.simpleColorFragmentShader, gl.FRAGMENT_SHADER); >+ >+// prepareMatrixProgram creates a program with glFragmentShader as the fragment shader. >+// The vertex shader has numVector number of vectors and a matrix with numMatrixDimensions >+// dimensions at location numMatrixPosition in the list of attributes. >+// Ensures that every vector and matrix is used by the program. >+// Returns a valid program on successfull link; null on link failure. >+function prepareMatrixProgram(numVectors, numMatrixDimensions, numMatrixPosition) { >+ // Add the matrix and vector attribute declarations. Declare the vectors >+ // to have the same number of components as the matrix so we can perform >+ // operations on them when we assign to gl_Position later on. >+ var strVertexShader = ""; >+ for (var ii = 1; ii <= numVectors; ++ii) { >+ if (numMatrixPosition === ii) { >+ strVertexShader += "attribute mat" + numMatrixDimensions + " matrix;\n"; >+ } >+ strVertexShader += "attribute vec" + numMatrixDimensions + " vec_" + ii + ";\n"; >+ } >+ // numMatrixPosition will be one past numVectors if the caller wants it to be >+ // last. Hence, we need this check outside the loop as well as inside. >+ if (numMatrixPosition === ii) { >+ strVertexShader += "attribute mat" + numMatrixDimensions + " matrix;\n"; >+ } >+ // Add the body of the shader. Add up all of the vectors and multiply by the matrix. >+ // The operations we perform do not matter. We just need to ensure that all the vector and >+ // matrix attributes are used. >+ strVertexShader += "void main(void) { \ngl_Position = vec4(("; >+ for (var ii = 1; ii <= numVectors; ++ii) { >+ if (ii > 1) { >+ strVertexShader += "+" >+ } >+ strVertexShader += "vec_" + ii; >+ } >+ strVertexShader += ")*matrix"; >+ // Ensure the vec4 has the correct number of dimensions in order to be assignable >+ // to gl_Position. >+ for (var ii = numMatrixDimensions; ii < 4; ++ii) { >+ strVertexShader += ",0.0"; >+ } >+ strVertexShader += ");}\n"; >+ // Load the shader, attach it to a program, and return the link results >+ var glVertexShader = wtu.loadShader(gl, strVertexShader, gl.VERTEX_SHADER); >+ var strTest = 'Load shader with ' + numVectors + ' vectors and 1 matrix'; >+ if (glVertexShader !== null) { >+ testPassed(strTest); >+ >+ var glProgram = gl.createProgram(); >+ gl.attachShader(glProgram, glVertexShader); >+ gl.attachShader(glProgram, glFragmentShader); >+ gl.linkProgram(glProgram); >+ if (gl.getProgramParameter(glProgram, gl.LINK_STATUS)) { >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, 'linkProgram'); >+ return glProgram; >+ } >+ } else { >+ testFailed(strTest); >+ } >+ return null; >+} >+ >+debug(''); >+ >+// Test mat2, mat3 and mat4. >+for (var mm = 2; mm <= 4; ++mm) { >+ // Add maxAttribute number of attributes by saving enough room in the attribute >+ // list for a matrix of mm dimensions. All of the other attribute slots will be >+ // filled with vectors. >+ var numVectors = maxAttributes - mm; >+ for (var pp = 1; pp <= numVectors + 1; ++pp) { >+ debug('Test ' + mm + ' dimensional matrix at position ' + pp); >+ var glProgram = prepareMatrixProgram(numVectors, /*numMatrixDimensions*/mm, /*numMatrixPosition*/pp); >+ shouldBeNonNull('glProgram'); >+ var attribMatrix = gl.getAttribLocation(glProgram, 'matrix'); >+ debug('Matrix is at attribute location ' + attribMatrix); >+ shouldBeTrue('attribMatrix > -1'); >+ // Per the spec, when an attribute is a matrix attribute, getAttribLocation >+ // returns the index of the first component of the matrix. The implementation must >+ // leave sufficient room for all the components. Here we ensure none of the vectors >+ // in the shader are assigned attribute locations that belong to the matrix. >+ for (var vv = 1; vv <= numVectors; ++vv) { >+ var strVector = 'vec_' + vv >+ var attribVector = gl.getAttribLocation(glProgram, strVector); >+ debug(strVector + ' is at attribute location ' + attribVector); >+ // Begin with the first attribute location where the matrix begins and ensure >+ // the vector's attribute location is not assigned to the matrix. Loop until >+ // we've checked all of the attribute locations that belong to the matrix. >+ for (var ii = attribMatrix; ii < attribMatrix + mm; ++ii) { >+ var testStr = strVector + ' attribute location: ' + attribVector + '. Should not be ' + ii; >+ if (attribVector !== ii) { >+ testPassed(testStr); >+ } else { >+ testFailed(testStr); >+ } >+ } >+ } >+ debug(''); >+ } >+ debug(''); >+} >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-render.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-render.html >new file mode 100644 >index 00000000000..252bae44c3f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-render.html >@@ -0,0 +1,110 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script id='vshader' type='x-shader'> >+attribute vec4 a; >+attribute vec2 p; >+void main() { >+ gl_Position = vec4(p.x + a.x + a.y + a.z + a.w, p.y, 0.0, 1.0); >+} >+</script> >+<script id='fshader' type='x-shader'> >+precision mediump float; >+void main() { >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+} >+</script> >+<script> >+"use strict"; >+function checkRedPortion(gl, w, low, high) { >+ var buf = new Uint8Array(w * w * 4); >+ gl.readPixels(0, 0, w, w, gl.RGBA, gl.UNSIGNED_BYTE, buf); >+ var i = 0; >+ for (; i < w; ++i) { >+ if (buf[i * 4 + 0] == 255 && buf[i * 4 + 1] == 0 && buf[i * 4 + 2] == 0 && buf[i * 4 + 3] == 255) { >+ break; >+ } >+ } >+ return low <= i && i <= high; >+} >+ >+function runTest() { >+ var wtu = WebGLTestUtils; >+ var gl = wtu.create3DContext('testbed', { preserveDrawingBuffer : true }); >+ if (!gl) { >+ testFailed('could not create context'); >+ return; >+ } >+ var program = wtu.setupProgram(gl, ['vshader', 'fshader'], ['p', 'a']) >+ >+ gl.enableVertexAttribArray(gl.p); >+ var pos = gl.createBuffer(); >+ pos.type = gl.FLOAT; >+ pos.size = 2; >+ pos.num = 4; >+ gl.bindBuffer(gl.ARRAY_BUFFER, pos); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1, -1, 1, -1, -1, 1, 1, 1]), gl.STATIC_DRAW); >+ >+ gl.vertexAttribPointer(0, pos.size, pos.type, false, 0, 0); >+ >+ debug('Test vertexAttrib[1..4]fv by setting different combinations that add up to 1.5 and use that when rendering.'); >+ var vals = [[0.5], [0.1,0.4], [0.2,-0.2,0.5], [-1.0,0.3,0.2,2.0]]; >+ >+ for (var j = 0; j < 4; ++j) { >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ gl['vertexAttrib' + (j+1) + 'fv'](1, vals[j]); >+ gl.drawArrays(gl.TRIANGLE_STRIP, 0, pos.num); >+ >+ if (checkRedPortion(gl, 50, 50 * 0.7, 50 * 0.8)) { >+ testPassed('Attribute of size ' + (j+1) + ' was set correctly'); >+ } else { >+ testFailed('Attribute of size ' + (j+1) + ' was not set correctly'); >+ } >+ } >+} >+</script> >+</head> >+<body> >+<canvas id="testbed" width="50" height="50"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description('Verify that using constant attributes works.'); >+runTest(); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-unconsumed-out-of-bounds.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-unconsumed-out-of-bounds.html >new file mode 100644 >index 00000000000..a09fced3a48 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-unconsumed-out-of-bounds.html >@@ -0,0 +1,210 @@ >+<!-- >+ >+/* >+** Copyright (c) 2017 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Unconsumed Vertex Attributes Out of Bounds Test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="50" height="50"> >+</canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+ void main() { } >+</script> >+ >+<script id="vshader_attrib" type="x-shader/x-vertex"> >+ attribute vec4 vPosition; >+ void main() { >+ gl_Position = vPosition; >+ } >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+ void main() { } >+</script> >+ >+<script> >+"use strict"; >+description("Test that unconsumed vertex attributes are not read out of bounds"); >+// Tests for http://crbug.com/756293 (driver crash on macOS) >+// and a class of similar bugs that could exist on other systems. >+ >+var wtu = WebGLTestUtils; >+var contextVersion = wtu.getDefault3DContextVersion(); >+var gl = wtu.create3DContext("example"); >+var g_program; >+var g_attribLocation; >+ >+var numAttribs = gl.getParameter(gl.MAX_VERTEX_ATTRIBS); >+var allocatedBuffer; >+var indexBuffer; >+ >+function setupBuffers(numVerts) { >+ var vertices = new Float32Array(numVerts * 3); >+ allocatedBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, allocatedBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW); >+ >+ var indices = new Uint16Array(numVerts); >+ for (var ii = 0; ii < numVerts; ++ii) { >+ indices[ii] = ii; >+ } >+ >+ indexBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, gl.STATIC_DRAW); >+} >+ >+var progNoAttribs = wtu.setupProgram(gl, ['vshader', 'fshader'], [], []); >+var progAttrib1 = wtu.setupProgram(gl, ['vshader_attrib', 'fshader'], ['vPosition'], [1]); >+var progAttrib2 = wtu.setupProgram(gl, ['vshader_attrib', 'fshader'], ['vPosition'], [2]); >+setupBuffers(60000); >+ >+var unallocatedBuffer = gl.createBuffer(); >+var tests = []; >+ >+debug(""); >+debug("<u>Tests with one unconsumed attribute<u>"); >+ >+tests.push({ >+ name: "drawArrays", >+ errors: gl.NO_ERROR, >+ draw: function() { gl.drawArrays(gl.TRIANGLES, 0, 3); } >+}); >+tests.push({ >+ name: "drawElements", >+ errors: gl.NO_ERROR, >+ draw: function() { gl.drawElements(gl.TRIANGLES, 60000, gl.UNSIGNED_SHORT, 0); } >+}); >+ >+if (contextVersion >= 2) { >+ tests.push({ >+ name: "drawArraysInstanced", >+ errors: gl.NO_ERROR, >+ draw: function() { gl.drawArraysInstanced(gl.TRIANGLES, 0, 3, 1); } >+ }); >+ tests.push({ >+ name: "drawElementsInstanced", >+ errors: gl.NO_ERROR, >+ draw: function() { gl.drawElementsInstanced(gl.TRIANGLES, 60000, gl.UNSIGNED_SHORT, 0, 1); } >+ }); >+ tests.push({ >+ name: "drawRangeElements", >+ errors: gl.NO_ERROR, >+ draw: function() { gl.drawRangeElements(gl.TRIANGLES, 0, 60000, 60000, gl.UNSIGNED_SHORT, 0, 1); } >+ }); >+} >+ >+// Run tests >+ >+// Bound forever >+gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer); >+ >+for (var attrib = 0; attrib < numAttribs; ++attrib) { >+ debug("Attrib " + attrib + " unconsumed"); >+ for (var i = 0; i < tests.length; ++i) { >+ var test = tests[i]; >+ gl.useProgram(progNoAttribs); >+ >+ gl.enableVertexAttribArray(attrib); >+ gl.bindBuffer(gl.ARRAY_BUFFER, unallocatedBuffer); >+ gl.vertexAttribPointer(attrib, 3, gl.FLOAT, false, 0, 0); >+ >+ test.draw(); >+ >+ gl.disableVertexAttribArray(attrib); >+ wtu.glErrorShouldBe(gl, test.errors, test.name); >+ } >+} >+ >+debug(""); >+debug("<u>Tests with one consumed attribute and one unconsumed attribute<u>"); >+ >+var ext = gl.getExtension("ANGLE_instanced_arrays"); >+if (!ext) { >+ debug("ANGLE_instanced_arrays not available - skipped"); >+} else { >+ tests.push({ >+ name: "drawArraysInstancedANGLE", >+ errors: gl.NO_ERROR, >+ draw: function() { >+ ext.drawArraysInstancedANGLE(gl.TRIANGLES, 0, 3, 1); >+ } >+ }); >+ tests.push({ >+ name: "drawElementsInstancedANGLE", >+ errors: gl.NO_ERROR, >+ draw: function() { >+ ext.drawElementsInstancedANGLE(gl.TRIANGLES, 3, gl.UNSIGNED_SHORT, 0, 1); >+ } >+ }); >+} >+ >+// Note these don't trigger the macOS driver crash (http://crbug.com/756293) >+// but they still add potentially useful coverage. >+for (var attrib = 0; attrib < numAttribs; ++attrib) { >+ var consumedAttrib = attrib == 1 ? 2 : 1; >+ var prog = consumedAttrib == 1 ? progAttrib1 : progAttrib2; >+ debug("Attrib " + attrib + >+ " unconsumed (attrib " + consumedAttrib + " consumed)"); >+ >+ for (var i = 0; i < tests.length; ++i) { >+ var test = tests[i]; >+ gl.useProgram(prog); >+ >+ gl.enableVertexAttribArray(attrib); >+ gl.bindBuffer(gl.ARRAY_BUFFER, unallocatedBuffer); >+ gl.vertexAttribPointer(attrib, 3, gl.FLOAT, false, 0, 0); >+ >+ // Needed because ANGLE_instanced_arrays requires at least one consumed >+ // attribute to have divisor=0 (which is the default, so we don't need to >+ // call vertexAttribDivisorANGLE here). >+ gl.enableVertexAttribArray(consumedAttrib); >+ gl.bindBuffer(gl.ARRAY_BUFFER, allocatedBuffer); >+ gl.vertexAttribPointer(consumedAttrib, 3, gl.FLOAT, false, 0, 0); >+ >+ test.draw(); >+ >+ gl.disableVertexAttribArray(attrib); >+ gl.disableVertexAttribArray(consumedAttrib); >+ wtu.glErrorShouldBe(gl, test.errors, test.name); >+ } >+} >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-zero-issues.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-zero-issues.html >new file mode 100644 >index 00000000000..4af30254e8e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-zero-issues.html >@@ -0,0 +1,152 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Enable Vertex Attrib Zero Test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="50" height="50"> >+</canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+ attribute vec4 vPosition; >+ void main() >+ { >+ gl_Position = vPosition; >+ } >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+ void main() >+ { >+ gl_FragColor = vec4(0.0,1.0,0.0,1.0); >+ } >+</script> >+ >+<script> >+"use strict"; >+description("Test some of the issues of the difference between attrib 0 on OpenGL vs WebGL"); >+debug(""); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+var g_program; >+var g_attribLocation; >+function setup(attribIndex) { >+ var program = wtu.setupProgram( >+ gl, ['vshader', 'fshader'], ['vPosition'], [attribIndex]); >+ g_program = program; >+ g_attribLocation = attribIndex; >+ shouldBe("g_attribLocation", "gl.getAttribLocation(g_program, 'vPosition')"); >+ return program; >+} >+ >+function setupVerts(numVerts) { >+ var verts = [ >+ 1.0, 1.0, 0.0, >+ -1.0, 1.0, 0.0, >+ -1.0, -1.0, 0.0, >+ 1.0, 1.0, 0.0, >+ -1.0, -1.0, 0.0, >+ 1.0, -1.0, 0.0 >+ ]; >+ var positions = new Float32Array(numVerts * 3); >+ var indices = new Uint16Array(numVerts); >+ for (var ii = 0; ii < numVerts; ++ii) { >+ var ndx = ii % 6; >+ var dst = ii * 3; >+ var src = ndx * 3; >+ for (var jj = 0; jj < 3; ++jj) { >+ positions[dst + jj] = verts[src + jj]; >+ } >+ indices[ii] = ii; >+ } >+ var vertexObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ gl.bufferData(gl.ARRAY_BUFFER, positions, gl.STATIC_DRAW); >+ var indexBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, gl.STATIC_DRAW); >+} >+ >+var p0 = setup(0); >+var p3 = setup(3); >+setupVerts(60000); >+ >+for (var ii = 0; ii < 5; ++ii) { >+ // test drawing with attrib 0 >+ gl.useProgram(p0); >+ gl.enableVertexAttribArray(0); >+ gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ gl.drawElements(gl.TRIANGLES, 60000, gl.UNSIGNED_SHORT, 0); >+ wtu.glErrorShouldBe( >+ gl, gl.NO_ERROR, >+ "drawing using attrib 0 with 6 verts"); >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "canvas should be green"); >+ gl.disableVertexAttribArray(0); >+ >+ // test drawing without attrib 0 >+ gl.useProgram(p3); >+ gl.enableVertexAttribArray(3); >+ gl.vertexAttribPointer(3, 3, gl.FLOAT, false, 0, 0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ gl.drawArrays(gl.TRIANGLES, 0, 60000); >+ wtu.glErrorShouldBe( >+ gl, gl.NO_ERROR, >+ "drawing using attrib 3 with 60000 verts"); >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "canvas should be green"); >+ gl.disableVertexAttribArray(3); >+ >+ // This second test of drawing without attrib0 uncovered a bug in chrome >+ // where after the draw without attrib0 the attrib 0 emulation code disabled >+ // attrib 0 and it was never re-enabled so this next draw failed. >+ gl.useProgram(p3); >+ gl.enableVertexAttribArray(3); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ gl.drawElements(gl.TRIANGLES, 60000, gl.UNSIGNED_SHORT, 0); >+ wtu.glErrorShouldBe( >+ gl, gl.NO_ERROR, >+ "drawing using attrib 3 with 60000 verts"); >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "canvas should be green"); >+ gl.disableVertexAttribArray(3); >+} >+ >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib.html >new file mode 100644 >index 00000000000..068a7cca0e7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib.html >@@ -0,0 +1,49 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL vertexAttrib Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" width="2" height="2"> </canvas> >+ >+<script> >+var contextVersion = 1; >+</script> >+<script src="../../js/tests/gl-vertex-attrib.js"></script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer-offsets.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer-offsets.html >new file mode 100644 >index 00000000000..1e537bbb5d2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer-offsets.html >@@ -0,0 +1,181 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+ <head> >+<meta charset="utf-8"> >+ <title>vertexattribpointer offsets test</title> >+ <link rel="stylesheet" href="../../resources/js-test-style.css"/> >+ <script src="../../js/js-test-pre.js"></script> >+ <script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="50" height="50"> >+There is supposed to be an example drawing here, but it's not important. >+</canvas> >+<div id="description"></div> >+<div id="console"></div> >+ <script id="vshader" type="x-shader/x-vertex"> >+ attribute vec4 vPosition; >+ void main() >+ { >+ gl_Position = vPosition; >+ } >+ </script> >+ >+ <script id="fshader" type="x-shader/x-fragment"> >+ precision mediump float; >+ uniform vec4 color; >+ void main() >+ { >+ gl_FragColor = color; >+ } >+ </script> >+ >+ <script> >+ "use strict"; >+ function init() >+ { >+ description("test vertexattribpointer offsets work"); >+ >+ var wtu = WebGLTestUtils; >+ var gl = wtu.create3DContext("example"); >+ var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["vPosition"]); >+ >+ var tests = [ >+ { data: new Float32Array([ 0, 1, 0, 1, 0, 0, 0, 0, 0 ]), >+ type: gl.FLOAT, >+ componentSize: 4, >+ normalize: false, >+ }, >+ { data: new Float32Array([ 0, 1, 0, 1, 0, 0, 0, 0, 0 ]), >+ type: gl.FLOAT, >+ componentSize: 4, >+ normalize: false, >+ }, >+ { data: new Uint16Array([ 0, 32767, 0, 32767, 0, 0, 0, 0, 0 ]), >+ type: gl.SHORT, >+ componentSize: 2, >+ normalize: true, >+ }, >+ { data: new Uint16Array([ 0, 65535, 0, 65535, 0, 0, 0, 0, 0 ]), >+ type: gl.UNSIGNED_SHORT, >+ componentSize: 2, >+ normalize: true, >+ }, >+ { data: new Uint16Array([ 0, 1, 0, 1, 0, 0, 0, 0, 0 ]), >+ type: gl.UNSIGNED_SHORT, >+ componentSize: 2, >+ normalize: false, >+ }, >+ { data: new Uint16Array([ 0, 1, 0, 1, 0, 0, 0, 0, 0 ]), >+ type: gl.SHORT, >+ componentSize: 2, >+ normalize: false, >+ }, >+ { data: new Uint8Array([ 0, 127, 0, 127, 0, 0, 0, 0, 0 ]), >+ type: gl.BYTE, >+ componentSize: 1, >+ normalize: true, >+ }, >+ { data: new Uint8Array([ 0, 255, 0, 255, 0, 0, 0, 0, 0 ]), >+ type: gl.UNSIGNED_BYTE, >+ componentSize: 1, >+ normalize: true, >+ }, >+ { data: new Uint8Array([ 0, 1, 0, 1, 0, 0, 0, 0, 0 ]), >+ type: gl.BYTE, >+ componentSize: 1, >+ normalize: false, >+ }, >+ { data: new Uint8Array([ 0, 1, 0, 1, 0, 0, 0, 0, 0 ]), >+ type: gl.UNSIGNED_BYTE, >+ componentSize: 1, >+ normalize: false, >+ } >+ ]; >+ >+ var vertexObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ gl.bufferData(gl.ARRAY_BUFFER, 1024, gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(0); >+ >+ var colorLoc = gl.getUniformLocation(program, "color"); >+ var kNumVerts = 3; >+ var kNumComponents = 3; >+ >+ var count = 0; >+ for (var tt = 0; tt < tests.length; ++tt) { >+ var test = tests[tt]; >+ for (var oo = 0; oo < 3; ++oo) { >+ for (var ss = 0; ss < 3; ++ss) { >+ var offset = (oo + 1) * test.componentSize; >+ var color = (count % 2) ? [1, 0, 0, 1] : [0, 1, 0, 1]; >+ var stride = test.componentSize * kNumComponents + test.componentSize * ss; >+ debug(""); >+ debug("check with " + wtu.glEnumToString(gl, test.type) + " at offset: " + offset + " with stride:" + stride + " normalize: " + test.normalize); >+ gl.uniform4fv(colorLoc, color); >+ var data = new Uint8Array(test.componentSize * kNumVerts * kNumComponents + stride * (kNumVerts - 1)); >+ var view = new Uint8Array(test.data.buffer); >+ var size = test.componentSize * kNumComponents; >+ for (var jj = 0; jj < kNumVerts; ++jj) { >+ var off1 = jj * size; >+ var off2 = jj * stride; >+ for (var zz = 0; zz < size; ++zz) { >+ data[off2 + zz] = view[off1 + zz]; >+ } >+ } >+ gl.bufferSubData(gl.ARRAY_BUFFER, offset, data); >+ gl.vertexAttribPointer(0, 3, test.type, test.normalize, stride, offset); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ gl.drawArrays(gl.TRIANGLES, 0, 3); >+ >+ var buf = new Uint8Array(50 * 50 * 4); >+ gl.readPixels(0, 0, 50, 50, gl.RGBA, gl.UNSIGNED_BYTE, buf); >+ >+ var black = [0, 0, 0, 0]; >+ var other = [color[0] * 255, color[1] * 255, color[2] * 255, color[3] * 255]; >+ var otherMsg = "should be " + ((count % 2) ? "red" : "green") >+ wtu.checkCanvasRect(gl, 0, 0, 1, 1, black, "should be black", 0); >+ wtu.checkCanvasRect(gl, 0, 49, 1, 1, black, "should be black", 0); >+ wtu.checkCanvasRect(gl, 26, 40, 1, 1, other, otherMsg, 0); >+ wtu.checkCanvasRect(gl, 26, 27, 1, 1, other, otherMsg, 0); >+ wtu.checkCanvasRect(gl, 40, 27, 1, 1, other, otherMsg, 0); >+ ++count; >+ } >+ } >+ } >+ } >+ >+ init(); >+ var successfullyParsed = true; >+ </script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer.html >new file mode 100644 >index 00000000000..9fd55477612 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer.html >@@ -0,0 +1,178 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL vertexAttribPointer Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" width="2" height="2"> </canvas> >+<script> >+"use strict"; >+description("This test checks vertexAttribPointer behaviors in WebGL."); >+ >+debug(""); >+debug("Canvas.getContext"); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("canvas"); >+if (!gl) { >+ testFailed("context does not exist"); >+} else { >+ testPassed("context exists"); >+ >+ debug(""); >+ debug("Checking gl.vertexAttribPointer."); >+ >+ if (!gl.FIXED) { >+ gl.FIXED = 0x140C; >+ } >+ >+ var vertexObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(0), gl.STATIC_DRAW); >+ >+ >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+ gl.vertexAttribPointer(0, 1, gl.FLOAT, false, 0, 4); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, >+ "vertexAttribPointer should fail if no buffer is bound and `offset` is non-zero."); >+ >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ gl.vertexAttribPointer(0, 1, gl.FLOAT, false, 0, 0); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+ gl.vertexAttribPointer(0, 1, gl.FLOAT, false, 0, 0); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, >+ "vertexAttribPointer should succeed if no buffer is bound and `offset` is zero."); >+ >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ >+ >+ if (wtu.getDefault3DContextVersion() < 2) { >+ gl.vertexAttribPointer(0, 1, gl.INT, 0, 0, 0); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, >+ "vertexAttribPointer should not support INT"); >+ gl.vertexAttribPointer(0, 1, gl.UNSIGNED_INT, 0, 0, 0); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, >+ "vertexAttribPointer should not support UNSIGNED_INT"); >+ gl.vertexAttribPointer(0, 1, gl.FIXED, 0, 0, 0); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, >+ "vertexAttribPointer should not support FIXED"); >+ } >+ >+ var checkVertexAttribPointer = function( >+ gl, err, reason, size, type, normalize, stride, offset) { >+ gl.vertexAttribPointer(0, size, type, normalize, stride, offset); >+ var succeeded = (err == gl.NO_ERROR); >+ wtu.glErrorShouldBe(gl, err, >+ "gl.vertexAttribPointer(0, " + size + >+ ", gl." + wtu.glEnumToString(gl, type) + >+ ", " + normalize + >+ ", " + stride + >+ ", " + offset + >+ ") should " + (succeeded ? "succeed " : "fail ") + reason); >+ if (succeeded) { >+ shouldBe('gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_SIZE)', size.toString()); >+ shouldBe('gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_TYPE)', 'gl.' + wtu.glEnumToString(gl, type)); >+ shouldBe('gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_NORMALIZED)', normalize.toString()); >+ shouldBe('gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_STRIDE)', stride.toString()); >+ shouldBe('gl.getVertexAttribOffset(0, gl.VERTEX_ATTRIB_ARRAY_POINTER)', offset.toString()); >+ } >+ } >+ >+ var types = [ >+ { type:gl.BYTE, bytesPerComponent: 1 }, >+ { type:gl.UNSIGNED_BYTE, bytesPerComponent: 1 }, >+ { type:gl.SHORT, bytesPerComponent: 2 }, >+ { type:gl.UNSIGNED_SHORT, bytesPerComponent: 2 }, >+ { type:gl.FLOAT, bytesPerComponent: 4 }, >+ ]; >+ >+ for (var ii = 0; ii < types.length; ++ii) { >+ var info = types[ii]; >+ debug(""); >+ for (var size = 1; size <= 4; ++size) { >+ debug(""); >+ debug("checking: " + wtu.glEnumToString(gl, info.type) + " with size " + size); >+ var bytesPerElement = size * info.bytesPerComponent; >+ var offsetSet = [ >+ 0, >+ 1, >+ info.bytesPerComponent - 1, >+ info.bytesPerComponent, >+ info.bytesPerComponent + 1, >+ info.bytesPerComponent * 2]; >+ for (var jj = 0; jj < offsetSet.length; ++jj) { >+ var offset = offsetSet[jj]; >+ for (var kk = 0; kk < offsetSet.length; ++kk) { >+ var stride = offsetSet[kk]; >+ var err = gl.NO_ERROR; >+ var reason = "" >+ if (offset % info.bytesPerComponent != 0) { >+ reason = "because offset is bad"; >+ err = gl.INVALID_OPERATION; >+ } >+ if (stride % info.bytesPerComponent != 0) { >+ reason = "because stride is bad"; >+ err = gl.INVALID_OPERATION; >+ } >+ checkVertexAttribPointer( >+ gl, err, reason, size, info.type, false, stride, offset); >+ } >+ var stride = Math.floor(255 / info.bytesPerComponent) * info.bytesPerComponent; >+ >+ if (offset == 0) { >+ checkVertexAttribPointer( >+ gl, gl.NO_ERROR, "at stride limit", >+ size, info.type, false, stride, offset); >+ checkVertexAttribPointer( >+ gl, gl.INVALID_VALUE, "over stride limit", >+ size, info.type, false, >+ stride + info.bytesPerComponent, offset); >+ } >+ } >+ } >+ } >+} >+ >+debug(""); >+var successfullyParsed = true; >+ >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/00_test_list.txt >new file mode 100644 >index 00000000000..4b67780ec6c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/00_test_list.txt >@@ -0,0 +1,13 @@ >+buffer-bind-test.html >+buffer-data-and-buffer-sub-data.html >+--min-version 1.0.3 buffer-data-array-buffer-delete.html >+--min-version 1.0.4 buffer-data-dynamic-delay.html >+--min-version 1.0.4 buffer-uninitialized.html >+--min-version 1.0.2 element-array-buffer-delete-recreate.html >+index-validation-copies-indices.html >+index-validation-crash-with-buffer-sub-data.html >+--min-version 1.0.2 index-validation-large-buffer.html >+index-validation-verifies-too-many-indices.html >+index-validation-with-resized-buffer.html >+index-validation.html >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/buffer-bind-test.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/buffer-bind-test.html >new file mode 100644 >index 00000000000..e86c9e9faf5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/buffer-bind-test.html >@@ -0,0 +1,87 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+ <head> >+<meta charset="utf-8"> >+ <title>WebGL BindBuffer conformance test.</title> >+ <link rel="stylesheet" href="../../resources/js-test-style.css"/> >+ <script src="../../js/js-test-pre.js"></script> >+ <script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="40" height="40" style="width: 40px; height: 40px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description("Checks a buffer can only be bound to 1 target."); >+ >+debug(""); >+debug("Canvas.getContext"); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+if (!gl) { >+ testFailed("context does not exist"); >+} else { >+ testPassed("context exists"); >+ >+ debug(""); >+ >+ var buf = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buf); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, >+ "should be able to bind array buffer."); >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, >+ "should be able to unbind array buffer."); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buf); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, >+ "should get INVALID_OPERATION if attempting to bind array buffer to different target"); >+ >+ var buf = gl.createBuffer(); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buf); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, >+ "should be able to bind element array buffer."); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, >+ "should be able to unbind element array buffer."); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buf); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, >+ "should get INVALID_OPERATION if attempting to bind element array buffer to different target"); >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/buffer-data-and-buffer-sub-data.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/buffer-data-and-buffer-sub-data.html >new file mode 100644 >index 00000000000..444719c3848 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/buffer-data-and-buffer-sub-data.html >@@ -0,0 +1,188 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+description("Test bufferData/bufferSubData with or without ArrayBuffer input"); >+ >+debug('Regression test for <a href="https://bugs.webkit.org/show_bug.cgi?id=41884">https://bugs.webkit.org/show_bug.cgi?id=41884</a> : <code>Implement bufferData and bufferSubData with ArrayBuffer as input</code>'); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(); >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ bufferDataTest(); >+ bufferDataSizesTest(); >+ >+ bufferSubDataTest(); >+} >+ >+function bufferDataTest() { >+ debug(""); >+ debug("Test bufferData without ArrayBuffer input"); >+ >+ var buf = gl.createBuffer(); >+ shouldBeNonNull(buf); >+ >+ gl.bufferData(gl.ARRAY_BUFFER, 4, gl.STATIC_DRAW); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "no buffer bound"); >+ >+ gl.bindBuffer(gl.ARRAY_BUFFER, buf); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ gl.bufferData(gl.ARRAY_BUFFER, -4, gl.STATIC_DRAW); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, >+ "calling bufferData when buffer size is negative should generate INVALID_VALUE"); >+ >+ gl.bufferData(gl.ARRAY_BUFFER, null, gl.STATIC_DRAW); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, >+ "calling bufferData when BufferDataSource is null should generate INVALID_VALUE"); >+ >+ gl.bufferData(gl.ARRAY_BUFFER, undefined, gl.STATIC_DRAW); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, >+ "calling bufferData when BufferDataSource is undefined should generate INVALID_VALUE"); >+ >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+} >+ >+function bufferDataSizesTest() { >+ debug(""); >+ debug("Test bufferData overloads"); >+ >+ // bufferData has an integer overload and an ArrayBuffer overload. >+ // Per the WebIDL spec, the overload resolution algorithm should resolve types as follows: >+ // - If the argument is null or undefined, pick the nullable type, which is ArrayBuffer. >+ // Per the WebGL spec, null should flag INVALID_VALUE. >+ // - If the argument is an ArrayBuffer, then pick the ArrayBuffer overload >+ // - Everything else should pick the numeric overload. This means things like objects, strings, >+ // floating point numbers, arrays of numbers and strings, etc should convert themselves to a number. >+ var bufferDataParams = [ >+ { parameter: 0, expectedBufferSize: 0 }, >+ { parameter: 4, expectedBufferSize: 4 }, >+ { parameter: 5.1, expectedBufferSize: 5 }, >+ { parameter: 5.8, expectedBufferSize: 5 }, >+ { parameter: 5.5, expectedBufferSize: 5 }, >+ >+ { parameter: "4", expectedBufferSize: 4 }, >+ { parameter: "5.1", expectedBufferSize: 5 }, >+ { parameter: "5.8", expectedBufferSize: 5 }, >+ { parameter: "5.5", expectedBufferSize: 5 }, >+ { parameter: "0", expectedBufferSize: 0 }, >+ >+ { parameter: [42, 64], expectedBufferSize: 0 }, >+ { parameter: [42], expectedBufferSize: 42 }, >+ { parameter: ["42"], expectedBufferSize: 42 }, >+ { parameter: ["42", "64"], expectedBufferSize: 0 }, >+ >+ { parameter: new ArrayBuffer(0), expectedBufferSize: 0 }, >+ { parameter: new ArrayBuffer(4), expectedBufferSize: 4 }, >+ >+ { parameter: "WebGL Rocks!", expectedBufferSize: 0 }, >+ { parameter: { mystring: "WebGL Rocks!" }, expectedBufferSize: 0 }, >+ ]; >+ >+ bufferDataParams.forEach(function (bufferDataParam) { >+ var buffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buffer); >+ >+ gl.bufferData(gl.ARRAY_BUFFER, bufferDataParam.parameter, gl.STATIC_DRAW); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Passing " + bufferDataParam.parameter + " to bufferData"); >+ >+ shouldEvaluateTo("gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE)", bufferDataParam.expectedBufferSize); >+ }); >+ >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+} >+ >+function bufferSubDataTest() { >+ debug(""); >+ debug("Test bufferSubData"); >+ >+ var buf = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buf); >+ >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, new ArrayBuffer(1)); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "Calling bufferSubData before bufferData should fail"); >+ >+ gl.bufferData(gl.ARRAY_BUFFER, 128, gl.STATIC_DRAW); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ var array = new ArrayBuffer(64); >+ >+ gl.bufferSubData(gl.ARRAY_BUFFER, -10, array); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, >+ "calling bufferSubData with ArrayBuffer when offset is negative should INVALID_VALUE"); >+ >+ gl.bufferSubData(gl.ARRAY_BUFFER, 65, array); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "buffer overflow"); >+ >+ gl.bufferSubData(gl.ARRAY_BUFFER, -10, new Float32Array(8)); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, >+ "calling bufferSubData with ArrayBufferView when offset is negative should generate INVALID_VALUE"); >+ >+ gl.bufferSubData(gl.ARRAY_BUFFER, 10, array); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, >+ "calling bufferSubData with ArrayBuffer should succeed"); >+ >+ gl.bufferSubData(gl.ARRAY_BUFFER, 10, new Float32Array(0)); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, >+ "calling bufferSubData with zero-sized ArrayBufferView should succeed"); >+ >+ // Arguments that are not ArrayBuffers, null or undefined should throw a TypeError exception >+ shouldThrow("gl.bufferSubData(gl.ARRAY_BUFFER, 0, 42);"); >+ shouldThrow("gl.bufferSubData(gl.ARRAY_BUFFER, 0, 5.5);"); >+ shouldThrow("gl.bufferSubData(gl.ARRAY_BUFFER, 0, \"5.5\");"); >+ shouldThrow("gl.bufferSubData(gl.ARRAY_BUFFER, 0, [4]);"); >+ shouldThrow("gl.bufferSubData(gl.ARRAY_BUFFER, 0, { mynumber: 42});"); >+ shouldThrow("gl.bufferSubData(gl.ARRAY_BUFFER, 10, null)"); >+ shouldThrow("gl.bufferSubData(gl.ARRAY_BUFFER, 10, undefined)"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "should generate no GL error"); >+ >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+} >+ >+var successfullyParsed = true; >+</script> >+ >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/buffer-data-array-buffer-delete.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/buffer-data-array-buffer-delete.html >new file mode 100644 >index 00000000000..fc9ccb0b8b1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/buffer-data-array-buffer-delete.html >@@ -0,0 +1,80 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+description("Test ARRAY_BUFFER deletion when a vertex attrib array with location != 0 is pointing to it and preserveDrawingBuffer is true."); >+ >+var canvas = document.createElement('canvas'); >+document.body.appendChild(canvas); >+ >+canvas.addEventListener( >+ "webglcontextlost", >+ function(event) { >+ testFailed("Context lost"); >+ event.preventDefault(); >+ }, >+ false); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(canvas, {preserveDrawingBuffer: true}); >+shouldBeNonNull("gl"); >+ >+var array = new Float32Array([0]); >+var buf = gl.createBuffer(); >+gl.bindBuffer(gl.ARRAY_BUFFER, buf); >+gl.bufferData(gl.ARRAY_BUFFER, array, gl.STATIC_DRAW); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+var attribLocation = 1; >+gl.enableVertexAttribArray(attribLocation); >+gl.vertexAttribPointer(attribLocation, 1, gl.FLOAT, false, 0, 0); >+ >+gl.deleteBuffer(buf); >+ >+setTimeout(function() { >+ // Wait for possible context loss >+ finishTest(); >+}, 2000); >+ >+var successfullyParsed = true; >+</script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/buffer-data-dynamic-delay.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/buffer-data-dynamic-delay.html >new file mode 100644 >index 00000000000..018912c02b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/buffer-data-dynamic-delay.html >@@ -0,0 +1,133 @@ >+<!-- >+/* >+** Copyright (c) 2018 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>bufferData with DYNAMIC_DRAW and delay between updating data</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="canvas" width="50" height="50"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script id="vshader" type="x-shader/x-vertex"> >+ attribute vec2 a_position; >+ attribute vec2 a_color; >+ varying vec2 v_color; >+ void main() >+ { >+ gl_Position = vec4(a_position, 0.0, 1.0); >+ v_color = a_color; >+ } >+</script> >+<script id="fshader" type="x-shader/x-fragment"> >+ precision mediump float; >+ varying vec2 v_color; >+ void main() >+ { >+ gl_FragColor = vec4(v_color, 0.0, 1.0); >+ } >+</script> >+ >+<script> >+"use strict"; >+description("Verifies that bufferData with DYNAMIC_DRAW updates the vertex attribute when there is a significant delay between updating the buffer."); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("canvas"); >+var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["a_position", "a_color"]); >+ >+// Initialize position vertex attribute to draw a square covering the entire canvas. >+var positionBuffer = gl.createBuffer(); >+gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer); >+gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ >+ -1.0, 1.0, >+ 1.0, 1.0, >+ -1.0, -1.0, >+ 1.0, -1.0 >+ ]), gl.DYNAMIC_DRAW); >+gl.enableVertexAttribArray(0); >+gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0); >+ >+// Initialize color vertex attribute to red. >+var colorBuffer = gl.createBuffer(); >+gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer); >+gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ >+ 1.0, 0.0, >+ 1.0, 0.0, >+ 1.0, 0.0, >+ 1.0, 0.0, >+ ]), gl.DYNAMIC_DRAW); >+gl.enableVertexAttribArray(1); >+gl.vertexAttribPointer(1, 2, gl.FLOAT, false, 0, 0); >+ >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "No error after setup"); >+ >+// Fill the canvas with red >+gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "No error after first drawArrays"); >+ >+wtu.checkCanvasRect(gl, 0, 0, 50, 50, [255, 0, 0, 255], "Canvas should be red after the first drawArrays"); >+ >+// With the buffer set to DYNAMIC_DRAW, Angle internally changes the storage type of the vertex attribute from DYNAMIC to DIRECT >+// if the buffer has not been updated after ~4-5 draw calls. When the buffer is eventually updated, the vertex attribute >+// is updated back to DYNAMIC, but there was a bug in Angle where the data is not marked as dirty. The result is that the >+// vertex data is not updated with the new buffer data. This test verifies that the vertex data is updated. >+var iteration = 0; >+function draw() { >+ // Draw 10 times to ensure that the vertex attribute storage type is changed. >+ if (iteration < 10) { >+ gl.drawArrays(gl.TRIANGLE_STRIP, 0, 2); >+ requestAnimationFrame(draw); >+ } >+ else { >+ // Update the buffer bound to the color vertex attribute to green and draw. >+ gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ >+ 0.0, 1.0, >+ 0.0, 1.0, >+ 0.0, 1.0, >+ 0.0, 1.0, >+ ]), gl.DYNAMIC_DRAW); >+ gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "No error after last drawArrays"); >+ >+ wtu.checkCanvasRect(gl, 0, 0, 50, 50, [0, 255, 0, 255], "Canvas should be green after 10 frames"); >+ >+ finishTest(); >+ } >+ >+ iteration++; >+} >+ >+requestAnimationFrame(draw); >+ >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/buffer-uninitialized.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/buffer-uninitialized.html >new file mode 100644 >index 00000000000..7eb19de8d03 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/buffer-uninitialized.html >@@ -0,0 +1,123 @@ >+<!-- >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<canvas id="canvas" width="1" height="1"></canvas> >+ >+<script id="vshader" type="x-shader/x-vertex"> >+attribute float a_vertex; >+void main() >+{ >+ gl_Position = a_vertex == 0.0 ? vec4(9, 9, 9, 1) : vec4(0.5, 0.5, 0.5, 1); >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+void main() >+{ >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+} >+</script> >+ >+<script> >+"use strict"; >+description("Tests that uninitialized WebGLBuffers are zeroed out"); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(document.getElementById("canvas")); >+var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["a_vertex"]); >+shouldBeTrue("program != null"); >+ >+var TEST_LENGTH = 1024; >+var TEST_BUFSIZE = TEST_LENGTH * 4; >+var data = new Float32Array(TEST_LENGTH / 4); // this array is zeroed >+ >+var indices = new Uint16Array(TEST_LENGTH); >+for (var i = 0; i < TEST_LENGTH; i++) { >+ indices[i] = i; >+} >+ >+gl.clearColor(0, 1, 0, 1); >+ >+function test(initFunction) { >+ var uninitializedBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, uninitializedBuffer); >+ initFunction(); >+ >+ var elements = gl.createBuffer(); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, elements); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, gl.STATIC_DRAW); >+ >+ gl.useProgram(program); >+ var vertexLoc = gl.getAttribLocation(program, "a_vertex"); >+ gl.vertexAttribPointer(vertexLoc, 1, gl.FLOAT, gl.FALSE, 0, 0); >+ gl.enableVertexAttribArray(vertexLoc); >+ >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "no error should result from setup"); >+ >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ gl.drawElements(gl.POINTS, TEST_LENGTH, gl.UNSIGNED_SHORT, 0); >+ wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0, 255, 0, 255], "buffer should be initialized to zero"); >+ >+ gl.deleteBuffer(uninitializedBuffer); >+} >+ >+var REPETITIONS = 50; >+ >+var j; >+debug(""); >+debug("testing bufferData(..., size, ...)"); >+for (j = 0; j < REPETITIONS; j++) { >+ test(function() { >+ gl.bufferData(gl.ARRAY_BUFFER, TEST_BUFSIZE, gl.STATIC_DRAW); >+ }); >+} >+ >+debug(""); >+debug("testing bufferSubData(..., offset, data) of uninitialized buffer"); >+for (j = 0; j < REPETITIONS; j++) { >+ test(function() { >+ gl.bufferData(gl.ARRAY_BUFFER, TEST_BUFSIZE, gl.STATIC_DRAW); >+ // bufferSubData the second quarter of the buffer >+ gl.bufferSubData(gl.ARRAY_BUFFER, TEST_BUFSIZE / 4, data); >+ }); >+} >+ >+var successfullyParsed = true; >+</script> >+ >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/element-array-buffer-delete-recreate.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/element-array-buffer-delete-recreate.html >new file mode 100644 >index 00000000000..75f1289c462 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/element-array-buffer-delete-recreate.html >@@ -0,0 +1,90 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+ <title>Element Array Buffer Deletion and Recreation Test</title> >+ <link rel="stylesheet" href="../../resources/js-test-style.css"/> >+ <script src="../../js/js-test-pre.js"></script> >+ <script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="32" height="32"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+function init() >+{ >+ description(); >+ >+ // Clear the background with red. >+ var gl = wtu.create3DContext("example"); >+ wtu.setupSimpleColorProgram(gl); >+ var color = [0, 255, 0, 255]; >+ wtu.setUByteDrawColor(gl, color); >+ >+ var vertexBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ >+ -1, -1, >+ 1, -1, >+ -1, 1, >+ 1, 1 >+ ]), gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(0); >+ gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0); >+ >+ // Create an element array buffer. >+ var indexBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint8Array([0, 1, 2, 3]), gl.STATIC_DRAW); >+ >+ // Delete the element array buffer. >+ gl.deleteBuffer(indexBuffer); >+ >+ // Create a new element array buffer. >+ indexBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint8Array([0, 1, 2, 3]), gl.STATIC_DRAW); >+ >+ // Draw with the new element array buffer. >+ // If the geometry is drawn successfully, the fragment shader will color it green. >+ gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_BYTE, 0); >+ >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "no errors from draw"); >+ wtu.checkCanvas(gl, color, "should be green") >+} >+ >+init(); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/index-validation-copies-indices.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/index-validation-copies-indices.html >new file mode 100644 >index 00000000000..20cc2a7fbd1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/index-validation-copies-indices.html >@@ -0,0 +1,75 @@ >+<!-- >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+description('Test that client data is always copied during bufferData and bufferSubData calls, because otherwise the data the GL uses to draw may differ from that checked by the index validation code.') >+ >+var wtu = WebGLTestUtils; >+var context = wtu.create3DContext(); >+var program = wtu.loadStandardProgram(context); >+ >+context.useProgram(program); >+var vertexObject = context.createBuffer(); >+context.enableVertexAttribArray(0); >+context.bindBuffer(context.ARRAY_BUFFER, vertexObject); >+// 4 vertices -> 2 triangles >+context.bufferData(context.ARRAY_BUFFER, new Float32Array([ 0,0,0, 0,1,0, 1,0,0, 1,1,0 ]), context.STATIC_DRAW); >+context.vertexAttribPointer(0, 3, context.FLOAT, false, 0, 0); >+ >+var indexObject = context.createBuffer(); >+ >+context.bindBuffer(context.ELEMENT_ARRAY_BUFFER, indexObject); >+var indices = new Uint16Array([ 10000, 0, 1, 2, 3, 10000 ]); >+context.bufferData(context.ELEMENT_ARRAY_BUFFER, indices, context.STATIC_DRAW); >+wtu.shouldGenerateGLError(context, context.NO_ERROR, "context.drawElements(context.TRIANGLE_STRIP, 4, context.UNSIGNED_SHORT, 2)"); >+var indexValidationError = wtu.shouldGenerateGLError(context, >+ [context.INVALID_OPERATION, context.NO_ERROR], >+ "context.drawElements(context.TRIANGLE_STRIP, 4, context.UNSIGNED_SHORT, 0)"); >+wtu.shouldGenerateGLError(context, indexValidationError, "context.drawElements(context.TRIANGLE_STRIP, 4, context.UNSIGNED_SHORT, 4)"); >+indices[0] = 2; >+indices[5] = 1; >+wtu.shouldGenerateGLError(context, context.NO_ERROR, "context.drawElements(context.TRIANGLE_STRIP, 4, context.UNSIGNED_SHORT, 2)"); >+wtu.shouldGenerateGLError(context, indexValidationError, "context.drawElements(context.TRIANGLE_STRIP, 4, context.UNSIGNED_SHORT, 0)"); >+wtu.shouldGenerateGLError(context, indexValidationError, "context.drawElements(context.TRIANGLE_STRIP, 4, context.UNSIGNED_SHORT, 4)"); >+ >+debug("") >+var successfullyParsed = true; >+</script> >+ >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/index-validation-crash-with-buffer-sub-data.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/index-validation-crash-with-buffer-sub-data.html >new file mode 100644 >index 00000000000..d6a6d882882 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/index-validation-crash-with-buffer-sub-data.html >@@ -0,0 +1,59 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+description('Verifies that the index validation code which is within bufferSubData does not crash.') >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(); >+ >+var elementBuffer = gl.createBuffer(); >+gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, elementBuffer); >+gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, 256, gl.STATIC_DRAW); >+var data = new Uint8Array(127); >+gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 63, data); >+testPassed("bufferSubData, when buffer object was initialized with null, did not crash"); >+ >+var successfullyParsed = true; >+</script> >+ >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/index-validation-large-buffer.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/index-validation-large-buffer.html >new file mode 100644 >index 00000000000..75d727733e7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/index-validation-large-buffer.html >@@ -0,0 +1,77 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+description('Tests that index validation for drawElements works with large attribute buffers'); >+ >+var wtu = WebGLTestUtils; >+var context = wtu.create3DContext(); >+var program = wtu.loadStandardProgram(context); >+ >+context.useProgram(program); >+ >+// Create a small index buffer. >+var indexObject = context.createBuffer(); >+context.bindBuffer(context.ELEMENT_ARRAY_BUFFER, indexObject); >+var indexArray = new Uint16Array([0, 1, 2]); >+context.bufferData(context.ELEMENT_ARRAY_BUFFER, indexArray, context.STATIC_DRAW); >+ >+// Create a large attribute buffer. >+var vertexObject = context.createBuffer(); >+context.enableVertexAttribArray(0); >+context.bindBuffer(context.ARRAY_BUFFER, vertexObject); >+context.bufferData(context.ARRAY_BUFFER, new Float32Array(3 * 65536), context.STATIC_DRAW); >+context.vertexAttribPointer(0, 3, context.FLOAT, false, 0, 0); >+ >+debug("Test large attribute buffer") >+wtu.shouldGenerateGLError(context, context.NO_ERROR, "context.drawElements(context.TRIANGLES, 3, context.UNSIGNED_SHORT, 0)"); >+ >+// Enlarge the attribute buffer slightly. >+debug("Test even larger attribute buffer") >+context.bufferData(context.ARRAY_BUFFER, new Float32Array(3 * 65536 + 3), context.STATIC_DRAW); >+wtu.shouldGenerateGLError(context, context.NO_ERROR, "context.drawElements(context.TRIANGLES, 3, context.UNSIGNED_SHORT, 0)"); >+ >+debug("") >+var successfullyParsed = true; >+</script> >+ >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/index-validation-verifies-too-many-indices.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/index-validation-verifies-too-many-indices.html >new file mode 100644 >index 00000000000..d1b72e3eb71 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/index-validation-verifies-too-many-indices.html >@@ -0,0 +1,71 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+description('Tests that index validation for drawElements does not examine too many indices'); >+ >+var wtu = WebGLTestUtils; >+var context = wtu.create3DContext(); >+var program = wtu.loadStandardProgram(context); >+ >+context.useProgram(program); >+var vertexObject = context.createBuffer(); >+context.enableVertexAttribArray(0); >+context.bindBuffer(context.ARRAY_BUFFER, vertexObject); >+// 4 vertices -> 2 triangles >+context.bufferData(context.ARRAY_BUFFER, new Float32Array([ 0,0,0, 0,1,0, 1,0,0, 1,1,0 ]), context.STATIC_DRAW); >+context.vertexAttribPointer(0, 3, context.FLOAT, false, 0, 0); >+ >+var indexObject = context.createBuffer(); >+ >+debug("Test out of range indices") >+context.bindBuffer(context.ELEMENT_ARRAY_BUFFER, indexObject); >+context.bufferData(context.ELEMENT_ARRAY_BUFFER, new Uint16Array([ 10000, 0, 1, 2, 3, 10000 ]), context.STATIC_DRAW); >+var indexValidationError = wtu.shouldGenerateGLError(context, [context.INVALID_OPERATION, context.NO_ERROR], "context.drawElements(context.TRIANGLE_STRIP, 4, context.UNSIGNED_SHORT, 0)"); >+wtu.shouldGenerateGLError(context, context.NO_ERROR, "context.drawElements(context.TRIANGLE_STRIP, 4, context.UNSIGNED_SHORT, 2)"); >+wtu.shouldGenerateGLError(context, indexValidationError, "context.drawElements(context.TRIANGLE_STRIP, 4, context.UNSIGNED_SHORT, 4)"); >+ >+debug("") >+var successfullyParsed = true; >+</script> >+ >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/index-validation-with-resized-buffer.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/index-validation-with-resized-buffer.html >new file mode 100644 >index 00000000000..cc0c1fda42d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/index-validation-with-resized-buffer.html >@@ -0,0 +1,128 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="1" height="1"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script id="vs" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+attribute vec4 vColor; >+varying vec4 color; >+void main() { >+ gl_Position = vPosition; >+ color = vColor; >+} >+</script> >+<script id="fs" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec4 color; >+void main() { >+ gl_FragColor = color; >+} >+</script> >+<script> >+"use strict"; >+description('Test that updating the size of a vertex buffer is properly noticed by the WebGL implementation.') >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+var program = wtu.setupProgram(gl, ["vs", "fs"], ["vPosition", "vColor"]); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "after initialization"); >+ >+var vertexObject = gl.createBuffer(); >+gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+gl.bufferData(gl.ARRAY_BUFFER, new Float32Array( >+ [-1,1,0, 1,1,0, -1,-1,0, >+ -1,-1,0, 1,1,0, 1,-1,0]), gl.STATIC_DRAW); >+gl.enableVertexAttribArray(0); >+gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "after vertex setup"); >+ >+var texCoordObject = gl.createBuffer(); >+gl.bindBuffer(gl.ARRAY_BUFFER, texCoordObject); >+gl.bufferData(gl.ARRAY_BUFFER, new Float32Array( >+ [0,0, 1,0, 0,1, >+ 0,1, 1,0, 1,1]), gl.STATIC_DRAW); >+gl.enableVertexAttribArray(1); >+gl.vertexAttribPointer(1, 2, gl.FLOAT, false, 0, 0); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "after texture coord setup"); >+ >+// Now resize these buffers because we want to change what we're drawing. >+gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ >+ -1,1,0, 1,1,0, -1,-1,0, 1,-1,0, >+ -1,1,0, 1,1,0, -1,-1,0, 1,-1,0]), gl.STATIC_DRAW); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "after vertex redefinition"); >+gl.bindBuffer(gl.ARRAY_BUFFER, texCoordObject); >+gl.bufferData(gl.ARRAY_BUFFER, new Uint8Array([ >+ 255, 0, 0, 255, >+ 255, 0, 0, 255, >+ 255, 0, 0, 255, >+ 255, 0, 0, 255, >+ 0, 255, 0, 255, >+ 0, 255, 0, 255, >+ 0, 255, 0, 255, >+ 0, 255, 0, 255]), gl.STATIC_DRAW); >+gl.vertexAttribPointer(1, 4, gl.UNSIGNED_BYTE, false, 0, 0); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "after texture coordinate / color redefinition"); >+ >+var numQuads = 2; >+var indices = new Uint8Array(numQuads * 6); >+for (var ii = 0; ii < numQuads; ++ii) { >+ var offset = ii * 6; >+ var quad = (ii == (numQuads - 1)) ? 4 : 0; >+ indices[offset + 0] = quad + 0; >+ indices[offset + 1] = quad + 1; >+ indices[offset + 2] = quad + 2; >+ indices[offset + 3] = quad + 2; >+ indices[offset + 4] = quad + 1; >+ indices[offset + 5] = quad + 3; >+} >+var indexObject = gl.createBuffer(); >+gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexObject); >+gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, gl.STATIC_DRAW); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "after setting up indices"); >+gl.drawElements(gl.TRIANGLES, numQuads * 6, gl.UNSIGNED_BYTE, 0); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "after drawing"); >+ >+debug("") >+var successfullyParsed = true; >+</script> >+ >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/index-validation.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/index-validation.html >new file mode 100644 >index 00000000000..0e6b35aec20 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/buffers/index-validation.html >@@ -0,0 +1,138 @@ >+<!-- >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+description("Tests that index validation verifies the correct number of indices"); >+ >+function sizeInBytes(type) { >+ switch (type) { >+ case gl.BYTE: >+ case gl.UNSIGNED_BYTE: >+ return 1; >+ case gl.SHORT: >+ case gl.UNSIGNED_SHORT: >+ return 2; >+ case gl.INT: >+ case gl.UNSIGNED_INT: >+ case gl.FLOAT: >+ return 4; >+ default: >+ throw "unknown type"; >+ } >+} >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(); >+var program = wtu.loadStandardProgram(gl); >+ >+// 3 vertices => 1 triangle, interleaved data >+var dataComplete = new Float32Array([0, 0, 0, 1, >+ 0, 0, 1, >+ 1, 0, 0, 1, >+ 0, 0, 1, >+ 1, 1, 1, 1, >+ 0, 0, 1]); >+var dataIncomplete = new Float32Array([0, 0, 0, 1, >+ 0, 0, 1, >+ 1, 0, 0, 1, >+ 0, 0, 1, >+ 1, 1, 1, 1]); >+var indices = new Uint16Array([0, 1, 2]); >+ >+debug("Testing with valid indices"); >+ >+var bufferComplete = gl.createBuffer(); >+gl.bindBuffer(gl.ARRAY_BUFFER, bufferComplete); >+gl.bufferData(gl.ARRAY_BUFFER, dataComplete, gl.STATIC_DRAW); >+var elements = gl.createBuffer(); >+gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, elements); >+gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, gl.STATIC_DRAW); >+gl.useProgram(program); >+var vertexLoc = gl.getAttribLocation(program, "a_vertex"); >+var normalLoc = gl.getAttribLocation(program, "a_normal"); >+gl.vertexAttribPointer(vertexLoc, 4, gl.FLOAT, false, 7 * sizeInBytes(gl.FLOAT), 0); >+gl.enableVertexAttribArray(vertexLoc); >+gl.vertexAttribPointer(normalLoc, 3, gl.FLOAT, false, 7 * sizeInBytes(gl.FLOAT), 4 * sizeInBytes(gl.FLOAT)); >+gl.enableVertexAttribArray(normalLoc); >+shouldBe('gl.checkFramebufferStatus(gl.FRAMEBUFFER)', 'gl.FRAMEBUFFER_COMPLETE'); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+shouldBeUndefined('gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_SHORT, 0)'); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+debug("Testing with out-of-range indices"); >+ >+var bufferIncomplete = gl.createBuffer(); >+gl.bindBuffer(gl.ARRAY_BUFFER, bufferIncomplete); >+gl.bufferData(gl.ARRAY_BUFFER, dataIncomplete, gl.STATIC_DRAW); >+gl.vertexAttribPointer(vertexLoc, 4, gl.FLOAT, false, 7 * sizeInBytes(gl.FLOAT), 0); >+gl.enableVertexAttribArray(vertexLoc); >+gl.disableVertexAttribArray(normalLoc); >+debug("Enable vertices, valid"); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+shouldBeUndefined('gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_SHORT, 0)'); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+debug("Enable normals, out-of-range"); >+gl.vertexAttribPointer(normalLoc, 3, gl.FLOAT, false, 7 * sizeInBytes(gl.FLOAT), 4 * sizeInBytes(gl.FLOAT)); >+gl.enableVertexAttribArray(normalLoc); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+shouldBeUndefined('gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_SHORT, 0)'); >+wtu.glErrorShouldBe(gl, [gl.INVALID_OPERATION, gl.NO_ERROR]); >+ >+debug("Test with enabled attribute that does not belong to current program"); >+ >+gl.disableVertexAttribArray(normalLoc); >+var extraLoc = Math.max(vertexLoc, normalLoc) + 1; >+gl.enableVertexAttribArray(extraLoc); >+debug("Enable an extra attribute with null"); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+shouldBeUndefined('gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_SHORT, 0)'); >+wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION); >+debug("Enable an extra attribute with insufficient data buffer"); >+gl.vertexAttribPointer(extraLoc, 3, gl.FLOAT, false, 7 * sizeInBytes(gl.FLOAT), 4 * sizeInBytes(gl.FLOAT)); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+shouldBeUndefined('gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_SHORT, 0)'); >+debug("Pass large negative index to vertexAttribPointer"); >+gl.vertexAttribPointer(normalLoc, 3, gl.FLOAT, false, 7 * sizeInBytes(gl.FLOAT), -2000000000 * sizeInBytes(gl.FLOAT)); >+wtu.glErrorShouldBe(gl, gl.INVALID_VALUE); >+shouldBeUndefined('gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_SHORT, 0)'); >+ >+var successfullyParsed = true; >+</script> >+ >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/00_test_list.txt >new file mode 100644 >index 00000000000..45bff4ed861 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/00_test_list.txt >@@ -0,0 +1,16 @@ >+buffer-offscreen-test.html >+buffer-preserve-test.html >+canvas-test.html >+canvas-zero-size.html >+drawingbuffer-static-canvas-test.html >+--min-version 1.0.2 drawingbuffer-hd-dpi-test.html >+drawingbuffer-test.html >+--min-version 1.0.3 draw-webgl-to-canvas-test.html >+--min-version 1.0.3 draw-static-webgl-to-multiple-canvas-test.html >+--min-version 1.0.2 framebuffer-bindings-unaffected-on-resize.html >+--min-version 1.0.4 framebuffer-bindings-affected-by-to-data-url.html >+--min-version 1.0.3 rapid-resizing.html >+--min-version 1.0.4 render-after-resize-test.html >+--min-version 1.0.2 texture-bindings-unaffected-on-resize.html >+--min-version 1.0.2 to-data-url-test.html >+viewport-unchanged-upon-resize.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/buffer-offscreen-test.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/buffer-offscreen-test.html >new file mode 100644 >index 00000000000..e4f3e49c561 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/buffer-offscreen-test.html >@@ -0,0 +1,99 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL required buffer clear behaviour test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+<style type="text/css"> >+body { >+ height: 3000px; >+} >+</style> >+</head> >+<body> >+<div id="description"></div> >+<canvas width="20" height="20" style="border: 1px solid blue;" id="c"></canvas> >+<div id="console"></div> >+<script> >+description("This test ensures WebGL implementations correctly clear " + >+ "the drawing buffer on composite if preserveDrawingBuffer is false."); >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var gl1 = wtu.create3DContext("c"); >+var gl2 = wtu.create3DContext(); >+shouldBeTrue("gl1 != null"); >+shouldBeTrue("gl2 != null"); >+ >+shouldBeTrue('gl1.getContextAttributes().preserveDrawingBuffer == false'); >+shouldBeTrue('gl2.getContextAttributes().preserveDrawingBuffer == false'); >+ >+function init(gl) { >+ gl.clearColor(1, 0, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT | gl.STENCIL_BUFFER_BIT); >+ >+ // enable scissor here, before compositing, to make sure it's correctly >+ // ignored and restored >+ gl.scissor(0, 10, 10, 10); >+ gl.enable(gl.SCISSOR_TEST); >+} >+ >+init(gl1); >+init(gl2); >+ >+wtu.waitForComposite(function() { >+ function clear(gl) { >+ // scissor was set earlier >+ gl.clearColor(0, 0, 1, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ } >+ clear(gl1); >+ clear(gl2); >+ >+ debug("check on screen canvas"); >+ wtu.checkCanvasRect(gl1, 0, 10, 10, 10, [0, 0, 255, 255], >+ "cleared corner should be blue, stencil should be preserved"); >+ wtu.checkCanvasRect(gl1, 0, 0, 10, 10, [0, 0, 0, 0], >+ "remainder of buffer should be cleared"); >+ debug("check off screen canvas"); >+ wtu.checkCanvasRect(gl2, 0, 10, 10, 10, [0, 0, 255, 255], >+ "cleared corner should be blue, stencil should be preserved"); >+ wtu.checkCanvasRect(gl2, 0, 0, 10, 10, [255, 0, 0, 255], >+ "remainder of buffer should be un-cleared red"); >+ >+ finishTest(); >+}); >+ >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/buffer-preserve-test.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/buffer-preserve-test.html >new file mode 100644 >index 00000000000..c956bdf302b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/buffer-preserve-test.html >@@ -0,0 +1,87 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL required buffer clear behaviour test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+<style type="text/css"> >+body { >+ height: 3000px; >+} >+</style> >+</head> >+<body> >+<!-- Important to put the canvas at the top so that it's always visible even in the test suite runner. >+ Otherwise it just doesn't get composited in Firefox. --> >+<canvas width="20" height="20" style="border: 1px solid blue;" id="c"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script type="application/javascript"> >+"use strict"; >+ >+description("This test ensures WebGL implementations correctly clear the drawing buffer " + >+ "on composite if preserveDrawingBuffer is false."); >+debug(""); >+ >+var wtu = WebGLTestUtils; >+ >+var gl = wtu.create3DContext("c"); >+shouldBeTrue("gl != null"); >+shouldBeTrue('gl.getContextAttributes().preserveDrawingBuffer == false'); >+ >+gl.clearColor(1, 0, 0, 1); >+gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT | gl.STENCIL_BUFFER_BIT); >+ >+// enable scissor here, before compositing, to make sure it's correctly >+// ignored and restored >+gl.scissor(0, 10, 10, 10); >+gl.enable(gl.SCISSOR_TEST); >+ >+function clear() { >+ // scissor was set earlier >+ gl.clearColor(0, 0, 1, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ wtu.checkCanvasRect(gl, 0, 10, 10, 10, [0, 0, 255, 255], >+ "cleared corner should be blue, stencil should be preserved"); >+ wtu.checkCanvasRect(gl, 0, 0, 10, 10, [0, 0, 0, 0], >+ "remainder of buffer should be cleared"); >+ >+ finishTest(); >+ return; >+} >+ >+wtu.waitForComposite(clear); >+ >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/canvas-test.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/canvas-test.html >new file mode 100644 >index 00000000000..44bac49d849 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/canvas-test.html >@@ -0,0 +1,215 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Canvas Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> >+<canvas id="canvas2d" width="40" height="40"> </canvas> >+<script> >+"use strict"; >+ >+description("This test ensures WebGL implementations interact correctly with the canvas tag."); >+ >+debug(""); >+debug("Canvas.getContext"); >+ >+var err; >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var canvas2d = document.getElementById("canvas2d"); >+var ctx2d = canvas2d.getContext("2d"); >+var gl = wtu.create3DContext(canvas); >+if (!gl) { >+ testFailed("context does not exist"); >+} else { >+ testPassed("context exists"); >+ >+ debug(""); >+ debug("Checking canvas and WebGL interaction"); >+ >+ // Check that a canvas with no width or height is 300x150 pixels >+ shouldBe('canvas.width', '300'); >+ shouldBe('canvas.height', '150'); >+ >+ // Check get a 4 value gl parameter as a csv string. >+ var getValue4v = function(name) { >+ var v = gl.getParameter(name); >+ var result = '' + >+ v[0] + ',' + >+ v[1] + ',' + >+ v[2] + ',' + >+ v[3]; >+ return result; >+ } >+ >+ var getViewport = function() { >+ return getValue4v(gl.VIEWPORT); >+ } >+ >+ var getClearColor = function() { >+ return getValue4v(gl.COLOR_CLEAR_VALUE); >+ } >+ >+ var isAboutEqual = function(a, b) { >+ return Math.abs(a - b) < 0.01; >+ } >+ >+ var isAboutEqualInt = function(a, b) { >+ return Math.abs(a - b) < 3; >+ } >+ >+ var checkCanvasContentIs = function(r3d,g3d,b3d,a3d) { >+ var r2d; >+ var g2d; >+ var b2d; >+ var a2d; >+ >+ var checkPixel = function(x, y, r3d,g3d,b3d,a3d) { >+ var offset = (y * 40 + x) * 4; >+ r2d = imgData.data[offset]; >+ g2d = imgData.data[offset + 1]; >+ b2d = imgData.data[offset + 2]; >+ a2d = imgData.data[offset + 3]; >+ var res = isAboutEqualInt(r2d, r3d) && >+ isAboutEqualInt(g2d, g3d) && >+ isAboutEqualInt(b2d, b3d) && >+ isAboutEqualInt(a2d, a3d); >+ if (!res) { >+ bufferedLogToConsole('at ' + x + ', ' + y + " (offset " + offset + ") = " + r2d + ", " + g2d + ", " + b2d + ", " + a2d); >+ } >+ return res; >+ } >+ >+ var checkPixels = function(r3d,g3d,b3d,a3d) { >+ return checkPixel(0, 0, r3d, g3d, b3d, a3d) && >+ checkPixel(0, 39, r3d, g3d, b3d, a3d) && >+ checkPixel(39, 0, r3d, g3d, b3d, a3d) && >+ checkPixel(39, 39, r3d, g3d, b3d, a3d) && >+ checkPixel(0, 0, r3d, g3d, b3d, a3d); >+ }; >+ >+ // Set to just take the color from the 3d canvas >+ ctx2d.globalCompositeOperation = 'copy'; >+ >+ // fill 2d canvas with orange >+ ctx2d.fillStyle = "rgb(255,192,128)"; >+ ctx2d.fillRect (0, 0, 40, 40); >+ >+ // get the image data >+ var imgData = ctx2d.getImageData(0, 0, 40, 40); >+ >+ // check it got cleared. >+ if (!checkPixels(255, 192, 128, 255)) { >+ testFailed("unable to fill 2d context."); >+ return; >+ } >+ >+ // draw 3d canvas on top. >+ ctx2d.drawImage(canvas, 0,0, 40, 40); >+ >+ // get the image data >+ var imgData = ctx2d.getImageData(0, 0, 40, 40); >+ >+ // Check it's the expected color. >+ if (!checkPixels(r3d, g3d, b3d, a3d)) { >+ testFailed("pixels are " + r2d + "," + g2d + "," + b2d + "," + a2d + >+ " expected " + r3d + "," + g3d + "," + b3d + "," + a3d); >+ } else { >+ testPassed("pixels are " + r3d + "," + g3d + "," + b3d + "," + a3d); >+ } >+ } >+ >+ checkCanvasContentIs(0, 0, 0, 0); >+ shouldBe('getViewport()', '"0,0,300,150"'); >+ >+ // Change the display size of the canvas and check >+ // the viewport size does not change. >+ debug(""); >+ debug("change display size of canvas and see that viewport does not change"); >+ canvas.style.width = "100px"; >+ canvas.style.height = "25px"; >+ var intervalId; >+ intervalId = window.setInterval(function() { >+ if (canvas.clientWidth == 100 && >+ canvas.clientHeight == 25) { >+ window.clearInterval(intervalId); >+ shouldBe('getViewport()', '"0,0,300,150"'); >+ shouldBe('canvas.width', '300'); >+ shouldBe('canvas.height', '150'); >+ >+ // Change the actual size of the canvas >+ // Check that the viewport does not change. >+ // Check that the clear color does not change. >+ // Check that the color mask does not change. >+ debug(""); >+ debug("change the actual size of the canvas and see that the viewport does not change"); >+ gl.clearColor(0.25, 0.5, 0.75, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ checkCanvasContentIs(64, 128, 192, 255); >+ gl.colorMask(0,0,0,0); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "No GL errors before resizing the canvas"); >+ canvas.width = 400; >+ canvas.height = 10; >+ err = gl.getError(); >+ // Some implementations might lost the context when resizing >+ if (err != gl.CONTEXT_LOST_WEBGL) { >+ shouldBe("err", "gl.NO_ERROR"); >+ var v = gl.getParameter(gl.COLOR_CLEAR_VALUE); >+ assertMsg(isAboutEqual(v[0], 0.25) && >+ isAboutEqual(v[1], 0.5) && >+ isAboutEqual(v[2], 0.75) && >+ isAboutEqual(v[3], 1), >+ "gl.clearColor should not change after canvas resize"); >+ v = gl.getParameter(gl.COLOR_WRITEMASK); >+ assertMsg(isAboutEqual(v[0], 0) && >+ isAboutEqual(v[1], 0) && >+ isAboutEqual(v[2], 0) && >+ isAboutEqual(v[3], 0), >+ "gl.colorMask should not change after canvas resize"); >+ shouldBe('getViewport()', '"0,0,300,150"'); >+ checkCanvasContentIs(0, 0, 0, 0); >+ } >+ >+ debug(""); >+ finishTest(); >+ } >+ }, 1000/30); >+} >+</script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/canvas-zero-size.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/canvas-zero-size.html >new file mode 100644 >index 00000000000..8d6763e61cb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/canvas-zero-size.html >@@ -0,0 +1,64 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+ <head> >+ <meta charset="utf-8"> >+ <title>Zero Size Canvas Test</title> >+ <link rel="stylesheet" href="../../resources/js-test-style.css"/> >+ <script src="../../js/js-test-pre.js"></script> >+ <script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description("Tests that a zero size canvas does not fail."); >+var wtu = WebGLTestUtils; >+var canvas = document.createElement('canvas'); >+var gl = wtu.create3DContext(canvas); >+canvas.width = 0; >+canvas.height = 0; >+gl.viewport(0, 0, 0, 0); >+var program = wtu.setupTexturedQuad(gl); >+shouldBeTrue("program != null"); >+var tex = gl.createTexture(); >+gl.bindTexture(gl.TEXTURE_2D, tex); >+var pixel = new Uint8Array([0, 255, 0, 255]); >+gl.texImage2D( >+ gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, pixel); >+wtu.clearAndDrawUnitQuad(gl); >+ >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from setup."); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/draw-static-webgl-to-multiple-canvas-test.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/draw-static-webgl-to-multiple-canvas-test.html >new file mode 100644 >index 00000000000..37e3f04aa78 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/draw-static-webgl-to-multiple-canvas-test.html >@@ -0,0 +1,96 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Canvas Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas2d_0" width="128" height="128"> </canvas> >+<canvas id="canvas2d_1" width="400" height="400"> </canvas> >+<canvas id="canvas2d_2" width="128" height="128"> </canvas> >+<canvas id="webgl" width="400" height="400"> </canvas> >+<script> >+"use strict"; >+ >+description("This test ensures WebGL implementations interact correctly with the canvas 2D drawImage call when drawing the same content."); >+ >+var err; >+var wtu = WebGLTestUtils; >+ >+var canvas2d = []; >+var ctx2d = []; >+for (var i = 0; i < 3; i ++) { >+ canvas2d[i] = document.getElementById("canvas2d_" + i); >+ ctx2d[i] = canvas2d[i].getContext("2d"); >+} >+ >+var canvas = document.getElementById("webgl"); >+var gl = wtu.create3DContext(canvas); >+if (!gl) { >+ testFailed("context does not exist"); >+} else { >+ testPassed("context exists"); >+ >+ debug("Checking drawing the same WebGL content to HW accelerated canvas and SW Canvases"); >+ debug(""); >+ var color = [[0.25, 0.5, 0.75, 1], [1, 0, 0, 1], [1, 0, 1, 1]]; >+ var colorValue = [[64, 128, 192, 255], [255, 0, 0, 255], [255, 0, 255, 255]]; >+ for (var count = 0; count < 10; count ++) { >+ for (var i = 0; i < 3; i++) { >+ gl.clearColor(color[i][0], color[i][1], color[i][2], color[i][3]); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ ctx2d[0].drawImage(canvas, 0, 0, canvas2d[0].width, canvas2d[0].height); >+ ctx2d[1].drawImage(canvas, 0, 0, canvas2d[1].width, canvas2d[1].height); >+ ctx2d[2].drawImage(canvas, 0, 0, canvas2d[2].width, canvas2d[2].height); >+ wtu.checkCanvasRect(ctx2d[0], 0, 0, canvas2d[0].width, canvas2d[0].height, colorValue[i], >+ "drawImage: Should be (" + colorValue[i][0] + "," + colorValue[i][1] + >+ "," + colorValue[i][2] + "," + colorValue[i][3] + ").", 2); >+ wtu.checkCanvasRect(ctx2d[1], 0, 0, canvas2d[1].width, canvas2d[1].height, colorValue[i], >+ "drawImage: Should be (" + colorValue[i][0] + "," + colorValue[i][1] + >+ "," + colorValue[i][2] + "," + colorValue[i][3] + ").", 2); >+ wtu.checkCanvasRect(ctx2d[2], 0, 0, canvas2d[2].width, canvas2d[2].height, colorValue[i], >+ "drawImage: Should be (" + colorValue[i][0] + "," + colorValue[i][1] + >+ "," + colorValue[i][2] + "," + colorValue[i][3] + ").", 2); >+ } >+ } >+ >+ err = gl.getError(); >+ debug(""); >+ finishTest(); >+} >+</script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/draw-webgl-to-canvas-test.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/draw-webgl-to-canvas-test.html >new file mode 100644 >index 00000000000..1cc1914f07c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/draw-webgl-to-canvas-test.html >@@ -0,0 +1,99 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Canvas Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas2d_0" width="400" height="400"> </canvas> >+<canvas id="canvas2d_1" width="400" height="400"> </canvas> >+<canvas id="canvas2d_2" width="400" height="400"> </canvas> >+<canvas id="webgl" width="400" height="400"> </canvas> >+<script> >+"use strict"; >+ >+description("This test ensures WebGL implementations interact correctly with the canvas 2D drawImage call."); >+ >+var err; >+var wtu = WebGLTestUtils; >+ >+var canvas2d = []; >+var ctx2d = []; >+for (var i = 0; i < 3; i ++) { >+ canvas2d[i] = document.getElementById("canvas2d_" + i); >+ ctx2d[i] = canvas2d[i].getContext("2d"); >+} >+ >+var canvas = document.getElementById("webgl"); >+var gl = wtu.create3DContext(canvas); >+if (!gl) { >+ testFailed("context does not exist"); >+} else { >+ testPassed("context exists"); >+ >+ debug(""); >+ debug("Checking canvas and WebGL drawImage interaction"); >+ for (var count = 0; count < 10; count ++) { >+ gl.clearColor(0.25, 0.5, 0.75, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ ctx2d[0].drawImage(canvas, 0, 0, canvas2d[0].width, canvas2d[0].height); >+ >+ gl.clearColor(1, 0, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ ctx2d[1].drawImage(canvas, 0, 0, canvas2d[1].width, canvas2d[1].height); >+ >+ gl.clearColor(1, 0, 1, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ ctx2d[2].drawImage(canvas, 0, 0, canvas2d[2].width, canvas2d[2].height); >+ >+ gl.clearColor(1, 1, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ >+ wtu.checkCanvasRect(ctx2d[0], 0, 0, canvas2d[0].width, canvas2d[0].height, [64, 128, 192, 255], >+ "drawImage: Should be [64, 128, 192, 255]", 2); >+ wtu.checkCanvasRect(ctx2d[1], 0, 0, canvas2d[1].width, canvas2d[1].height, [255, 0, 0, 255], >+ "drawImage: Should be [255, 0, 0, 255]", 2); >+ wtu.checkCanvasRect(ctx2d[2], 0, 0, canvas2d[2].width, canvas2d[2].height, [255, 0, 255, 255], >+ "drawImage: Should be [255, 0, 255, 255]", 2); >+ } >+ >+ err = gl.getError(); >+ debug(""); >+ finishTest(); >+} >+</script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/drawingbuffer-hd-dpi-test.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/drawingbuffer-hd-dpi-test.html >new file mode 100644 >index 00000000000..ea566c5e14e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/drawingbuffer-hd-dpi-test.html >@@ -0,0 +1,225 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL DrawingBuffer dimensions on HD-DPI machines test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshaderGrid" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+void main() >+{ >+ gl_Position = a_position; >+} >+</script> >+ >+<script id="fshaderGrid" type="x-shader/x-fragment"> >+precision mediump float; >+void main() >+{ >+ float r = mod(gl_FragCoord.x, 2.0) < 1.0 ? 0.0 : 1.0; >+ float g = mod(gl_FragCoord.y, 2.0) < 1.0 ? 0.0 : 1.0; >+ gl_FragColor = vec4(r, g, 0, 1); >+} >+</script> >+<script> >+"use strict"; >+description(); >+debug(""); >+ >+var gl; >+var canvas; >+ >+function checkDimensions() { >+ // We expect that for the sizes being testing drawingBufferWidth and drawingBufferHeight >+ // will match canvas.width and canvas.height. >+ >+ // We need to test that devicePixelRatio does not effect the backbuffer size of a canvas. >+ shouldBe('gl.drawingBufferWidth', 'canvas.width'); >+ shouldBe('gl.drawingBufferHeight', 'canvas.height'); >+} >+ >+// This uses gl_FragCoord to draw a device pixel relavent pattern. >+// If drawBufferWidth or drawBufferHeight are not in device pixels >+// this test should fail. >+function checkGrid(gl, width, height) { >+ var program = wtu.setupProgram(gl, ["vshaderGrid", "fshaderGrid"], ["a_position"]); >+ wtu.setupUnitQuad(gl); >+ gl.useProgram(program); >+ shouldBe('gl.getError()', 'gl.NO_ERROR'); >+ >+ wtu.clearAndDrawUnitQuad(gl); >+ >+ var pixels = new Uint8Array(width * height * 4); >+ gl.readPixels(0, 0, width, height, gl.RGBA, gl.UNSIGNED_BYTE, pixels); >+ >+ var colors = [ >+ [ { color: [0, 0, 0, 255], name: "black" }, { color: [255, 0, 0, 255], name: "red" } ], >+ [ { color: [0, 255, 0, 255], name: "green" }, { color: [255, 255, 0, 255], name: "yellow" } ], >+ ]; >+ >+ for (var yy = 0; yy < height; ++yy) { >+ for (var xx = 0; xx < width; ++xx) { >+ var info = colors[yy % 2][xx % 2]; >+ var color = info.color; >+ var offset = (yy * width + xx) * 4; >+ for (var jj = 0; jj < 4; ++jj) { >+ if (pixels[offset + jj] != color[jj]) { >+ var actual = [pixels[offset], pixels[offset + 1], pixels[offset + 2], pixels[offset + 3]]; >+ testFailed("at " + xx + ", " + yy + " expected " + color + "(" + info.name + ") was " + actual); >+ return; >+ } >+ } >+ } >+ } >+ testPassed("grid rendered correctly"); >+} >+ >+// This passes device coordinate vertices in to make sure gl.viewport is not being mucked with. >+function checkQuad(gl, width, height) { >+ var deviceToClipSpace = function(value, range) { >+ return value / range * 2 - 1; >+ } >+ >+ var program = wtu.setupColorQuad(gl); >+ >+ // draw a small green square in the top right corner. >+ var deviceX1 = width - 4; >+ var deviceX2 = width; >+ var deviceY1 = height - 4; >+ var deviceY2 = height; >+ >+ var clipX1 = deviceToClipSpace(deviceX1, width); >+ var clipX2 = deviceToClipSpace(deviceX2, width); >+ var clipY1 = deviceToClipSpace(deviceY1, height); >+ var clipY2 = deviceToClipSpace(deviceY2, height); >+ >+ var vertexObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ gl.bufferData( >+ gl.ARRAY_BUFFER, >+ new Float32Array( >+ [ clipX2, clipY2, >+ clipX1, clipY2, >+ clipX1, clipY1, >+ clipX2, clipY2, >+ clipX1, clipY1, >+ clipX2, clipY1]), >+ gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(0); >+ gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0); >+ >+ var green = [0, 255, 0, 255]; >+ var black = [0, 0, 0, 0]; >+ gl.clearColor(0, 0, 0, 0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ wtu.drawUByteColorQuad(gl, [0, 255, 0, 255]); >+ >+ var squareWidth = deviceX2 - deviceX1; >+ var squareHeight = deviceY2 - deviceY1; >+ >+ // check the square. >+ wtu.checkCanvasRect(gl, deviceX1, deviceY1, squareWidth, squareHeight, green, "should be green"); >+ // check outside the square. >+ wtu.checkCanvasRect(gl, 0, 0, width, height - squareHeight, black, "should be black"); >+ wtu.checkCanvasRect(gl, 0, height - squareHeight, width - squareWidth, squareHeight, black, "should be black"); >+} >+ >+ >+function test(desiredWidth, desiredHeight) { >+ debug(""); >+ debug("testing canvas width = " + desiredWidth + ", height = " + desiredHeight); >+ >+ // Make a fresh canvas. >+ canvas = document.createElement("canvas"); >+ canvas.width = desiredWidth; >+ canvas.height = desiredHeight; >+ >+ // This 'gl' must be global for shouldBe to work. >+ gl = wtu.create3DContext(canvas, {antialias: false}); >+ if (!gl) { >+ testFailed("context does not exist"); >+ } else { >+ testPassed("context exists"); >+ >+ // Check the dimensions are correct. >+ checkDimensions(); >+ >+ // Draw a pixel grid using a shader that draws in device coordinates >+ checkGrid(gl, desiredWidth, desiredHeight); >+ >+ // Draw a quad in the top right corner. >+ checkQuad(gl, desiredWidth, desiredHeight); >+ >+ shouldBe('gl.getError()', 'gl.NO_ERROR'); >+ >+ debug(""); >+ debug("testing resizing canvas to width = " + desiredWidth + ", height = " + desiredHeight); >+ >+ var oldViewport = gl.getParameter(gl.VIEWPORT); >+ >+ // flip width and height >+ canvas.width = desiredHeight; >+ canvas.height = desiredWidth; >+ >+ // fix the viewport >+ gl.viewport(0, 0, desiredHeight, desiredWidth); >+ >+ // Check the dimensions are correct. >+ checkDimensions(); >+ >+ // Draw a pixel grid using a shader that draws in device coordinates >+ checkGrid(gl, desiredHeight, desiredWidth); >+ >+ // Draw a quad in the top right corner. >+ checkQuad(gl, desiredHeight, desiredWidth); >+ >+ shouldBe('gl.getError()', 'gl.NO_ERROR'); >+ } >+} >+ >+var wtu = WebGLTestUtils; >+ >+// test a few sizes >+test(32, 16); >+test(128, 64); >+test(256, 512); >+ >+debug("") >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/drawingbuffer-static-canvas-test.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/drawingbuffer-static-canvas-test.html >new file mode 100644 >index 00000000000..cf906b83a45 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/drawingbuffer-static-canvas-test.html >@@ -0,0 +1,137 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Canvas Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" width="50" height="50"> </canvas> >+ >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+void main() >+{ >+ gl_FragColor = vec4(1.0,0.0,0.0,1.0); >+} >+</script> >+ >+<script> >+"use strict"; >+ >+function drawTriangleTest(gl) >+{ >+ var width = 50; >+ var height = 50; >+ gl.viewport(0, 0, width, height); >+ var vertexObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ 0,0.5,0, -0.5,-0.5,0, 0.5,-0.5,0 ]), gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(0); >+ gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+ >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ gl.drawArrays(gl.TRIANGLES, 0, 3); >+ >+ // Test several locations >+ wtu.checkCanvasRect(gl, 0, 0, width, 1, [0, 0, 0, 255], >+ 'First line should be all black'); >+ wtu.checkCanvasRect(gl, 20, 15, 10, 1, [255, 0, 0, 255], >+ 'Line 15 should be red for at least 10 red pixels starting 20 pixels in'); >+ wtu.checkCanvasRect(gl, 0, height - 1, width, 1, [0, 0, 0, 255], >+ 'Last line should be all black'); >+} >+ >+description("This test ensures WebGL implementations correctly implement drawingbufferWidth/Height with compositing."); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var err; >+var maxSize; >+var gl = wtu.create3DContext("canvas"); >+if (!gl) { >+ testFailed("context does not exist"); >+} else { >+ testPassed("context exists"); >+ >+ var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["vPosition"]); >+ shouldBeNonNull("program"); >+ gl.enable(gl.DEPTH_TEST); >+ gl.clearColor(0, 0, 0, 1); >+ shouldBe('gl.getError()', 'gl.NO_ERROR'); >+ >+ debug(""); >+ debug("Checking drawingBufferWidth/drawingBufferHeight"); >+ >+ shouldBe('gl.drawingBufferWidth', 'gl.canvas.width'); >+ shouldBe('gl.drawingBufferHeight', 'gl.canvas.height'); >+ >+ // Check that changing the canvas size to something too large falls back to reasonable values. >+ maxSize = gl.getParameter(gl.MAX_VIEWPORT_DIMS); >+ shouldBeTrue('maxSize[0] > 0'); >+ shouldBeTrue('maxSize[1] > 0'); >+ >+ // debug("MAX_VIEWPORT_DIMS = " + maxSize[0] + "x" + maxSize[1]); >+ gl.canvas.width = maxSize[0] * 4; >+ gl.canvas.height = maxSize[1] * 4; >+ shouldBeTrue('gl.drawingBufferWidth > 0'); >+ shouldBeTrue('gl.drawingBufferHeight > 0'); >+ shouldBeTrue('gl.drawingBufferWidth <= maxSize[0]'); >+ shouldBeTrue('gl.drawingBufferHeight <= maxSize[1]'); >+ shouldBe('gl.getError()', 'gl.NO_ERROR'); >+ >+ debug(""); >+ debug("Checking scaling up then back down to 50/50, drawing still works."); >+ gl.canvas.width = 50; >+ gl.canvas.height = 50; >+ shouldBeTrue('gl.drawingBufferWidth == 50'); >+ shouldBeTrue('gl.drawingBufferHeight == 50'); >+ shouldBe('gl.getError()', 'gl.NO_ERROR'); >+ drawTriangleTest(gl); >+ shouldBe('gl.getError()', 'gl.NO_ERROR'); >+} >+debug("") >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/drawingbuffer-test.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/drawingbuffer-test.html >new file mode 100644 >index 00000000000..2594d65f3cb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/drawingbuffer-test.html >@@ -0,0 +1,138 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Canvas.drawingBufferWidth,drawingBufferHeight Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description(); >+debug(""); >+ >+var gl; >+var oldViewport; >+ >+function getMaxViewportDimensions() { >+ // create a fresh canvas. This canvas will be discarded >+ // after exiting this function. >+ var canvas = document.createElement("canvas"); >+ gl = wtu.create3DContext(canvas, {antialias: false}); >+ if (!gl) { >+ testFailed("context does not exist"); >+ return [0, 0]; >+ } else { >+ testPassed("context exists"); >+ >+ // For a default size canvas these should be equal. >+ // WebGL contexts are not allowed to change the size of the drawingBuffer >+ // for things like hi-res displays. >+ shouldBe('gl.drawingBufferWidth', 'gl.canvas.width'); >+ shouldBe('gl.drawingBufferHeight', 'gl.canvas.height'); >+ return gl.getParameter(gl.MAX_VIEWPORT_DIMS); >+ } >+} >+ >+function test(desiredWidth, desiredHeight) { >+ debug(""); >+ debug("testing canvas width = " + desiredWidth + ", height = " + desiredHeight); >+ >+ // Make a fresh canvas. >+ var canvas = document.createElement("canvas"); >+ canvas.width = desiredWidth; >+ canvas.height = desiredHeight; >+ >+ // This 'gl' must be global for shouldBe to work. >+ gl = wtu.create3DContext(canvas, {antialias: false}); >+ if (!gl) { >+ testFailed("context does not exist"); >+ } else { >+ testPassed("context exists"); >+ >+ // Verify these stats didn't change since they come from a different >+ // context. >+ shouldBe('gl.getParameter(gl.MAX_VIEWPORT_DIMS)[0]', 'maxSize[0]'); >+ shouldBe('gl.getParameter(gl.MAX_VIEWPORT_DIMS)[1]', 'maxSize[1]'); >+ >+ // check the initial viewport matches the drawingBufferWidth and drawingBufferHeight >+ shouldBe('gl.getParameter(gl.VIEWPORT)[0]', '0'); >+ shouldBe('gl.getParameter(gl.VIEWPORT)[1]', '0'); >+ shouldBe('gl.getParameter(gl.VIEWPORT)[2]', 'gl.drawingBufferWidth'); >+ shouldBe('gl.getParameter(gl.VIEWPORT)[3]', 'gl.drawingBufferHeight'); >+ >+ debug(""); >+ debug("testing resizing canvas to width = " + desiredWidth + ", height = " + desiredHeight); >+ >+ oldViewport = gl.getParameter(gl.VIEWPORT); >+ >+ // flip width and height >+ canvas.width = desiredHeight; >+ canvas.height = desiredWidth; >+ >+ // Verify the viewport didn't change. >+ shouldBe('gl.getParameter(gl.VIEWPORT)[0]', 'oldViewport[0]'); >+ shouldBe('gl.getParameter(gl.VIEWPORT)[1]', 'oldViewport[1]'); >+ shouldBe('gl.getParameter(gl.VIEWPORT)[2]', 'oldViewport[2]'); >+ shouldBe('gl.getParameter(gl.VIEWPORT)[3]', 'oldViewport[3]'); >+ >+ // fix the viewport >+// gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); >+ >+ shouldBe('gl.getError()', 'gl.NO_ERROR'); >+ } >+} >+ >+var wtu = WebGLTestUtils; >+var maxSize = getMaxViewportDimensions(); >+debug("MAX_VIEWPORT_DIMS: " + maxSize[0] + ", " + maxSize[1]); >+ >+shouldBeTrue('maxSize[0] > 0'); >+shouldBeTrue('maxSize[1] > 0'); >+ >+// test a small size to make sure it works at all. >+test(16, 32); >+ >+// Make a canvas slightly larger than the max size WebGL can handle. >+// From section 2.2 of the spec the WebGL implementation should allow this to work. >+ >+// test a size larger than MAX_VIEWPORT_DIMS in both dimensions >+test(maxSize[0] + 32, 8); >+ >+debug("") >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/framebuffer-bindings-affected-by-to-data-url.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/framebuffer-bindings-affected-by-to-data-url.html >new file mode 100644 >index 00000000000..78ff900f7f5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/framebuffer-bindings-affected-by-to-data-url.html >@@ -0,0 +1,95 @@ >+<!-- >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Verifies than GL framebuffer bindings do not change by toDataURL()</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="50" height="50"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description("Verifies than GL framebuffer bindings do not change by toDataURL()"); >+ >+var wtu = WebGLTestUtils; >+function test() { >+ var glCanvas = document.getElementById("example"); >+ var gl = wtu.create3DContext(glCanvas, {preserveDrawingBuffer: true, premultipliedAlpha: true}); >+ >+ var program = wtu.setupColorQuad(gl); >+ >+ // Clear backbuffer in red. >+ gl.clearColor(1.0, 0.0, 0.0, 1.0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ wtu.checkCanvas(gl, [255, 0, 0, 255], "should be red"); >+ >+ var fbo = gl.createFramebuffer(); >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 50, 50, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex, 0); >+ if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE) { >+ return; >+ } >+ >+ // Clear the FBO in green. >+ gl.clearColor(0.0, 1.0, 0.0, 1.0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ // backbuffer is still in red. >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ wtu.checkCanvas(gl, [255, 0, 0, 255], "should be red"); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); >+ >+ // toDataURL() calls must not bind backbuffer. >+ glCanvas.toDataURL(); >+ // Calling twice caused a bug due to wrong cache impl; crbug.com/445848 >+ glCanvas.toDataURL(); >+ // It must applies to the FBO, not backbuffer. >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ // backbuffer must be in red, not green. >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ wtu.checkCanvas(gl, [255, 0, 0, 255], "should be red"); >+} >+test(); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/framebuffer-bindings-unaffected-on-resize.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/framebuffer-bindings-unaffected-on-resize.html >new file mode 100644 >index 00000000000..fa281ba75ac >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/framebuffer-bindings-unaffected-on-resize.html >@@ -0,0 +1,106 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Verifies that GL framebuffer bindings do not change when canvas is resized</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="4" height="4"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+enableJSTestPreVerboseLogging(); >+description("Verifies that GL framebuffer bindings do not change when canvas is resized"); >+ >+var err; >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("example"); >+var gl = wtu.create3DContext(canvas); >+var green = [0, 255, 0, 255]; >+var blue = [0, 0, 255, 255]; >+var fboSize = 2; >+shouldBeTrue("fboSize < canvas.width"); >+var fbo = gl.createFramebuffer(); >+gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); >+var fboTex = gl.createTexture(); >+gl.activeTexture(gl.TEXTURE1); >+gl.bindTexture(gl.TEXTURE_2D, fboTex); >+gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, fboTex, 0); >+gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, fboSize, fboSize, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); >+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ >+function checkFBO(color, msg) { >+ wtu.checkCanvasRect(gl, 0, 0, fboSize, fboSize, color, msg); >+ wtu.checkCanvasRect(gl, fboSize, fboSize, fboSize, fboSize, [0, 0, 0, 0], "area outside fbo should be transparent black"); >+} >+ >+// The FBO is 2x2 and it's bound so clearing should clear a 2x2 area >+// and calling read pixels should read the clear color in that 2x2 area >+// and 0,0,0,0 outside that area. >+// >+// If the FBO is no longer bound because of a WebGL implementation error >+// then likely the clear will clear the backbuffer and reading outside >+// the 2x2 area will not be 0,0,0,0 >+ >+function test() { >+ gl.clearColor(0, 0, 1, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ checkFBO(blue, "should be blue"); >+ gl.clearColor(0, 1, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ checkFBO(green, "should be green"); >+} >+ >+debug("test before resizing canvas"); >+test(); >+debug("test after resizing canvas"); >+canvas.width = 8; >+test(); >+debug("test after resizing canvas and waiting for compositing"); >+canvas.width = 16; >+wtu.waitForComposite(function() { >+ test(); >+ finishTest(); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors."); >+}); >+ >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/rapid-resizing.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/rapid-resizing.html >new file mode 100644 >index 00000000000..b18e5fcc405 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/rapid-resizing.html >@@ -0,0 +1,190 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Rapid Resizing Test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas1" style="width: 256px; height: 256px;"> </canvas> >+<canvas id="canvas2" style="width: 256px; height: 256px;"> </canvas> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec2 position; >+void main() >+{ >+ gl_Position = vec4(position, 0.0, 1.0); >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+void main() >+{ >+ gl_FragColor = vec4(0.0,1.0,0.0,1.0); >+} >+</script> >+<script> >+"use strict"; >+ >+description("Verifies that rapidly resizing the canvas works correctly."); >+ >+debug(""); >+debug("Regression test for Chromium <a href='http://crbug.com/299371'>Issue 299371</a> and <a href='http://crbug.com/557848'>Issue 557848</a>"); >+debug(""); >+ >+var err; >+var wtu = WebGLTestUtils; >+var canvas; >+var largeSize = 256; >+var smallSize = 128; >+var currentSize; >+var gl; >+var program; >+var numFrames = 0; >+var testNumber = 0; >+ >+function nextTest() { >+ ++testNumber; >+ numFrames = 0; >+ currentSize = largeSize; >+ if (testNumber > 2) { >+ finishTest(); >+ return; >+ } >+ >+ canvas = document.getElementById("canvas" + testNumber); >+ canvas.width = currentSize; >+ canvas.height = currentSize; >+ var usePreserveDrawingBuffer = (testNumber == 1) ? true : false; >+ debug("Testing preserveDrawingBuffer = " + usePreserveDrawingBuffer); >+ gl = wtu.create3DContext(canvas, { preserveDrawingBuffer: usePreserveDrawingBuffer }); >+ >+ if (!gl) { >+ testFailed("context does not exist"); >+ } else { >+ testPassed("context exists"); >+ >+ gl.clearColor(0, 0, 0, 1); >+ >+ program = wtu.setupProgram(gl, ["vshader", "fshader"], ["position"]); >+ shouldBeNonNull("program"); >+ >+ // Prepare to draw quads >+ var quadSize = 0.1; >+ >+ var vertexBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ >+ // Lower left >+ -1, -1 + quadSize, >+ -1, -1, >+ -1 + quadSize, -1, >+ -1 + quadSize, -1 + quadSize, >+ >+ // Lower right >+ 1 - quadSize, -1 + quadSize, >+ 1 - quadSize, -1, >+ 1, -1, >+ 1, -1 + quadSize, >+ >+ // Upper right >+ 1 - quadSize, 1, >+ 1 - quadSize, 1 - quadSize, >+ 1, 1 - quadSize, >+ 1, 1, >+ >+ // Upper left >+ -1, 1, >+ -1, 1 - quadSize, >+ -1 + quadSize, 1 - quadSize, >+ -1 + quadSize, 1 >+ ]), gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(0); >+ gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0); >+ >+ var indexBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array([ >+ 0, 1, 2, >+ 0, 2, 3, >+ >+ 4, 5, 6, >+ 4, 6, 7, >+ >+ 8, 9, 10, >+ 8, 10, 11, >+ >+ 12, 13, 14, >+ 12, 14, 15 >+ ]), gl.STATIC_DRAW); >+ >+ wtu.requestAnimFrame(render); >+ } >+} >+ >+function render() { >+ if (++numFrames < 30) { >+ if (currentSize == largeSize) { >+ canvas.height = smallSize; >+ currentSize = smallSize; >+ } else { >+ canvas.height = largeSize; >+ currentSize = largeSize; >+ } >+ } >+ >+ gl.viewport(0, 0, largeSize, currentSize); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ gl.drawElements(gl.TRIANGLES, 24, gl.UNSIGNED_SHORT, 0); >+ >+ // Check the four corners >+ var green = [ 0, 255, 0, 255 ]; >+ var inset = 3; >+ wtu.checkCanvasRect(gl, inset, inset, 1, 1, green, "lower left should be green", 1); >+ wtu.checkCanvasRect(gl, largeSize - inset, inset, 1, 1, green, "lower right should be green", 1); >+ wtu.checkCanvasRect(gl, inset, currentSize - inset, 1, 1, green, "upper left should be green", 1); >+ wtu.checkCanvasRect(gl, largeSize - inset, currentSize - inset, 1, 1, green, "upper right should be green", 1); >+ >+ if (numFrames < 60) { >+ wtu.requestAnimFrame(render); >+ } else { >+ wtu.requestAnimFrame(nextTest); >+ } >+} >+ >+wtu.requestAnimFrame(nextTest); >+ >+</script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/render-after-resize-test.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/render-after-resize-test.html >new file mode 100644 >index 00000000000..3077993e75d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/render-after-resize-test.html >@@ -0,0 +1,96 @@ >+<!-- >+ >+/* >+** Copyright (c) 2017 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL render after resize test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<canvas style="width: 100px, height: 100px; border: 1px solid blue;" id="c"></canvas> >+<div id="console"></div> >+<script> >+description("This test ensures WebGL implementations can render correctly after resizing the canvas."); >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("c"); >+shouldBeTrue("gl != null"); >+ >+var positionLocation = 0; >+var texcoordLocation = 1; >+var program = wtu.setupColorQuad(gl, positionLocation); >+var colorLocation = gl.getUniformLocation(program, 'u_color'); >+gl.uniform4fv(colorLocation, [0.0, 1.0, 0.0, 1.0]); >+ >+const smallWidth = 300; >+const smallHeight = 150; >+// Changing this size to something smaller produces >+// different results. Sometimes wrong, sometimes correct. >+const largeWidth = 1200; >+const largeHeight = 672; >+ >+function render() { >+ gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); >+ >+ gl.enable(gl.DEPTH_TEST); >+ gl.clearColor(1,0,0,1); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ >+ gl.useProgram(program); >+ wtu.drawUnitQuad(gl); >+} >+ >+function checkForQuad(ctx) { >+ let w = ctx.drawingBufferWidth; >+ let h = ctx.drawingBufferHeight; >+ >+ wtu.checkCanvasRect(gl, 0, 0, w, h, [ 0, 255, 0, 255 ]); >+} >+ >+gl.canvas.width = smallWidth; >+gl.canvas.height = smallHeight; >+render(); >+checkForQuad(gl); // passes >+ >+gl.canvas.width = largeWidth; >+gl.canvas.height = largeHeight; >+gl.canvas.width = smallWidth; >+gl.canvas.height = smallHeight; >+render(); >+checkForQuad(gl); // fails (almost all the time) >+ >+finishTest(); >+ >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/texture-bindings-unaffected-on-resize.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/texture-bindings-unaffected-on-resize.html >new file mode 100644 >index 00000000000..898195ccdf1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/texture-bindings-unaffected-on-resize.html >@@ -0,0 +1,87 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="4" height="4"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description('Verifies that GL texture bindings do not change when canvas is resized'); >+ >+var err; >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("example"); >+var gl = wtu.create3DContext(canvas); >+var program = wtu.setupTexturedQuad(gl); >+ >+var green = [0, 255, 0, 255]; >+var blue = [0, 0, 255, 255]; >+var tex0 = gl.createTexture(); >+wtu.fillTexture(gl, tex0, 1, 1, blue, 0); >+gl.activeTexture(gl.TEXTURE1) >+var tex1 = gl.createTexture(); >+wtu.fillTexture(gl, tex1, 1, 1, green, 0); >+ >+var loc = gl.getUniformLocation(program, "tex"); >+ >+function test() { >+ gl.viewport(0, 0, canvas.width, canvas.height); >+ gl.uniform1i(loc, 0); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas(gl, blue, "should be blue"); >+ gl.uniform1i(loc, 1); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas(gl, green, "should be green"); >+} >+ >+debug("test before resizing canvas"); >+test(); >+debug("test after resizing canvas"); >+canvas.width = 8; >+test(); >+debug("test after resizing canvas and waiting for compositing"); >+canvas.width = 16; >+wtu.waitForComposite(function() { >+ test(); >+ finishTest(); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors."); >+}); >+ >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/to-data-url-test.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/to-data-url-test.html >new file mode 100644 >index 00000000000..b400afbba77 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/to-data-url-test.html >@@ -0,0 +1,129 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL toDataURL test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas width="20" height="20" style="border: 1px solid black; width: 16px; height: 16px" id="c3d"></canvas> >+<canvas width="20" height="20" style="border: 1px solid black; width: 16px; height: 16px" id="c2d"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script type="application/javascript"> >+var wtu = WebGLTestUtils; >+var numTests = 10; >+var gl; >+var ctx; >+ >+var main = function() { >+ description(); >+ ctx = document.getElementById("c2d").getContext("2d"); >+ gl = wtu.create3DContext("c3d"); >+ >+ if (!gl) { >+ testFailed("can't create 3d context"); >+ return; >+ } >+ >+ var clearRect = function(gl, x, y, width, height, color) { >+ gl.clearColor(color[0] / 255, color[1] / 255, color[2] / 255, color[3] / 255); >+ gl.scissor(x, y, width, height); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ }; >+ >+ var testSize = function(gl, width, height, callback) { >+ debug("testing " + width + " by " + height); >+ gl.canvas.width = width; >+ gl.canvas.height = height; >+ gl.viewport(0, 0, width, height); >+ gl.enable(gl.SCISSOR_TEST); >+ >+ var bottomColor = [255, 0, 0, 255]; >+ var topColor = [0, 255, 0, 255]; >+ var rightColor = [0, 0, 255, 255]; >+ var halfHeight = Math.floor(height / 2); >+ var topHeight = height - halfHeight; >+ var canvasTopHeight = height - topHeight; >+ clearRect(gl, 0, 0, width, halfHeight, bottomColor); >+ clearRect(gl, 0, halfHeight, width, topHeight, topColor); >+ clearRect(gl, width - 1, 0, 1, height, rightColor); >+ >+ // Performs gl.canvas.toDataURL() internally >+ var img = wtu.makeImageFromCanvas(gl.canvas, function() { >+ ctx.canvas.width = width; >+ ctx.canvas.height = height; >+ ctx.imageSmoothingEnabled = false; >+ ctx.drawImage(img, 0, 0); >+ wtu.checkCanvasRect(ctx, 0, 0, width - 1, topHeight, topColor); >+ wtu.checkCanvasRect(ctx, 0, topHeight, width - 1, halfHeight, bottomColor); >+ wtu.checkCanvasRect(ctx, width - 1, 0, 1, height, rightColor); >+ debug(""); >+ callback(); >+ }); >+ }; >+ >+ var tests = [ >+ { width: 16 , height: 16 , }, >+ { width: 16 - 1, height: 16 , }, >+ { width: 16 - 1, height: 16 - 1, }, >+ { width: 16 + 1, height: 16 - 1, }, >+ { width: 16 - 1, height: 16 + 1, }, >+ { width: 256 , height: 256 , }, >+ { width: 256 - 1, height: 256 , }, >+ { width: 256 - 1, height: 256 - 1, }, >+ { width: 256 + 1, height: 256 - 1, }, >+ { width: 256 - 1, height: 256 + 1, }, >+ { width: 512 , height: 512 , }, >+ { width: 512 - 1, height: 512 , }, >+ { width: 512 - 1, height: 512 - 1, }, >+ { width: 512 + 1, height: 512 - 1, }, >+ { width: 512 - 1, height: 512 + 1, }, >+ ]; >+ var testIndex = 0; >+ var runNextTest = function() { >+ if (testIndex == tests.length) { >+ finishTest(); >+ return; >+ } >+ var test = tests[testIndex++]; >+ testSize(gl, test.width, test.height, function() { >+ setTimeout(runNextTest, 0); >+ }) >+ }; >+ runNextTest(); >+}; >+main(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/viewport-unchanged-upon-resize.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/viewport-unchanged-upon-resize.html >new file mode 100644 >index 00000000000..cfc4cb016e6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/canvas/viewport-unchanged-upon-resize.html >@@ -0,0 +1,113 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec3 g_Position; >+ >+void main() >+{ >+ gl_Position = vec4(g_Position.x, g_Position.y, g_Position.z, 1.0); >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+void main() >+{ >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+} >+</script> >+ >+</head> >+<body> >+<canvas id="example" width="4" height="4"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description('Verifies that GL viewport does not change when canvas is resized'); >+ >+var err; >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["g_Position"]); >+ >+var vertices = new Float32Array([ >+ 1.0, 1.0, 0.0, >+ -1.0, 1.0, 0.0, >+ -1.0, -1.0, 0.0, >+ 1.0, 1.0, 0.0, >+ -1.0, -1.0, 0.0, >+ 1.0, -1.0, 0.0]); >+var vbo = gl.createBuffer(); >+gl.bindBuffer(gl.ARRAY_BUFFER, vbo); >+gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW); >+ >+gl.enableVertexAttribArray(0); >+gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+ >+// Clear and set up >+gl.clearColor(0, 0, 1, 1); >+gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+gl.useProgram(program); >+// Draw the triangle pair to the frame buffer >+gl.drawArrays(gl.TRIANGLES, 0, 6); >+ >+// Ensure that the frame buffer is red at the sampled pixel >+wtu.checkCanvasRect(gl, 2, 2, 1, 1, [255, 0, 0, 255]); >+ >+// Now resize the canvas >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "No GL errors before resizing the canvas"); >+var canvas = gl.canvas; >+canvas.width = 8; >+canvas.height = 8; >+err = gl.getError(); >+// Some implementations might lost the context when resizing >+if (err == gl.CONTEXT_LOST_WEBGL) { >+ testPassed("canvas lost context on resize"); >+} else { >+ shouldBe("err", "gl.NO_ERROR"); >+ // Do another render >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ gl.drawArrays(gl.TRIANGLES, 0, 6); >+ // This time, because we did not change the viewport, it should >+ // still be (0, 0, 4, 4), so only the lower-left quadrant should >+ // have been filled. >+ wtu.checkCanvasRect(gl, 6, 6, 1, 1, [0, 0, 255, 255]); >+} >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/00_test_list.txt >new file mode 100644 >index 00000000000..078cbe8f920 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/00_test_list.txt >@@ -0,0 +1,19 @@ >+--max-version 1.9.9 constants-and-properties.html >+--min-version 1.0.2 context-attribute-preserve-drawing-buffer.html >+context-attributes-alpha-depth-stencil-antialias.html >+--min-version 1.0.4 context-size-change.html >+--min-version 1.0.4 context-no-alpha-fbo-with-alpha.html >+--min-version 1.0.2 --slow context-creation-and-destruction.html >+--min-version 1.0.3 --slow context-creation.html >+--min-version 1.0.3 --slow context-eviction-with-garbage-collection.html >+--min-version 1.0.3 context-hidden-alpha.html >+--min-version 1.0.2 context-release-upon-reload.html >+--min-version 1.0.2 context-release-with-workers.html >+context-lost-restored.html >+context-lost.html >+--max-version 1.9.9 context-type-test.html >+incorrect-context-object-behaviour.html >+--max-version 1.9.9 methods.html >+premultiplyalpha-test.html >+resource-sharing-test.html >+--min-version 1.0.4 user-defined-properties-on-context.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/constants-and-properties.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/constants-and-properties.html >new file mode 100644 >index 00000000000..57dab9fabe2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/constants-and-properties.html >@@ -0,0 +1,565 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Constants and Properties Test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> >+<script> >+"use strict"; >+description("This test ensures that the WebGL context has all the constants and (non-function) properties in the specification."); >+ >+var constants = { >+ /* ClearBufferMask */ >+DEPTH_BUFFER_BIT : 0x00000100, >+STENCIL_BUFFER_BIT : 0x00000400, >+COLOR_BUFFER_BIT : 0x00004000, >+ >+ /* BeginMode */ >+POINTS : 0x0000, >+LINES : 0x0001, >+LINE_LOOP : 0x0002, >+LINE_STRIP : 0x0003, >+TRIANGLES : 0x0004, >+TRIANGLE_STRIP : 0x0005, >+TRIANGLE_FAN : 0x0006, >+ >+ /* AlphaFunction (not supported in ES20) */ >+ /* NEVER */ >+ /* LESS */ >+ /* EQUAL */ >+ /* LEQUAL */ >+ /* GREATER */ >+ /* NOTEQUAL */ >+ /* GEQUAL */ >+ /* ALWAYS */ >+ >+ /* BlendingFactorDest */ >+ZERO : 0, >+ONE : 1, >+SRC_COLOR : 0x0300, >+ONE_MINUS_SRC_COLOR : 0x0301, >+SRC_ALPHA : 0x0302, >+ONE_MINUS_SRC_ALPHA : 0x0303, >+DST_ALPHA : 0x0304, >+ONE_MINUS_DST_ALPHA : 0x0305, >+ >+ /* BlendingFactorSrc */ >+ /* ZERO */ >+ /* ONE */ >+DST_COLOR : 0x0306, >+ONE_MINUS_DST_COLOR : 0x0307, >+SRC_ALPHA_SATURATE : 0x0308, >+ /* SRC_ALPHA */ >+ /* ONE_MINUS_SRC_ALPHA */ >+ /* DST_ALPHA */ >+ /* ONE_MINUS_DST_ALPHA */ >+ >+ /* BlendEquationSeparate */ >+FUNC_ADD : 0x8006, >+BLEND_EQUATION : 0x8009, >+BLEND_EQUATION_RGB : 0x8009, /* same as BLEND_EQUATION */ >+BLEND_EQUATION_ALPHA : 0x883D, >+ >+ /* BlendSubtract */ >+FUNC_SUBTRACT : 0x800A, >+FUNC_REVERSE_SUBTRACT : 0x800B, >+ >+ /* Separate Blend Functions */ >+BLEND_DST_RGB : 0x80C8, >+BLEND_SRC_RGB : 0x80C9, >+BLEND_DST_ALPHA : 0x80CA, >+BLEND_SRC_ALPHA : 0x80CB, >+CONSTANT_COLOR : 0x8001, >+ONE_MINUS_CONSTANT_COLOR : 0x8002, >+CONSTANT_ALPHA : 0x8003, >+ONE_MINUS_CONSTANT_ALPHA : 0x8004, >+BLEND_COLOR : 0x8005, >+ >+ /* Buffer Objects */ >+ARRAY_BUFFER : 0x8892, >+ELEMENT_ARRAY_BUFFER : 0x8893, >+ARRAY_BUFFER_BINDING : 0x8894, >+ELEMENT_ARRAY_BUFFER_BINDING : 0x8895, >+ >+STREAM_DRAW : 0x88E0, >+STATIC_DRAW : 0x88E4, >+DYNAMIC_DRAW : 0x88E8, >+ >+BUFFER_SIZE : 0x8764, >+BUFFER_USAGE : 0x8765, >+ >+CURRENT_VERTEX_ATTRIB : 0x8626, >+ >+ /* CullFaceMode */ >+FRONT : 0x0404, >+BACK : 0x0405, >+FRONT_AND_BACK : 0x0408, >+ >+ /* DepthFunction */ >+ /* NEVER */ >+ /* LESS */ >+ /* EQUAL */ >+ /* LEQUAL */ >+ /* GREATER */ >+ /* NOTEQUAL */ >+ /* GEQUAL */ >+ /* ALWAYS */ >+ >+ /* EnableCap */ >+ /* TEXTURE_2D */ >+CULL_FACE : 0x0B44, >+BLEND : 0x0BE2, >+DITHER : 0x0BD0, >+STENCIL_TEST : 0x0B90, >+DEPTH_TEST : 0x0B71, >+SCISSOR_TEST : 0x0C11, >+POLYGON_OFFSET_FILL : 0x8037, >+SAMPLE_ALPHA_TO_COVERAGE : 0x809E, >+SAMPLE_COVERAGE : 0x80A0, >+ >+ /* ErrorCode */ >+NO_ERROR : 0, >+INVALID_ENUM : 0x0500, >+INVALID_VALUE : 0x0501, >+INVALID_OPERATION : 0x0502, >+OUT_OF_MEMORY : 0x0505, >+ >+ /* FrontFaceDirection */ >+CW : 0x0900, >+CCW : 0x0901, >+ >+ /* GetPName */ >+LINE_WIDTH : 0x0B21, >+ALIASED_POINT_SIZE_RANGE : 0x846D, >+ALIASED_LINE_WIDTH_RANGE : 0x846E, >+CULL_FACE_MODE : 0x0B45, >+FRONT_FACE : 0x0B46, >+DEPTH_RANGE : 0x0B70, >+DEPTH_WRITEMASK : 0x0B72, >+DEPTH_CLEAR_VALUE : 0x0B73, >+DEPTH_FUNC : 0x0B74, >+STENCIL_CLEAR_VALUE : 0x0B91, >+STENCIL_FUNC : 0x0B92, >+STENCIL_FAIL : 0x0B94, >+STENCIL_PASS_DEPTH_FAIL : 0x0B95, >+STENCIL_PASS_DEPTH_PASS : 0x0B96, >+STENCIL_REF : 0x0B97, >+STENCIL_VALUE_MASK : 0x0B93, >+STENCIL_WRITEMASK : 0x0B98, >+STENCIL_BACK_FUNC : 0x8800, >+STENCIL_BACK_FAIL : 0x8801, >+STENCIL_BACK_PASS_DEPTH_FAIL : 0x8802, >+STENCIL_BACK_PASS_DEPTH_PASS : 0x8803, >+STENCIL_BACK_REF : 0x8CA3, >+STENCIL_BACK_VALUE_MASK : 0x8CA4, >+STENCIL_BACK_WRITEMASK : 0x8CA5, >+VIEWPORT : 0x0BA2, >+SCISSOR_BOX : 0x0C10, >+ /* SCISSOR_TEST */ >+COLOR_CLEAR_VALUE : 0x0C22, >+COLOR_WRITEMASK : 0x0C23, >+UNPACK_ALIGNMENT : 0x0CF5, >+PACK_ALIGNMENT : 0x0D05, >+MAX_TEXTURE_SIZE : 0x0D33, >+MAX_VIEWPORT_DIMS : 0x0D3A, >+SUBPIXEL_BITS : 0x0D50, >+RED_BITS : 0x0D52, >+GREEN_BITS : 0x0D53, >+BLUE_BITS : 0x0D54, >+ALPHA_BITS : 0x0D55, >+DEPTH_BITS : 0x0D56, >+STENCIL_BITS : 0x0D57, >+POLYGON_OFFSET_UNITS : 0x2A00, >+ /* POLYGON_OFFSET_FILL */ >+POLYGON_OFFSET_FACTOR : 0x8038, >+TEXTURE_BINDING_2D : 0x8069, >+SAMPLE_BUFFERS : 0x80A8, >+SAMPLES : 0x80A9, >+SAMPLE_COVERAGE_VALUE : 0x80AA, >+SAMPLE_COVERAGE_INVERT : 0x80AB, >+ >+ /* GetTextureParameter */ >+ /* TEXTURE_MAG_FILTER */ >+ /* TEXTURE_MIN_FILTER */ >+ /* TEXTURE_WRAP_S */ >+ /* TEXTURE_WRAP_T */ >+ >+COMPRESSED_TEXTURE_FORMATS : 0x86A3, >+ >+ /* HintMode */ >+DONT_CARE : 0x1100, >+FASTEST : 0x1101, >+NICEST : 0x1102, >+ >+ /* HintTarget */ >+GENERATE_MIPMAP_HINT : 0x8192, >+ >+ /* DataType */ >+BYTE : 0x1400, >+UNSIGNED_BYTE : 0x1401, >+SHORT : 0x1402, >+UNSIGNED_SHORT : 0x1403, >+INT : 0x1404, >+UNSIGNED_INT : 0x1405, >+FLOAT : 0x1406, >+ >+ /* PixelFormat */ >+DEPTH_COMPONENT : 0x1902, >+ALPHA : 0x1906, >+RGB : 0x1907, >+RGBA : 0x1908, >+LUMINANCE : 0x1909, >+LUMINANCE_ALPHA : 0x190A, >+ >+ /* PixelType */ >+ /* UNSIGNED_BYTE */ >+UNSIGNED_SHORT_4_4_4_4 : 0x8033, >+UNSIGNED_SHORT_5_5_5_1 : 0x8034, >+UNSIGNED_SHORT_5_6_5 : 0x8363, >+ >+ /* Shaders */ >+FRAGMENT_SHADER : 0x8B30, >+VERTEX_SHADER : 0x8B31, >+MAX_VERTEX_ATTRIBS : 0x8869, >+MAX_VERTEX_UNIFORM_VECTORS : 0x8DFB, >+MAX_VARYING_VECTORS : 0x8DFC, >+MAX_COMBINED_TEXTURE_IMAGE_UNITS : 0x8B4D, >+MAX_VERTEX_TEXTURE_IMAGE_UNITS : 0x8B4C, >+MAX_TEXTURE_IMAGE_UNITS : 0x8872, >+MAX_FRAGMENT_UNIFORM_VECTORS : 0x8DFD, >+SHADER_TYPE : 0x8B4F, >+DELETE_STATUS : 0x8B80, >+LINK_STATUS : 0x8B82, >+VALIDATE_STATUS : 0x8B83, >+ATTACHED_SHADERS : 0x8B85, >+ACTIVE_UNIFORMS : 0x8B86, >+ACTIVE_ATTRIBUTES : 0x8B89, >+SHADING_LANGUAGE_VERSION : 0x8B8C, >+CURRENT_PROGRAM : 0x8B8D, >+ >+ /* StencilFunction */ >+NEVER : 0x0200, >+LESS : 0x0201, >+EQUAL : 0x0202, >+LEQUAL : 0x0203, >+GREATER : 0x0204, >+NOTEQUAL : 0x0205, >+GEQUAL : 0x0206, >+ALWAYS : 0x0207, >+ >+ /* StencilOp */ >+ /* ZERO */ >+KEEP : 0x1E00, >+REPLACE : 0x1E01, >+INCR : 0x1E02, >+DECR : 0x1E03, >+INVERT : 0x150A, >+INCR_WRAP : 0x8507, >+DECR_WRAP : 0x8508, >+ >+ /* StringName */ >+VENDOR : 0x1F00, >+RENDERER : 0x1F01, >+VERSION : 0x1F02, >+ >+ /* TextureMagFilter */ >+NEAREST : 0x2600, >+LINEAR : 0x2601, >+ >+ /* TextureMinFilter */ >+ /* NEAREST */ >+ /* LINEAR */ >+NEAREST_MIPMAP_NEAREST : 0x2700, >+LINEAR_MIPMAP_NEAREST : 0x2701, >+NEAREST_MIPMAP_LINEAR : 0x2702, >+LINEAR_MIPMAP_LINEAR : 0x2703, >+ >+ /* TextureParameterName */ >+TEXTURE_MAG_FILTER : 0x2800, >+TEXTURE_MIN_FILTER : 0x2801, >+TEXTURE_WRAP_S : 0x2802, >+TEXTURE_WRAP_T : 0x2803, >+ >+ /* TextureTarget */ >+TEXTURE_2D : 0x0DE1, >+TEXTURE : 0x1702, >+ >+TEXTURE_CUBE_MAP : 0x8513, >+TEXTURE_BINDING_CUBE_MAP : 0x8514, >+TEXTURE_CUBE_MAP_POSITIVE_X : 0x8515, >+TEXTURE_CUBE_MAP_NEGATIVE_X : 0x8516, >+TEXTURE_CUBE_MAP_POSITIVE_Y : 0x8517, >+TEXTURE_CUBE_MAP_NEGATIVE_Y : 0x8518, >+TEXTURE_CUBE_MAP_POSITIVE_Z : 0x8519, >+TEXTURE_CUBE_MAP_NEGATIVE_Z : 0x851A, >+MAX_CUBE_MAP_TEXTURE_SIZE : 0x851C, >+ >+ /* TextureUnit */ >+TEXTURE0 : 0x84C0, >+TEXTURE1 : 0x84C1, >+TEXTURE2 : 0x84C2, >+TEXTURE3 : 0x84C3, >+TEXTURE4 : 0x84C4, >+TEXTURE5 : 0x84C5, >+TEXTURE6 : 0x84C6, >+TEXTURE7 : 0x84C7, >+TEXTURE8 : 0x84C8, >+TEXTURE9 : 0x84C9, >+TEXTURE10 : 0x84CA, >+TEXTURE11 : 0x84CB, >+TEXTURE12 : 0x84CC, >+TEXTURE13 : 0x84CD, >+TEXTURE14 : 0x84CE, >+TEXTURE15 : 0x84CF, >+TEXTURE16 : 0x84D0, >+TEXTURE17 : 0x84D1, >+TEXTURE18 : 0x84D2, >+TEXTURE19 : 0x84D3, >+TEXTURE20 : 0x84D4, >+TEXTURE21 : 0x84D5, >+TEXTURE22 : 0x84D6, >+TEXTURE23 : 0x84D7, >+TEXTURE24 : 0x84D8, >+TEXTURE25 : 0x84D9, >+TEXTURE26 : 0x84DA, >+TEXTURE27 : 0x84DB, >+TEXTURE28 : 0x84DC, >+TEXTURE29 : 0x84DD, >+TEXTURE30 : 0x84DE, >+TEXTURE31 : 0x84DF, >+ACTIVE_TEXTURE : 0x84E0, >+ >+ /* TextureWrapMode */ >+REPEAT : 0x2901, >+CLAMP_TO_EDGE : 0x812F, >+MIRRORED_REPEAT : 0x8370, >+ >+ /* Uniform Types */ >+FLOAT_VEC2 : 0x8B50, >+FLOAT_VEC3 : 0x8B51, >+FLOAT_VEC4 : 0x8B52, >+INT_VEC2 : 0x8B53, >+INT_VEC3 : 0x8B54, >+INT_VEC4 : 0x8B55, >+BOOL : 0x8B56, >+BOOL_VEC2 : 0x8B57, >+BOOL_VEC3 : 0x8B58, >+BOOL_VEC4 : 0x8B59, >+FLOAT_MAT2 : 0x8B5A, >+FLOAT_MAT3 : 0x8B5B, >+FLOAT_MAT4 : 0x8B5C, >+SAMPLER_2D : 0x8B5E, >+SAMPLER_CUBE : 0x8B60, >+ >+ /* Vertex Arrays */ >+VERTEX_ATTRIB_ARRAY_ENABLED : 0x8622, >+VERTEX_ATTRIB_ARRAY_SIZE : 0x8623, >+VERTEX_ATTRIB_ARRAY_STRIDE : 0x8624, >+VERTEX_ATTRIB_ARRAY_TYPE : 0x8625, >+VERTEX_ATTRIB_ARRAY_NORMALIZED : 0x886A, >+VERTEX_ATTRIB_ARRAY_POINTER : 0x8645, >+VERTEX_ATTRIB_ARRAY_BUFFER_BINDING : 0x889F, >+ >+ /* Read Format */ >+IMPLEMENTATION_COLOR_READ_TYPE : 0x8B9A, >+IMPLEMENTATION_COLOR_READ_FORMAT : 0x8B9B, >+ >+ /* Shader Source */ >+COMPILE_STATUS : 0x8B81, >+ >+ /* Shader Precision-Specified Types */ >+LOW_FLOAT : 0x8DF0, >+MEDIUM_FLOAT : 0x8DF1, >+HIGH_FLOAT : 0x8DF2, >+LOW_INT : 0x8DF3, >+MEDIUM_INT : 0x8DF4, >+HIGH_INT : 0x8DF5, >+ >+ /* Framebuffer Object. */ >+FRAMEBUFFER : 0x8D40, >+RENDERBUFFER : 0x8D41, >+ >+RGBA4 : 0x8056, >+RGB5_A1 : 0x8057, >+RGB565 : 0x8D62, >+DEPTH_COMPONENT16 : 0x81A5, >+STENCIL_INDEX8 : 0x8D48, >+DEPTH_STENCIL : 0x84F9, >+ >+RENDERBUFFER_WIDTH : 0x8D42, >+RENDERBUFFER_HEIGHT : 0x8D43, >+RENDERBUFFER_INTERNAL_FORMAT : 0x8D44, >+RENDERBUFFER_RED_SIZE : 0x8D50, >+RENDERBUFFER_GREEN_SIZE : 0x8D51, >+RENDERBUFFER_BLUE_SIZE : 0x8D52, >+RENDERBUFFER_ALPHA_SIZE : 0x8D53, >+RENDERBUFFER_DEPTH_SIZE : 0x8D54, >+RENDERBUFFER_STENCIL_SIZE : 0x8D55, >+ >+FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE : 0x8CD0, >+FRAMEBUFFER_ATTACHMENT_OBJECT_NAME : 0x8CD1, >+FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL : 0x8CD2, >+FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE : 0x8CD3, >+ >+COLOR_ATTACHMENT0 : 0x8CE0, >+DEPTH_ATTACHMENT : 0x8D00, >+STENCIL_ATTACHMENT : 0x8D20, >+DEPTH_STENCIL_ATTACHMENT : 0x821A, >+ >+NONE : 0, >+ >+FRAMEBUFFER_COMPLETE : 0x8CD5, >+FRAMEBUFFER_INCOMPLETE_ATTACHMENT : 0x8CD6, >+FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT : 0x8CD7, >+FRAMEBUFFER_INCOMPLETE_DIMENSIONS : 0x8CD9, >+FRAMEBUFFER_UNSUPPORTED : 0x8CDD, >+ >+FRAMEBUFFER_BINDING : 0x8CA6, >+RENDERBUFFER_BINDING : 0x8CA7, >+MAX_RENDERBUFFER_SIZE : 0x84E8, >+ >+INVALID_FRAMEBUFFER_OPERATION : 0x0506, >+ >+/* WebGL-specific enums */ >+UNPACK_FLIP_Y_WEBGL : 0x9240, >+UNPACK_PREMULTIPLY_ALPHA_WEBGL : 0x9241, >+CONTEXT_LOST_WEBGL : 0x9242, >+UNPACK_COLORSPACE_CONVERSION_WEBGL : 0x9243, >+BROWSER_DEFAULT_WEBGL : 0x9244 >+}; >+ >+// Other non-function properties on the WebGL object >+var otherProperties = { >+drawingBufferWidth : "number", >+drawingBufferHeight : "number", >+canvas : "implementation-dependent" >+}; >+ >+// Properties to be ignored (as a list of strings) because they were >+// added in versions of the spec that are backward-compatible with >+// this version >+var ignoredProperties = [ >+]; >+ >+// Constants removed from the WebGL spec compared to ES 2.0 >+var removedConstants = { >+NUM_COMPRESSED_TEXTURE_FORMATS : 0x86A2, >+FIXED : 0x140C, >+ACTIVE_UNIFORM_MAX_LENGTH : 0x8B87, >+ACTIVE_ATTRIBUTE_MAX_LENGTH : 0x8B8A, >+EXTENSIONS : 0x1F03, >+INFO_LOG_LENGTH : 0x8B84, >+SHADER_SOURCE_LENGTH : 0x8B88, >+SHADER_COMPILER : 0x8DFA, >+SHADER_BINARY_FORMATS : 0x8DF8, >+NUM_SHADER_BINARY_FORMATS : 0x8DF9, >+}; >+ >+function assertProperty(v, p) { >+ if (p in v) { >+ return true; >+ } else { >+ testFailed("Property does not exist: " + p) >+ return false; >+ } >+} >+ >+function assertNoProperty(v, p) { >+ if (p in v) { >+ testFailed("Property is defined and should not be: " + p) >+ return false; >+ } else { >+ return true; >+ } >+} >+ >+function assertMsg_(bool, msg) { >+ if (!bool) // show only failures to avoid spamming result list >+ assertMsg(bool, msg); >+ return bool; >+} >+ >+debug(""); >+debug("Canvas.getContext"); >+ >+var canvas = document.getElementById("canvas"); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(canvas); >+var passed = true; >+for (var i in constants) { >+ var r = assertProperty(gl, i) && assertMsg_(gl[i] == constants[i], "Property "+i+" value test "+gl[i]+" == "+constants[i]); >+ passed = passed && r; >+} >+if (passed) { >+ testPassed("All WebGL constants found to have correct values."); >+} >+passed = true; >+for (var i in removedConstants) { >+ var r = assertNoProperty(gl, i); >+ passed = passed && r; >+} >+if (passed) { >+ testPassed("All constants removed from WebGL spec were absent from WebGL context."); >+} >+var extended = false; >+for (var i in gl) { >+ if (constants[i] !== undefined) { >+ // OK; known constant >+ } else if (ignoredProperties.indexOf(i) != -1) { >+ // OK; constant that should be ignored because it was added in a later version of the spec >+ } else if (otherProperties[i] !== undefined && >+ (otherProperties[i] == "implementation-dependent" || typeof gl[i] == otherProperties[i])) { >+ // OK; known property of known type >+ } else if (typeof gl[i] != "function" && removedConstants[i] === undefined) { >+ if (!extended) { >+ extended = true; >+ testFailed("Also found the following extra properties:"); >+ } >+ testFailed(i); >+ } >+} >+ >+if (!extended) { >+ testPassed("No extra properties found on WebGL context."); >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-attribute-preserve-drawing-buffer.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-attribute-preserve-drawing-buffer.html >new file mode 100644 >index 00000000000..cd443164a81 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-attribute-preserve-drawing-buffer.html >@@ -0,0 +1,129 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<style> >+.pattern { >+ white-space: nowrap; >+ display: inline-block; >+} >+canvas { >+ width:50px; >+ height:50px; >+} >+.square { >+ display:inline-block; >+ width:50px; >+ height:50px; >+ background-color:red; >+} >+</style> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+function checkResult(ctx1, ctx2, preserve) { >+ var imgData1 = ctx1.getImageData(0,0,1,1); >+ var imgData2 = ctx2.getImageData(0,0,1,1); >+ var correct1 = [255,0,0,255]; >+ var correct2 = preserve ? [255,0,0,255] : [0,0,0,255]; >+ var ok1 = true; >+ var ok2 = true; >+ for (var p = 0; p < 4; ++p) { >+ if (imgData1.data[p] != correct1[p]) >+ ok1 = false; >+ if (imgData2.data[p] != correct2[p]) >+ ok2 = false; >+ } >+ if (ok1 && ok2) >+ testPassed('Rendered ok with preserveDrawingBuffer ' + preserve +'.'); >+ else >+ testFailed('Did not render ok with preserveDrawingBuffer ' + preserve + '.'); >+ if (preserve) { >+ finishTest() >+ } else { >+ runTest(true); >+ } >+} >+ >+function runTest(preserve) { >+ var c1 = document.getElementById('c' + (preserve * 3 + 1)); >+ var c2 = document.getElementById('c' + (preserve * 3 + 2)); >+ var c3 = document.getElementById('c' + (preserve * 3 + 3)); >+ var ctx1 = c1.getContext('2d'); >+ var ctx2 = c2.getContext('2d'); >+ var gl = wtu.create3DContext(c3, { alpha:false, preserveDrawingBuffer:preserve }); >+ gl.clearColor(1, 0, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ ctx1.drawImage(c3, 0, 0); >+ wtu.waitForComposite(function() { >+ ctx2.drawImage(c3, 0, 0); >+ checkResult(ctx1, ctx2, preserve); >+ }); >+} >+</script> >+</head> >+<body> >+<div class="pattern"> >+ <canvas id='c1'></canvas> >+ <canvas id='c2'></canvas> >+ <canvas id='c3'></canvas> >+</div> >+<span>should look like</span> >+<div class="pattern"> >+ <div class='square'></div> >+ <div class='square' style='background-color:black'></div> >+ <div class='square'></div> >+</div> >+<hr /> >+<div class="pattern"> >+ <canvas id='c4'></canvas> >+ <canvas id='c5'></canvas> >+ <canvas id='c6'></canvas> >+</div> >+<span>should look like</span> >+<div class="pattern"> >+ <div class='square'></div> >+ <div class='square'></div> >+ <div class='square'></div> >+</div> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description('Verify that preserveDrawingBuffer attribute is honored.'); >+runTest(false); >+var successfullyParsed = true; >+shouldBeTrue("successfullyParsed"); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-attributes-alpha-depth-stencil-antialias.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-attributes-alpha-depth-stencil-antialias.html >new file mode 100644 >index 00000000000..6e69349a72f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-attributes-alpha-depth-stencil-antialias.html >@@ -0,0 +1,354 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec3 pos; >+attribute vec4 colorIn; >+varying vec4 color; >+ >+void main() >+{ >+ color = colorIn; >+ gl_Position = vec4(pos.xyz, 1.0); >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+ >+varying vec4 color; >+ >+void main() >+{ >+ gl_FragColor = color; >+} >+</script> >+ >+<script> >+"use strict"; >+ >+// These four declarations need to be global for "shouldBe" to see them >+var wtu = WebGLTestUtils; >+var gl; >+var contextAttribs = null; >+var redChannels = [0, 0, 0]; >+var correctColor = null; >+var framebuffer; >+var fbHasColor; >+var fbHasDepth; >+var fbHasStencil; >+ >+function init() >+{ >+ description('Verify WebGLContextAttributes are working as specified, including alpha, depth, stencil, antialias, but not premultipliedAlpha'); >+ >+ runTest(); >+} >+ >+function getWebGL(canvasWidth, canvasHeight, contextAttribs, clearColor, clearDepth, clearStencil) >+{ >+ var canvas = document.createElement("canvas"); >+ if (!canvas) >+ return null; >+ canvas.width = canvasWidth; >+ canvas.height = canvasHeight; >+ >+ gl = wtu.create3DContext(canvas, contextAttribs); >+ if (!gl) >+ return null; >+ >+ var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["pos", "colorIn"]); >+ if (!program) >+ return null; >+ >+ gl.enable(gl.DEPTH_TEST); >+ gl.enable(gl.STENCIL_TEST); >+ >+ gl.clearColor(clearColor[0], clearColor[1], clearColor[2], clearColor[3]); >+ gl.clearDepth(clearDepth); >+ gl.clearStencil(clearStencil); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT | gl.STENCIL_BUFFER_BIT); >+ >+ framebuffer = gl.createFramebuffer(); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); >+ var texture = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, texture); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.canvas.width, gl.canvas.height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0); >+ fbHasStencil = false; >+ fbHasDepth = false; >+ fbHasColor = gl.checkFramebufferStatus(gl.FRAMEBUFFER) == gl.FRAMEBUFFER_COMPLETE; >+ if (fbHasColor) { >+ var depthStencil = gl.createRenderbuffer(); >+ gl.bindRenderbuffer(gl.RENDERBUFFER, depthStencil); >+ gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_STENCIL, gl.canvas.width, gl.canvas.height); >+ gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.RENDERBUFFER, depthStencil); >+ fbHasDepth = gl.checkFramebufferStatus(gl.FRAMEBUFFER) == gl.FRAMEBUFFER_COMPLETE; >+ if (!fbHasDepth) { >+ gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.RENDERBUFFER, null); >+ shouldBe('gl.checkFramebufferStatus(gl.FRAMEBUFFER)', 'gl.FRAMEBUFFER_COMPLETE'); >+ } else { >+ fbHasStencil = true; >+ } >+ } >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "should be no errors"); >+ >+ return gl; >+} >+ >+function drawAndReadPixel(gl, vertices, colors) >+{ >+ var colorOffset = vertices.byteLength; >+ >+ var vbo = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vbo); >+ gl.bufferData(gl.ARRAY_BUFFER, colorOffset + colors.byteLength, gl.STATIC_DRAW); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, vertices); >+ gl.bufferSubData(gl.ARRAY_BUFFER, colorOffset, colors); >+ >+ gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+ gl.enableVertexAttribArray(0); >+ gl.vertexAttribPointer(1, 4, gl.UNSIGNED_BYTE, true, 0, colorOffset); >+ gl.enableVertexAttribArray(1); >+ >+ gl.drawArrays(gl.TRIANGLES, 0, vertices.length / 3); >+} >+ >+function testDefault() >+{ >+ debug("Testing default attributes: { stencil:false }"); >+ shouldBeNonNull("gl = getWebGL(1, 1, null, [ 0, 0, 0, 0 ], 1, 0)"); >+ shouldBeFalse("gl.getContextAttributes().stencil"); >+ shouldBeTrue("gl.getParameter(gl.STENCIL_BITS) == 0"); >+} >+ >+function testAlpha(alpha) >+{ >+ debug("Testing alpha = " + alpha); >+ if (alpha) { >+ shouldBeNonNull("gl = getWebGL(1, 1, { alpha: true, depth: false, stencil: false, antialias: false }, [ 0, 0, 0, 0 ], 1, 0)"); >+ shouldBeTrue("gl.getParameter(gl.ALPHA_BITS) >= 8"); >+ } else { >+ shouldBeNonNull("gl = getWebGL(1, 1, { alpha: false, depth: false, stencil: false, antialias: false }, [ 0, 0, 0, 0 ], 1, 0)"); >+ shouldBeTrue("gl.getParameter(gl.ALPHA_BITS) == 0"); >+ } >+ shouldBeTrue("gl.getParameter(gl.RED_BITS) >= 8"); >+ shouldBeTrue("gl.getParameter(gl.GREEN_BITS) >= 8"); >+ shouldBeTrue("gl.getParameter(gl.BLUE_BITS) >= 8"); >+ shouldBeTrue("gl.getParameter(gl.DEPTH_BITS) == 0"); >+ shouldBeTrue("gl.getParameter(gl.STENCIL_BITS) == 0"); >+ >+ shouldBeNonNull("contextAttribs = gl.getContextAttributes()"); >+ shouldBeTrue("contextAttribs.alpha == " + alpha); >+ >+ var correctColor = (contextAttribs.alpha ? [0, 0, 0, 0] : [0, 0, 0, 255]); >+ wtu.checkCanvasRect(gl, 0, 0, 1, 1, correctColor); >+ >+ if (fbHasColor) { >+ gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); >+ gl.clearColor(0.5, 0.5, 0.5, 0.5); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ wtu.checkCanvasRect(gl, 0, 0, 1, 1, [127, 127, 127, 127], undefined, 1); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ } >+} >+ >+function testDepth(depth) >+{ >+ debug("Testing depth = " + depth); >+ if (depth) { >+ shouldBeNonNull("gl = getWebGL(1, 1, { stencil: false, antialias: false }, [ 0, 0, 0, 1 ], 1, 0)"); >+ shouldBeTrue("gl.getParameter(gl.DEPTH_BITS) >= 16"); >+ } else { >+ shouldBeNonNull("gl = getWebGL(1, 1, { depth: false, stencil: false, antialias: false }, [ 0, 0, 0, 1 ], 1, 0)"); >+ shouldBeTrue("gl.getParameter(gl.DEPTH_BITS) == 0"); >+ } >+ shouldBeTrue("gl.getParameter(gl.RED_BITS) >= 8"); >+ shouldBeTrue("gl.getParameter(gl.GREEN_BITS) >= 8"); >+ shouldBeTrue("gl.getParameter(gl.BLUE_BITS) >= 8"); >+ shouldBeTrue("gl.getParameter(gl.ALPHA_BITS) >= 8"); >+ >+ shouldBeNonNull("contextAttribs = gl.getContextAttributes()"); >+ >+ gl.depthFunc(gl.NEVER); >+ >+ var vertices = new Float32Array([ >+ 1.0, 1.0, 0.0, >+ -1.0, 1.0, 0.0, >+ -1.0, -1.0, 0.0, >+ 1.0, 1.0, 0.0, >+ -1.0, -1.0, 0.0, >+ 1.0, -1.0, 0.0]); >+ var colors = new Uint8Array([ >+ 255, 0, 0, 255, >+ 255, 0, 0, 255, >+ 255, 0, 0, 255, >+ 255, 0, 0, 255, >+ 255, 0, 0, 255, >+ 255, 0, 0, 255]); >+ >+ drawAndReadPixel(gl, vertices, colors, 0, 0); >+ correctColor = (contextAttribs.depth ? [0, 0, 0, 255] : [255, 0, 0, 255]); >+ wtu.checkCanvasRect(gl, 0, 0, 1, 1, correctColor); >+ >+ if (fbHasDepth) { >+ gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ drawAndReadPixel(gl, vertices, colors, 0, 0); >+ wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0, 0, 0, 255]); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ } >+} >+ >+function testStencilAndDepth(stencil, depth) >+{ >+ debug("Testing stencil = " + stencil + ", depth = " + depth); >+ var creationString = >+ "gl = getWebGL(1, 1, { depth: " + depth + ", stencil: " + stencil + ", antialias: false }, [ 0, 0, 0, 1 ], 1, 0)"; >+ shouldBeNonNull(creationString); >+ >+ shouldBeTrue("gl.getParameter(gl.RED_BITS) >= 8"); >+ shouldBeTrue("gl.getParameter(gl.GREEN_BITS) >= 8"); >+ shouldBeTrue("gl.getParameter(gl.BLUE_BITS) >= 8"); >+ shouldBeTrue("gl.getParameter(gl.ALPHA_BITS) >= 8"); >+ if (depth) >+ shouldBeTrue("gl.getParameter(gl.DEPTH_BITS) >= 16"); >+ else >+ shouldBeTrue("gl.getParameter(gl.DEPTH_BITS) == 0"); >+ >+ if (stencil) >+ shouldBeTrue("gl.getParameter(gl.STENCIL_BITS) >= 8"); >+ else >+ shouldBeTrue("gl.getParameter(gl.STENCIL_BITS) == 0"); >+ >+ shouldBeNonNull("contextAttribs = gl.getContextAttributes()"); >+ if (!depth && contextAttribs.depth) { >+ testFailed("WebGL implementation provided a depth buffer when it should not have"); >+ } >+ if (!contextAttribs.depth) >+ depth = false; >+ if (!stencil && contextAttribs.stencil) { >+ testFailed("WebGL implementation provided a stencil buffer when it should not have"); >+ } >+ if (!contextAttribs.stencil) >+ stencil = false; >+ >+ gl.depthFunc(gl.ALWAYS); >+ >+ gl.stencilFunc(gl.NEVER, 1, 1); >+ gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP); >+ >+ var vertices = new Float32Array([ >+ 1.0, 1.0, 0.0, >+ -1.0, 1.0, 0.0, >+ -1.0, -1.0, 0.0, >+ 1.0, 1.0, 0.0, >+ -1.0, -1.0, 0.0, >+ 1.0, -1.0, 0.0]); >+ var colors = new Uint8Array([ >+ 255, 0, 0, 255, >+ 255, 0, 0, 255, >+ 255, 0, 0, 255, >+ 255, 0, 0, 255, >+ 255, 0, 0, 255, >+ 255, 0, 0, 255]); >+ >+ drawAndReadPixel(gl, vertices, colors, 0, 0); >+ correctColor = (stencil ? [0, 0, 0, 255] : [255, 0, 0, 255]); >+ wtu.checkCanvasRect(gl, 0, 0, 1, 1, correctColor) >+ >+ if (fbHasStencil) { >+ gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ drawAndReadPixel(gl, vertices, colors, 0, 0); >+ wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0, 0, 0, 255]); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ } >+} >+ >+function testAntialias(antialias) >+{ >+ debug("Testing antialias = " + antialias); >+ // Both the width and height of canvas are N. >+ // Note that "N = 2" doesn't work for some post processing AA per the discussion at https://github.com/KhronosGroup/WebGL/pull/1977. >+ var N = 3; >+ if (antialias) >+ shouldBeNonNull("gl = getWebGL(" + N + ", " + N + ", { depth: false, stencil: false, alpha: false, antialias: true }, [ 0, 0, 0, 1 ], 1, 0)"); >+ else >+ shouldBeNonNull("gl = getWebGL(" + N + ", " + N + ", { depth: false, stencil: false, alpha: false, antialias: false }, [ 0, 0, 0, 1 ], 1, 0)"); >+ shouldBeNonNull("contextAttribs = gl.getContextAttributes()"); >+ >+ var vertices = new Float32Array([ >+ 1.0, 1.0, 0.0, >+ -1.0, 1.0, 0.0, >+ -1.0, -1.0, 0.0]); >+ var colors = new Uint8Array([ >+ 255, 0, 0, 255, >+ 255, 0, 0, 255, >+ 255, 0, 0, 255]); >+ drawAndReadPixel(gl, vertices, colors, 0, 0); >+ var buf = new Uint8Array(N * N * 4); >+ gl.readPixels(0, 0, N, N, gl.RGBA, gl.UNSIGNED_BYTE, buf); >+ redChannels[0] = buf[4 * (N + 1)]; // (1, 1) >+ redChannels[1] = buf[4 * N * (N - 1)]; // left top >+ redChannels[2] = buf[4 * (N - 1)]; // right bottom >+ shouldBeTrue("redChannels[1] == 255 && redChannels[2] == 0"); >+ shouldBe("redChannels[0] != 255 && redChannels[0] != 0", "contextAttribs.antialias"); >+} >+ >+function runTest() >+{ >+ testDefault(); >+ testAlpha(true); >+ testAlpha(false); >+ testDepth(true); >+ testDepth(false); >+ testStencilAndDepth(true, false); >+ testStencilAndDepth(false, false); >+ testStencilAndDepth(true, true); >+ testStencilAndDepth(false, true); >+ testAntialias(true); >+ testAntialias(false); >+ >+ finishTest(); >+} >+ >+</script> >+</head> >+<body onload="init()"> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-creation-and-destruction.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-creation-and-destruction.html >new file mode 100644 >index 00000000000..801bd11e3f5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-creation-and-destruction.html >@@ -0,0 +1,56 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Test that contexts are freed and garbage collected reasonably</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+<script src="../../js/tests/iterable-test.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description(); >+ >+var wtu = WebGLTestUtils; >+ >+var test = IterableTest.createContextCreationAndDestructionTest(); >+var iterations = parseInt(wtu.getUrlOptions().iterations, 10) || 50; >+IterableTest.run(test, iterations); >+ >+var successfullyParsed = true; >+</script> >+ >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-creation.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-creation.html >new file mode 100644 >index 00000000000..1fafb7e3c9c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-creation.html >@@ -0,0 +1,56 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Test that you can create large numbers of WebGL contexts.</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+<script src="../../js/tests/iterable-test.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description(); >+ >+var wtu = WebGLTestUtils; >+ >+var test = IterableTest.createContextCreationTest(); >+var iterations = parseInt(wtu.getUrlOptions().iterations, 10) || 50; >+IterableTest.run(test, iterations); >+ >+var successfullyParsed = true; >+</script> >+ >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-eviction-with-garbage-collection.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-eviction-with-garbage-collection.html >new file mode 100644 >index 00000000000..9c91d7d23a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-eviction-with-garbage-collection.html >@@ -0,0 +1,78 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Test that context eviction and garbage collection do not interfere with each other</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+// See http://crbug.com/374086 for original failing case. >+description("Test that context eviction and garbage collection do not interfere with each other."); >+var wtu = WebGLTestUtils; >+ >+var total_iteration = 50; >+var array_count = 10; >+ >+var bank = []; >+for (var i = 0; i < array_count; i++) >+ bank[i] = []; >+ >+for (var iter = 0; iter < total_iteration; ++iter) { >+ for (var i = 0; i < array_count; i++) >+ bank[i][iter * i] = iter; >+ >+ var canvas = document.createElement('canvas'); >+ var gl = wtu.create3DContext(canvas); >+ canvas.width = 50; >+ canvas.height = 50; >+ var program = wtu.setupTexturedQuad(gl); >+ shouldBeTrue("program != null"); >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ var pixel = new Uint8Array([0, 255, 0, 255]); >+ gl.texImage2D( >+ gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, pixel); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from iteration " + iter); >+} >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-hidden-alpha.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-hidden-alpha.html >new file mode 100644 >index 00000000000..431b30393fe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-hidden-alpha.html >@@ -0,0 +1,187 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script id='vs' type='x-shader/x-vertex'> >+ attribute vec2 aPosCoord; >+ >+ void main(void) { >+ gl_Position = vec4(aPosCoord, 0.0, 1.0); >+ } >+</script> >+ >+<script id='fs' type='x-shader/x-fragment'> >+ precision mediump float; >+ >+ void main(void) { >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ } >+</script> >+<script> >+"use strict"; >+ >+var posCoords_arr = new Float32Array(2 * 4); >+var posCoords_buff = null; >+function DrawQuad(gl, prog, x0, y0, x1, y1) { >+ gl.useProgram(prog); >+ >+ if (!posCoords_buff) { >+ posCoords_buff = gl.createBuffer(); >+ } >+ gl.bindBuffer(gl.ARRAY_BUFFER, posCoords_buff); >+ posCoords_arr[0] = x0; >+ posCoords_arr[1] = y0; >+ >+ posCoords_arr[2] = x1; >+ posCoords_arr[3] = y0; >+ >+ posCoords_arr[4] = x0; >+ posCoords_arr[5] = y1; >+ >+ posCoords_arr[6] = x1; >+ posCoords_arr[7] = y1; >+ gl.bufferData(gl.ARRAY_BUFFER, posCoords_arr, gl.STREAM_DRAW); >+ >+ gl.enableVertexAttribArray(prog.aPosCoord); >+ gl.vertexAttribPointer(prog.aPosCoord, 2, gl.FLOAT, false, 0, 0); >+ >+ gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4); >+} >+ >+function DrawSquare(gl, prog, size) { >+ DrawQuad(gl, prog, -size, -size, size, size); >+} >+ >+function Reset(gl) { >+ gl.canvas.width += 1; >+ gl.canvas.width -= 1; >+} >+ >+var iColor; >+var pixel; >+var dataURL_pre; >+var dataURL_post; >+ >+function Test(gl, prog, shouldFinish) { >+ gl.enable(gl.BLEND); >+ gl.blendFunc(gl.ZERO, gl.DST_ALPHA); >+ >+ iColor = 64; >+ var fColor = iColor / 255.0; >+ >+ ////////////////// >+ >+ debug('clear(R,G,B,0)'); >+ >+ Reset(gl); >+ >+ gl.clearColor(fColor, fColor, fColor, 0.0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ dataURL_pre = gl.canvas.toDataURL(); >+ //console.log('Before blending: ' + dataURL_pre); >+ >+ DrawSquare(gl, prog, 0.7); >+ >+ WebGLTestUtils.checkCanvasRect(gl, gl.drawingBufferWidth/2, >+ gl.drawingBufferHeight/2, 1, 1, >+ [iColor, iColor, iColor, 255], >+ 'Should blend as if alpha is 1.0.'); >+ >+ dataURL_post = gl.canvas.toDataURL(); >+ //console.log('After blending: ' + dataURL_post); >+ shouldBe("dataURL_post", "dataURL_pre"); >+ >+ ////////////////// >+ >+ debug('mask(R,G,B,0), clear(R,G,B,1)'); >+ >+ Reset(gl); >+ >+ gl.colorMask(true, true, true, false); >+ gl.clearColor(fColor, fColor, fColor, 1.0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ gl.colorMask(true, true, true, true); >+ >+ dataURL_pre = gl.canvas.toDataURL(); >+ //console.log('Before blending: ' + dataURL_pre); >+ >+ DrawSquare(gl, prog, 0.7); >+ >+ WebGLTestUtils.checkCanvasRect(gl, gl.drawingBufferWidth/2, >+ gl.drawingBufferHeight/2, 1, 1, >+ [iColor, iColor, iColor, 255], >+ 'Should blend as if alpha is 1.0.'); >+ >+ dataURL_post = gl.canvas.toDataURL(); >+ //console.log('After blending: ' + dataURL_post); >+ shouldBe("dataURL_post", "dataURL_pre"); >+ >+ //////////////// >+ >+ WebGLTestUtils.glErrorShouldBe(gl, gl.NO_ERROR, "should be no errors"); >+ >+ if (shouldFinish) >+ finishTest(); >+} >+ >+var gl; >+function init() { >+ var canvas = document.getElementById('canvas'); >+ var attribs = { >+ alpha: false, >+ antialias: false, >+ premultipliedAlpha: false, >+ }; >+ gl = canvas.getContext('experimental-webgl', attribs); >+ shouldBeNonNull(gl); >+ shouldBe("gl.getParameter(gl.ALPHA_BITS)", "0"); >+ >+ var prog = WebGLTestUtils.setupProgram(gl, ['vs', 'fs']); >+ shouldBeNonNull(prog); >+ prog.aPosCoord = gl.getAttribLocation(prog, 'aPosCoord'); >+ >+ Test(gl, prog, false); >+ >+ requestAnimationFrame(function(){ Test(gl, prog, true); }); >+} >+ >+</script> >+</head> >+<body onload="init()"> >+<canvas id='canvas'></canvas> >+<br/> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-lost-restored.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-lost-restored.html >new file mode 100644 >index 00000000000..547047a37e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-lost-restored.html >@@ -0,0 +1,308 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+var canvas; >+var gl; >+var shouldGenerateGLError; >+var WEBGL_lose_context; >+var new_WEBGL_lose_context; >+var bufferObjects; >+var program; >+var texture; >+var texColor = [255, 10, 20, 255]; >+var allowRestore; >+var contextLostEventFired; >+var contextRestoredEventFired; >+var OES_vertex_array_object; >+var old_OES_vertex_array_object; >+var vertexArrayObject; >+var OES_texture_float; >+var newExtension; >+ >+function init() >+{ >+ enableJSTestPreVerboseLogging(); >+ description("Tests behavior under a restored context."); >+ >+ shouldGenerateGLError = wtu.shouldGenerateGLError; >+ testLosingContext(); >+} >+ >+function setupTest() >+{ >+ canvas = document.createElement("canvas"); >+ canvas.width = 1; >+ canvas.height = 1; >+ gl = wtu.create3DContext(canvas); >+ WEBGL_lose_context = getExtensionAndAddProperty(gl, "WEBGL_lose_context"); >+ if (!WEBGL_lose_context) { >+ debug("Could not find WEBGL_lose_context extension"); >+ return false; >+ } >+ >+ // Try to get a few extensions >+ OES_vertex_array_object = getExtensionAndAddProperty(gl, "OES_vertex_array_object"); >+ OES_texture_float = getExtensionAndAddProperty(gl, "OES_texture_float"); >+ >+ return true; >+} >+ >+function getExtensionAndAddProperty(gl, name) { >+ var ext = wtu.getExtensionWithKnownPrefixes(gl, name); >+ if (ext) { >+ ext.webglTestProperty = true; >+ } >+ return ext; >+} >+ >+function reGetExtensionAndTestForProperty(gl, name, expectProperty) { >+ newExtension = wtu.getExtensionWithKnownPrefixes(gl, name); >+ // NOTE: while getting a extension after context lost/restored is allowed to fail >+ // for the purpose the conformance tests it is not. >+ // >+ // Hypothetically the user can switch GPUs live. For example on Windows, install 2 GPUs, >+ // then in the control panen enable 1, disable the others and visa versa. Since the GPUs >+ // have different capabilities one or the other may not support a particlar extension. >+ // >+ // But, for the purpose of the conformance tests the context is expected to restore >+ // on the same GPU and therefore the extensions that succeeded previously should >+ // succeed on restore. >+ shouldBeTrue("newExtension != null"); >+ if (expectProperty) { >+ shouldBeTrue("newExtension.webglTestProperty === true"); >+ } else { >+ shouldBeTrue("newExtension.webglTestProperty === undefined"); >+ } >+ return newExtension; >+} >+ >+function testLosingContext() >+{ >+ if (!setupTest()) { >+ finishTest(); >+ return; >+ } >+ >+ debug("Test losing a context and inability to restore it."); >+ >+ canvas.addEventListener("webglcontextlost", function(e) { >+ testLostContext(e); >+ // restore the context after this event has exited. >+ setTimeout(function() { >+ // we didn't call prevent default so we should not be able to restore the context >+ shouldGenerateGLError(gl, gl.INVALID_OPERATION, "WEBGL_lose_context.restoreContext()"); >+ testLosingAndRestoringContext(); >+ }, 0); >+ }); >+ canvas.addEventListener("webglcontextrestored", testShouldNotRestoreContext); >+ allowRestore = false; >+ contextLostEventFired = false; >+ contextRestoredEventFired = false; >+ >+ testOriginalContext(); >+ WEBGL_lose_context.loseContext(); >+ // The context should be lost immediately. >+ shouldBeTrue("gl.isContextLost()"); >+ shouldBe("gl.getError()", "gl.CONTEXT_LOST_WEBGL"); >+ shouldBe("gl.getError()", "gl.NO_ERROR"); >+ // gl methods should be no-ops >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.blendFunc(gl.TEXTURE_2D, gl.TEXTURE_CUBE_MAP)"); >+ // but the event should not have been fired. >+ shouldBeFalse("contextLostEventFired"); >+} >+ >+function testLosingAndRestoringContext() >+{ >+ if (!setupTest()) >+ finishTest(); >+ >+ debug(""); >+ debug("Test losing and restoring a context."); >+ >+ canvas.addEventListener("webglcontextlost", function(e) { >+ testLostContext(e); >+ // restore the context after this event has exited. >+ setTimeout(function() { >+ shouldGenerateGLError(gl, gl.NO_ERROR, "WEBGL_lose_context.restoreContext()"); >+ // Calling restoreContext() twice should not cause error or crash >+ shouldGenerateGLError(gl, gl.NO_ERROR, "WEBGL_lose_context.restoreContext()"); >+ // The context should still be lost. It will not get restored until the >+ // webglrestorecontext event is fired. >+ shouldBeTrue("gl.isContextLost()"); >+ shouldBe("gl.getError()", "gl.NO_ERROR"); >+ // gl methods should still be no-ops >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.blendFunc(gl.TEXTURE_2D, gl.TEXTURE_CUBE_MAP)"); >+ }, 0); >+ }); >+ canvas.addEventListener("webglcontextrestored", function() { >+ testRestoredContext(); >+ finishTest(); >+ }); >+ allowRestore = true; >+ contextLostEventFired = false; >+ contextRestoredEventFired = false; >+ >+ testOriginalContext(); >+ WEBGL_lose_context.loseContext(); >+ // The context should be lost immediately. >+ shouldBeTrue("gl.isContextLost()"); >+ shouldBe("gl.getError()", "gl.CONTEXT_LOST_WEBGL"); >+ shouldBe("gl.getError()", "gl.NO_ERROR"); >+ // gl methods should be no-ops >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.blendFunc(gl.TEXTURE_2D, gl.TEXTURE_CUBE_MAP)"); >+ // but the event should not have been fired. >+ shouldBeFalse("contextLostEventFired"); >+} >+ >+function testRendering() >+{ >+ gl.clearColor(0, 0, 0, 255); >+ gl.colorMask(1, 1, 1, 0); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ >+ program = wtu.setupSimpleTextureProgram(gl); >+ bufferObjects = wtu.setupUnitQuad(gl); >+ texture = wtu.createColoredTexture(gl, canvas.width, canvas.height, texColor); >+ >+ gl.uniform1i(gl.getUniformLocation(program, "tex"), 0); >+ wtu.clearAndDrawUnitQuad(gl, [0, 0, 0, 255]); >+ >+ var compare = texColor.slice(0, 3); >+ wtu.checkCanvasRect(gl, 0, 0, canvas.width, canvas.height, compare, "shouldBe " + compare); >+ >+ shouldBe("gl.getError()", "gl.NO_ERROR"); >+} >+ >+function testOriginalContext() >+{ >+ debug("Test valid context"); >+ shouldBeFalse("gl.isContextLost()"); >+ shouldBe("gl.getError()", "gl.NO_ERROR"); >+ testRendering(); >+ debug(""); >+} >+ >+function testLostContext(e) >+{ >+ debug("Test lost context"); >+ shouldBeFalse("contextLostEventFired"); >+ contextLostEventFired = true; >+ shouldBeTrue("gl.isContextLost()"); >+ shouldBe("gl.getError()", "gl.NO_ERROR"); >+ debug(""); >+ if (allowRestore) >+ e.preventDefault(); >+} >+ >+function testShouldNotRestoreContext(e) >+{ >+ testFailed("Should not restore the context unless preventDefault is called on the context lost event"); >+ debug(""); >+} >+ >+function testResources(expected) >+{ >+ var tests = [ >+ "gl.bindTexture(gl.TEXTURE_2D, texture)", >+ "gl.useProgram(program)", >+ "gl.bindBuffer(gl.ARRAY_BUFFER, bufferObjects[0])", >+ ]; >+ >+ for (var i = 0; i < tests.length; ++i) >+ shouldGenerateGLError(gl, expected, tests[i]); >+} >+ >+function testOESTextureFloat() { >+ if (OES_texture_float) { >+ // Extension must still be lost. >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.FLOAT, null)"); >+ // Try re-enabling extension >+ OES_texture_float = reGetExtensionAndTestForProperty(gl, "OES_texture_float", false); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.FLOAT, null)"); >+ } >+} >+ >+function testOESVertexArrayObject() { >+ if (OES_vertex_array_object) { >+ // Extension must still be lost. >+ shouldBeNull("OES_vertex_array_object.createVertexArrayOES()"); >+ // Try re-enabling extension >+ >+ old_OES_vertex_array_object = OES_vertex_array_object; >+ OES_vertex_array_object = reGetExtensionAndTestForProperty(gl, "OES_vertex_array_object", false); >+ shouldBeTrue("OES_vertex_array_object.createVertexArrayOES() != null"); >+ shouldBeTrue("old_OES_vertex_array_object.createVertexArrayOES() == null"); >+ } >+} >+ >+function testExtensions() { >+ testOESTextureFloat(); >+ testOESVertexArrayObject(); >+ // Only the WEBGL_lose_context extension should be the same object after context lost. >+ new_WEBGL_lose_context = reGetExtensionAndTestForProperty(gl, "WEBGL_lose_context", true); >+} >+ >+function testRestoredContext() >+{ >+ debug("Test restored context"); >+ shouldBeFalse("contextRestoredEventFired"); >+ contextRestoredEventFired = true; >+ shouldBeFalse("gl.isContextLost()"); >+ shouldBe("gl.getError()", "gl.NO_ERROR"); >+ >+ // Validate that using old resources fails. >+ testResources(gl.INVALID_OPERATION); >+ >+ testRendering(); >+ >+ // Validate new resources created in testRendering(). >+ testResources(gl.NO_ERROR); >+ >+ testExtensions(); >+ >+ debug(""); >+} >+ >+ >+</script> >+</head> >+<body onload="init()"> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-lost.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-lost.html >new file mode 100644 >index 00000000000..d50725acbe1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-lost.html >@@ -0,0 +1,374 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script> >+"use strict"; >+var wtu; >+var canvas; >+var gl; >+var shouldGenerateGLError; >+var extensionName; >+var extension; >+ >+var buffer; >+var framebuffer; >+var program; >+var renderbuffer; >+var shader; >+var texture; >+var uniformLocation; >+var arrayBuffer; >+var arrayBufferView >+var image; >+var video; >+var canvas2d; >+var ctx2d; >+var imageData; >+var float32array; >+var int32array; >+var OES_vertex_array_object; >+var vertexArrayObject; >+ >+function init() >+{ >+ wtu = WebGLTestUtils; >+ canvas = document.getElementById("canvas"); >+ gl = wtu.create3DContext(canvas); >+ shouldGenerateGLError = wtu.shouldGenerateGLError; >+ >+ description("Tests behavior under a lost context"); >+ >+ // call testValidContext() before checking for the extension, because this is where we check >+ // for the isContextLost() method, which we want to do regardless of the extension's presence. >+ testValidContext(); >+ >+ extensionName = wtu.getSupportedExtensionWithKnownPrefixes(gl, "WEBGL_lose_context"); >+ if (!extensionName) { >+ debug("Could not find WEBGL_lose_context extension"); >+ finishTest(); >+ return false; >+ } >+ extension = gl.getExtension(extensionName); >+ >+ // need an extension that exposes new API methods. >+ OES_vertex_array_object = wtu.getExtensionWithKnownPrefixes(gl, "OES_vertex_array_object"); >+ >+ canvas.addEventListener("webglcontextlost", testLostContext, false); >+ >+ // We need to initialize |uniformLocation| before losing context. >+ // Otherwise gl.getUniform() when context is lost will throw. >+ uniformLocation = gl.getUniformLocation(program, "tex"); >+ loseContext(); >+} >+ >+function loseContext() >+{ >+ debug(""); >+ debug("Lose context"); >+ >+ // Note: this will cause the context to be lost, but the >+ // webglcontextlost event listener to be queued. >+ extension.loseContext(); >+ debug(""); >+} >+ >+function testValidContext() >+{ >+ debug("Test valid context"); >+ >+ shouldBeFalse("gl.isContextLost()"); >+ >+ arrayBuffer = new ArrayBuffer(4); >+ arrayBufferView = new Int8Array(arrayBuffer); >+ >+ // Generate resources for testing. >+ buffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buffer); >+ framebuffer = gl.createFramebuffer(); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); >+ program = wtu.setupSimpleTextureProgram(gl); >+ renderbuffer = gl.createRenderbuffer(); >+ gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); >+ shader = gl.createShader(gl.VERTEX_SHADER); >+ texture = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, texture); >+ shouldBe("gl.getError()", "gl.NO_ERROR"); >+ >+ // Test is queries that will later be false >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.enable(gl.BLEND)"); >+ shouldBeTrue("gl.isBuffer(buffer)"); >+ shouldBeTrue("gl.isEnabled(gl.BLEND)"); >+ shouldBeTrue("gl.isFramebuffer(framebuffer)"); >+ shouldBeTrue("gl.isProgram(program)"); >+ shouldBeTrue("gl.isRenderbuffer(renderbuffer)"); >+ shouldBeTrue("gl.isShader(shader)"); >+ shouldBeTrue("gl.isTexture(texture)"); >+ >+ if (OES_vertex_array_object) { >+ vertexArrayObject = OES_vertex_array_object.createVertexArrayOES(); >+ shouldBe("gl.getError()", "gl.NO_ERROR"); >+ shouldBeTrue("OES_vertex_array_object.isVertexArrayOES(vertexArrayObject)"); >+ } >+} >+ >+function testGLNOErrorFunctions(tests) { >+ tests.forEach(function(test) { >+ shouldGenerateGLError(gl, gl.NO_ERROR, test); >+ }); >+} >+ >+function testFunctionsThatReturnNULL(tests) { >+ tests.forEach(function(test) { >+ shouldBeNull(test); >+ }); >+} >+ >+function testLostContext() >+{ >+ debug("Test lost context"); >+ >+ // Functions with special return values. >+ shouldBeTrue("gl.isContextLost()"); >+ shouldBe("gl.getError()", "gl.CONTEXT_LOST_WEBGL"); >+ shouldBe("gl.getError()", "gl.NO_ERROR"); >+ shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_UNSUPPORTED"); >+ shouldBe("gl.getAttribLocation(program, 'u_modelViewProjMatrix')", "-1"); >+ shouldBe("gl.getVertexAttribOffset(0, gl.VERTEX_ATTRIB_ARRAY_POINTER)", "0"); >+ >+ // Test the extension itself. >+ shouldGenerateGLError(gl, gl.INVALID_OPERATION, "extension.loseContext()"); >+ >+ image = document.createElement("img"); >+ video = document.createElement("video"); >+ canvas2d = document.createElement("canvas"); >+ ctx2d = canvas2d.getContext("2d"); >+ imageData = ctx2d.createImageData(1, 1); >+ float32array = new Float32Array(1); >+ int32array = new Int32Array(1); >+ >+ // Functions returning void should return immediately. >+ // This is untestable, but we can at least be sure they cause no errors >+ // and the codepaths are exercised. >+ var voidTests = [ >+ "gl.activeTexture(gl.TEXTURE0)", >+ "gl.attachShader(program, shader)", >+ "gl.bindBuffer(gl.ARRAY_BUFFER, buffer)", >+ "gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer)", >+ "gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer)", >+ "gl.bindTexture(gl.TEXTURE_2D, texture)", >+ "gl.blendColor(1.0, 1.0, 1.0, 1.0)", >+ "gl.blendEquation(gl.FUNC_ADD)", >+ "gl.blendEquationSeparate(gl.FUNC_ADD, gl.FUNC_ADD)", >+ "gl.blendFunc(gl.ONE, gl.ONE)", >+ "gl.blendFuncSeparate(gl.ONE, gl.ONE, gl.ONE, gl.ONE)", >+ "gl.bufferData(gl.ARRAY_BUFFER, 0, gl.STATIC_DRAW)", >+ "gl.bufferData(gl.ARRAY_BUFFER, arrayBufferView, gl.STATIC_DRAW)", >+ "gl.bufferData(gl.ARRAY_BUFFER, arrayBuffer, gl.STATIC_DRAW)", >+ "gl.bufferSubData(gl.ARRAY_BUFFRE, 0, arrayBufferView)", >+ "gl.bufferSubData(gl.ARRAY_BUFFRE, 0, arrayBuffer)", >+ "gl.clear(gl.COLOR_BUFFER_BIT)", >+ "gl.clearColor(1, 1, 1, 1)", >+ "gl.clearDepth(1)", >+ "gl.clearStencil(0)", >+ "gl.colorMask(1, 1, 1, 1)", >+ "gl.compileShader(shader)", >+ "gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0, 0, 0, 0, 0)", >+ "gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 0, 0, 0, 0)", >+ "gl.cullFace(gl.FRONT)", >+ "gl.deleteBuffer(buffer)", >+ "gl.deleteFramebuffer(framebuffer)", >+ "gl.deleteProgram(program)", >+ "gl.deleteRenderbuffer(renderbuffer)", >+ "gl.deleteShader(shader)", >+ "gl.deleteTexture(texture)", >+ "gl.depthFunc(gl.NEVER)", >+ "gl.depthMask(0)", >+ "gl.depthRange(0, 1)", >+ "gl.detachShader(program, shader)", >+ "gl.disable(gl.BLEND)", >+ "gl.disableVertexAttribArray(0)", >+ "gl.drawArrays(gl.POINTS, 0, 0)", >+ "gl.drawElements(gl.POINTS, 0, gl.UNSIGNED_SHORT, 0)", >+ "gl.enable(gl.BLEND)", >+ "gl.enableVertexAttribArray(0)", >+ "gl.finish()", >+ "gl.flush()", >+ "gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, renderbuffer)", >+ "gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0)", >+ "gl.frontFace(gl.CW)", >+ "gl.generateMipmap(gl.TEXTURE_2D)", >+ "gl.hint(gl.GENERATE_MIPMAP_HINT, gl.FASTEST)", >+ "gl.lineWidth(0)", >+ "gl.linkProgram(program)", >+ "gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 0)", >+ "gl.polygonOffset(0, 0)", >+ "gl.readPixels(0, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, arrayBufferView)", >+ "gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 0, 0)", >+ "gl.sampleCoverage(0, 0)", >+ "gl.scissor(0, 0, 0, 0)", >+ "gl.shaderSource(shader, '')", >+ "gl.stencilFunc(gl.NEVER, 0, 0)", >+ "gl.stencilFuncSeparate(gl.FRONT, gl.NEVER, 0, 0)", >+ "gl.stencilMask(0)", >+ "gl.stencilMaskSeparate(gl.FRONT, 0)", >+ "gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP)", >+ "gl.stencilOpSeparate(gl.FRONT, gl.KEEP, gl.KEEP, gl.KEEP)", >+ "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, arrayBufferView)", >+ "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, imageData)", >+ "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image)", >+ "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, canvas2d)", >+ "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, video)", >+ "gl.texParameterf(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST)", >+ "gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST)", >+ "gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, arrayBufferView)", >+ "gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, imageData)", >+ "gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, image)", >+ "gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, canvas2d)", >+ "gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, video)", >+ "gl.uniform1f(uniformLocation, 0)", >+ "gl.uniform1fv(uniformLocation, float32array)", >+ "gl.uniform1fv(uniformLocation, [0])", >+ "gl.uniform1i(uniformLocation, 0)", >+ "gl.uniform1iv(uniformLocation, int32array)", >+ "gl.uniform1iv(uniformLocation, [0])", >+ "gl.uniform2f(uniformLocation, 0, 0)", >+ "gl.uniform2fv(uniformLocation, float32array)", >+ "gl.uniform2fv(uniformLocation, [0, 0])", >+ "gl.uniform2i(uniformLocation, 0, 0)", >+ "gl.uniform2iv(uniformLocation, int32array)", >+ "gl.uniform2iv(uniformLocation, [0, 0])", >+ "gl.uniform3f(uniformLocation, 0, 0, 0)", >+ "gl.uniform3fv(uniformLocation, float32array)", >+ "gl.uniform3fv(uniformLocation, [0, 0, 0])", >+ "gl.uniform3i(uniformLocation, 0, 0, 0)", >+ "gl.uniform3iv(uniformLocation, int32array)", >+ "gl.uniform3iv(uniformLocation, [0, 0, 0])", >+ "gl.uniform4f(uniformLocation, 0, 0, 0, 0)", >+ "gl.uniform4fv(uniformLocation, float32array)", >+ "gl.uniform4fv(uniformLocation, [0, 0, 0, 0])", >+ "gl.uniform4i(uniformLocation, 0, 0, 0, 0)", >+ "gl.uniform4iv(uniformLocation, int32array)", >+ "gl.uniform4iv(uniformLocation, [0, 0, 0, 0])", >+ "gl.uniformMatrix2fv(uniformLocation, false, float32array)", >+ "gl.uniformMatrix2fv(uniformLocation, false, [0, 0, 0, 0])", >+ "gl.uniformMatrix3fv(uniformLocation, false, float32array)", >+ "gl.uniformMatrix3fv(uniformLocation, false, [0, 0, 0, 0, 0, 0, 0, 0, 0])", >+ "gl.uniformMatrix4fv(uniformLocation, false, float32array)", >+ "gl.uniformMatrix4fv(uniformLocation, false, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])", >+ "gl.useProgram(program)", >+ "gl.validateProgram(program)", >+ "gl.vertexAttrib1f(0, 0)", >+ "gl.vertexAttrib1fv(0, float32array)", >+ "gl.vertexAttrib1fv(0, [0])", >+ "gl.vertexAttrib2f(0, 0, 0)", >+ "gl.vertexAttrib2fv(0, float32array)", >+ "gl.vertexAttrib2fv(0, [0, 0])", >+ "gl.vertexAttrib3f(0, 0, 0, 0)", >+ "gl.vertexAttrib3fv(0, float32array)", >+ "gl.vertexAttrib3fv(0, [0, 0, 0])", >+ "gl.vertexAttrib4f(0, 0, 0, 0, 0)", >+ "gl.vertexAttrib4fv(0, float32array)", >+ "gl.vertexAttrib4fv(0, [0, 0, 0, 0])", >+ "gl.vertexAttribPointer(0, 0, gl.FLOAT, false, 0, 0)", >+ "gl.viewport(0, 0, 0, 0)", >+ ]; >+ testGLNOErrorFunctions(voidTests); >+ >+ // Functions return nullable values should all return null. >+ var nullTests = [ >+ "gl.createBuffer()", >+ "gl.createFramebuffer()", >+ "gl.createProgram()", >+ "gl.createRenderbuffer()", >+ "gl.createShader(gl.GL_VERTEX_SHADER)", >+ "gl.createTexture()", >+ "gl.getActiveAttrib(program, 0)", >+ "gl.getActiveUniform(program, 0)", >+ "gl.getAttachedShaders(program)", >+ "gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE)", >+ "gl.getContextAttributes()", >+ "gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)", >+ "gl.getParameter(gl.CURRENT_PROGRAM)", >+ "gl.getProgramInfoLog(program)", >+ "gl.getProgramParameter(program, gl.LINK_STATUS)", >+ "gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)", >+ "gl.getShaderInfoLog(shader)", >+ "gl.getShaderParameter(shader, gl.SHADER_TYPE)", >+ "gl.getShaderSource(shader)", >+ "gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S)", >+ "gl.getUniform(program, uniformLocation)", >+ "gl.getUniformLocation(program, 'vPosition')", >+ "gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING)", >+ "gl.getSupportedExtensions()", >+ "gl.getExtension('" + extensionName + "')", >+ ]; >+ testFunctionsThatReturnNULL(nullTests); >+ >+ // "Is" queries should all return false. >+ shouldBeFalse("gl.isBuffer(buffer)"); >+ shouldBeFalse("gl.isEnabled(gl.BLEND)"); >+ shouldBeFalse("gl.isFramebuffer(framebuffer)"); >+ shouldBeFalse("gl.isProgram(program)"); >+ shouldBeFalse("gl.isRenderbuffer(renderbuffer)"); >+ shouldBeFalse("gl.isShader(shader)"); >+ shouldBeFalse("gl.isTexture(texture)"); >+ >+ shouldBe("gl.getError()", "gl.NO_ERROR"); >+ >+ // test extensions >+ if (OES_vertex_array_object) { >+ testGLNOErrorFunctions( >+ [ >+ "OES_vertex_array_object.bindVertexArrayOES(vertexArrayObject)", >+ "OES_vertex_array_object.isVertexArrayOES(vertexArrayObject)", >+ "OES_vertex_array_object.deleteVertexArrayOES(vertexArrayObject)", >+ ]); >+ testFunctionsThatReturnNULL( >+ [ >+ "OES_vertex_array_object.createVertexArrayOES()", >+ ]); >+ } >+ >+ debug(""); >+ >+ finishTest(); >+} >+ >+</script> >+</head> >+<body onload="init()"> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas"> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-no-alpha-fbo-with-alpha.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-no-alpha-fbo-with-alpha.html >new file mode 100644 >index 00000000000..1979bed3802 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-no-alpha-fbo-with-alpha.html >@@ -0,0 +1,98 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+ >+<script> >+"use strict"; >+ >+var wtu = WebGLTestUtils; >+ >+// This declaration needs to be global for "shouldBe" to see it >+var gl; >+ >+function init() >+{ >+ description('Verify that a WebGL context with alpha:false still works correctly after handling textures with an alpha channel.'); >+ >+ runTest(); >+} >+ >+function getWebGL(contextAttribs) >+{ >+ return wtu.create3DContext("c", contextAttribs); >+} >+ >+function runTest() >+{ >+ var buf = new Uint8Array(1 * 1 * 4); >+ shouldBeNonNull("gl = getWebGL({ alpha: false, antialias: false })"); >+ >+ // Clear to black. Alpha channel of clearColor() is ignored. >+ gl.clearColor(0.0, 0.0, 0.0, 0.7); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0, 0, 0, 255], >+ "Alpha channel of clearColor should be ignored"); >+ >+ wtu.waitForComposite(function() { >+ // Make a new framebuffer and attach a texture with an alpha channel. >+ var fbo = gl.createFramebuffer(); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); >+ var texture = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, texture); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0); >+ >+ // Clear texture. Note that alpha channel is not 1.0. >+ gl.clearColor(1.0, 0.0, 0.0, 0.5); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ wtu.checkCanvasRect(gl, 0, 0, 1, 1, [255, 0, 0, 128], >+ "Alpha channel of clearColor should be obeyed for FBO with alpha channel", >+ 1); >+ >+ // Bind back buffer and check that its alpha channel is still 1.0. >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0, 0, 0, 255], >+ "Alpha channel of back buffer should still be 255"); >+ finishTest(); >+ }); >+} >+ >+</script> >+</head> >+<body onload="init()"> >+<div id="description"></div> >+<div id="console"></div> >+<canvas width="20" height="20" style="border: 1px solid blue;" id="c"></canvas> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-release-upon-reload.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-release-upon-reload.html >new file mode 100644 >index 00000000000..d988131ad89 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-release-upon-reload.html >@@ -0,0 +1,93 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Context Release Test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<iframe id="host" style="width: 256px; height: 256px; border: 0;"></iframe> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description("This test ensures that WebGL contexts are released properly upon page reload"); >+ >+var wtu = WebGLTestUtils; >+ >+var host = document.getElementById("host"); >+var testIterations = 25; >+var currentIteration = 0; >+ >+function refreshFrame() { >+ if(currentIteration < testIterations) { >+ currentIteration++; >+ debug(""); >+ debug("Test " + currentIteration + " of " + testIterations); >+ host.src = "resources/context-release-upon-reload-child.html"; >+ } else { >+ finishTest(); >+ } >+} >+ >+function testContext() { >+ var gl = host.contentWindow.glContext; >+ assertMsg(gl != null, "context was created properly"); >+ >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors"); >+ >+ if(gl.canvas.width != gl.drawingBufferWidth || >+ gl.canvas.height != gl.drawingBufferHeight) { >+ testFailed("Buffer was the wrong size: " + >+ gl.drawingBufferWidth + "x" + gl.drawingBufferHeight); >+ } else { >+ testPassed("Buffer was the correct size: " + >+ gl.drawingBufferWidth + "x" + gl.drawingBufferHeight); >+ refreshFrame(); >+ } >+ >+ gl = null; >+} >+ >+window.addEventListener("message", function(event) { >+ if(event.data == "Ready") { >+ testContext(); >+ } >+}); >+ >+refreshFrame(); >+ >+var successfullyParsed = true; >+</script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-release-with-workers.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-release-with-workers.html >new file mode 100644 >index 00000000000..0a7597c55db >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-release-with-workers.html >@@ -0,0 +1,93 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Context Release Test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<iframe id="host" style="width: 256px; height: 256px; border: 0;"></iframe> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description("This test ensures that WebGL contexts are released properly when a worker is used"); >+ >+var wtu = WebGLTestUtils; >+ >+var host = document.getElementById("host"); >+var testIterations = 25; >+var currentIteration = 0; >+ >+function refreshFrame() { >+ if(currentIteration < testIterations) { >+ currentIteration++; >+ debug(""); >+ debug("Test " + currentIteration + " of " + testIterations); >+ host.src = "resources/context-release-child-with-worker.html"; >+ } else { >+ finishTest(); >+ } >+} >+ >+function testContext() { >+ var gl = host.contentWindow.glContext; >+ assertMsg(gl != null, "context was created properly"); >+ >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors"); >+ >+ if(gl.canvas.width != gl.drawingBufferWidth || >+ gl.canvas.height != gl.drawingBufferHeight) { >+ testFailed("Buffer was the wrong size: " + >+ gl.drawingBufferWidth + "x" + gl.drawingBufferHeight); >+ } else { >+ testPassed("Buffer was the correct size: " + >+ gl.drawingBufferWidth + "x" + gl.drawingBufferHeight); >+ refreshFrame(); >+ } >+ >+ gl = null; >+} >+ >+window.addEventListener("message", function(event) { >+ if(event.data == "Ready") { >+ testContext(); >+ } >+}); >+ >+refreshFrame(); >+ >+var successfullyParsed = true; >+</script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-size-change.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-size-change.html >new file mode 100644 >index 00000000000..60af6a827d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-size-change.html >@@ -0,0 +1,113 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+ >+<script> >+"use strict"; >+ >+// These declarations need to be global for "shouldBe" to see them >+var gl; >+var pixel = [0, 0, 0, 1]; >+var canvas; >+ >+function init() >+{ >+ description('Verify that changing the size of an antialiased WebGL context does not cause it to stop working.'); >+ >+ runTest(); >+} >+ >+function getWebGL(canvasWidth, canvasHeight, contextAttribs) >+{ >+ canvas = document.createElement("canvas"); >+ if (!canvas) >+ return null; >+ canvas.width = canvasWidth; >+ canvas.height = canvasHeight; >+ >+ gl = WebGLTestUtils.create3DContext(canvas, contextAttribs); >+ if (!gl) >+ return null; >+ >+ return gl; >+} >+ >+function runTest() >+{ >+ shouldBeNonNull("gl = getWebGL(1, 1, { alpha: false, antialias: true })"); >+ >+ // Clear to black. >+ gl.clearColor(0.0, 0.0, 0.0, 1.0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ // Check that the pixel's R channel is 0. >+ var buf = new Uint8Array(1 * 1 * 4); >+ gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, buf); >+ pixel[0] = buf[0]; >+ shouldBeTrue("pixel[0] == 0"); >+ >+ // Change the size of the canvas. >+ canvas.width = 3; >+ canvas.height = 3; >+ >+ // Clear to black. >+ gl.clearColor(0.0, 0.0, 0.0, 1.0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ // Clear the top-left pixel to white. >+ gl.enable(gl.SCISSOR_TEST); >+ gl.scissor(0, 0, 1, 1); >+ gl.clearColor(1.0, 1.0, 1.0, 1.0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ // Check that the top-left pixel has R channel 255. >+ gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, buf); >+ pixel[0] = buf[0]; >+ shouldBeTrue("pixel[0] == 255"); >+ >+ // Check that the bottom-right pixel has R channel 0. >+ gl.readPixels(2, 2, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, buf); >+ pixel[0] = buf[0]; >+ shouldBeTrue("pixel[0] == 0"); >+ >+ finishTest(); >+} >+ >+</script> >+</head> >+<body onload="init()"> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-type-test.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-type-test.html >new file mode 100644 >index 00000000000..088ef42b2b9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/context-type-test.html >@@ -0,0 +1,74 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Canvas Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> >+<canvas id="canvas2d" width="40" height="40"> </canvas> >+<script> >+"use strict"; >+description("This test ensures WebGL implementations interact correctly with the canvas tag."); >+ >+debug(""); >+debug("Canvas.getContext"); >+ >+assertMsg(window.WebGLRenderingContext, >+ "WebGLRenderingContext should be a member of window"); >+assertMsg('WebGLRenderingContext' in window, >+ "WebGLRenderingContext should be 'in' window"); >+assertMsg(Object.getPrototypeOf(WebGLRenderingContext.prototype) === Object.prototype, >+ "WebGLRenderingContext should only have Object in it's prototype chain"); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas); >+if (!gl) { >+ testFailed("context does not exist"); >+} else { >+ testPassed("context exists"); >+ >+ debug("Checking context type"); >+ assertMsg(gl instanceof WebGLRenderingContext, >+ "context type should be WebGLRenderingContext"); >+} >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/incorrect-context-object-behaviour.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/incorrect-context-object-behaviour.html >new file mode 100644 >index 00000000000..ec4fc996135 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/incorrect-context-object-behaviour.html >@@ -0,0 +1,88 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+description("Tests calling WebGL APIs with objects from other contexts"); >+ >+var wtu = WebGLTestUtils; >+var contextA = wtu.create3DContext(); >+var contextB = wtu.create3DContext(); >+var programA = wtu.loadStandardProgram(contextA); >+var programB = wtu.loadStandardProgram(contextB); >+var shaderA = wtu.loadStandardVertexShader(contextA); >+var shaderB = wtu.loadStandardVertexShader(contextB); >+var textureA = contextA.createTexture(); >+var textureB = contextB.createTexture(); >+var frameBufferA = contextA.createFramebuffer(); >+var frameBufferB = contextB.createFramebuffer(); >+var renderBufferA = contextA.createRenderbuffer(); >+var renderBufferB = contextB.createRenderbuffer(); >+var locationA = contextA.getUniformLocation(programA, 'u_modelViewProjMatrix'); >+var locationB = contextB.getUniformLocation(programB, 'u_modelViewProjMatrix'); >+ >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.compileShader(shaderB)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.linkProgram(programB)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.attachShader(programA, shaderB)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.attachShader(programB, shaderA)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.attachShader(programB, shaderB)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.detachShader(programA, shaderB)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.detachShader(programB, shaderA)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.detachShader(programB, shaderB)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.shaderSource(shaderB, 'foo')"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.bindAttribLocation(programB, 0, 'foo')"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.bindFramebuffer(contextA.FRAMEBUFFER, frameBufferB)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.bindRenderbuffer(contextA.RENDERBUFFER, renderBufferB)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.bindTexture(contextA.TEXTURE_2D, textureB)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.framebufferRenderbuffer(contextA.FRAMEBUFFER, contextA.DEPTH_ATTACHMENT, contextA.RENDERBUFFER, renderBufferB)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.framebufferTexture2D(contextA.FRAMEBUFFER, contextA.COLOR_ATTACHMENT0, contextA.TEXTURE_2D, textureB, 0)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.getProgramParameter(programB, 0)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.getProgramInfoLog(programB, 0)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.getShaderParameter(shaderB, 0)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.getShaderInfoLog(shaderB, 0)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.getShaderSource(shaderB)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.getUniform(programB, locationA)"); >+wtu.shouldGenerateGLError(contextA, contextA.INVALID_OPERATION, "contextA.getUniformLocation(programB, 'u_modelViewProjMatrix')"); >+ >+var successfullyParsed = true; >+</script> >+ >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/methods.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/methods.html >new file mode 100644 >index 00000000000..a086a1677af >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/methods.html >@@ -0,0 +1,239 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Methods Test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> >+<script> >+"use strict"; >+description("This test ensures that the WebGL context has all the methods in the specification."); >+ >+var methods = [ >+ "getContextAttributes", >+ "activeTexture", >+ "attachShader", >+ "bindAttribLocation", >+ "bindBuffer", >+ "bindFramebuffer", >+ "bindRenderbuffer", >+ "bindTexture", >+ "blendColor", >+ "blendEquation", >+ "blendEquationSeparate", >+ "blendFunc", >+ "blendFuncSeparate", >+ "bufferData", >+ "bufferSubData", >+ "checkFramebufferStatus", >+ "clear", >+ "clearColor", >+ "clearDepth", >+ "clearStencil", >+ "colorMask", >+ "compileShader", >+ "compressedTexImage2D", >+ "compressedTexSubImage2D", >+ "copyTexImage2D", >+ "copyTexSubImage2D", >+ "createBuffer", >+ "createFramebuffer", >+ "createProgram", >+ "createRenderbuffer", >+ "createShader", >+ "createTexture", >+ "cullFace", >+ "deleteBuffer", >+ "deleteFramebuffer", >+ "deleteProgram", >+ "deleteRenderbuffer", >+ "deleteShader", >+ "deleteTexture", >+ "depthFunc", >+ "depthMask", >+ "depthRange", >+ "detachShader", >+ "disable", >+ "disableVertexAttribArray", >+ "drawArrays", >+ "drawElements", >+ "enable", >+ "enableVertexAttribArray", >+ "finish", >+ "flush", >+ "framebufferRenderbuffer", >+ "framebufferTexture2D", >+ "frontFace", >+ "generateMipmap", >+ "getActiveAttrib", >+ "getActiveUniform", >+ "getAttachedShaders", >+ "getAttribLocation", >+ "getParameter", >+ "getBufferParameter", >+ "getError", >+ "getExtension", >+ "getFramebufferAttachmentParameter", >+ "getProgramParameter", >+ "getProgramInfoLog", >+ "getRenderbufferParameter", >+ "getShaderParameter", >+ "getShaderInfoLog", >+ "getShaderPrecisionFormat", >+ "getShaderSource", >+ "getSupportedExtensions", >+ "getTexParameter", >+ "getUniform", >+ "getUniformLocation", >+ "getVertexAttrib", >+ "getVertexAttribOffset", >+ "hint", >+ "isBuffer", >+ "isContextLost", >+ "isEnabled", >+ "isFramebuffer", >+ "isProgram", >+ "isRenderbuffer", >+ "isShader", >+ "isTexture", >+ "lineWidth", >+ "linkProgram", >+ "pixelStorei", >+ "polygonOffset", >+ "readPixels", >+ "renderbufferStorage", >+ "sampleCoverage", >+ "scissor", >+ "shaderSource", >+ "stencilFunc", >+ "stencilFuncSeparate", >+ "stencilMask", >+ "stencilMaskSeparate", >+ "stencilOp", >+ "stencilOpSeparate", >+ "texImage2D", >+ "texParameterf", >+ "texParameteri", >+ "texSubImage2D", >+ "uniform1f", >+ "uniform1fv", >+ "uniform1i", >+ "uniform1iv", >+ "uniform2f", >+ "uniform2fv", >+ "uniform2i", >+ "uniform2iv", >+ "uniform3f", >+ "uniform3fv", >+ "uniform3i", >+ "uniform3iv", >+ "uniform4f", >+ "uniform4fv", >+ "uniform4i", >+ "uniform4iv", >+ "uniformMatrix2fv", >+ "uniformMatrix3fv", >+ "uniformMatrix4fv", >+ "useProgram", >+ "validateProgram", >+ "vertexAttrib1f", >+ "vertexAttrib1fv", >+ "vertexAttrib2f", >+ "vertexAttrib2fv", >+ "vertexAttrib3f", >+ "vertexAttrib3fv", >+ "vertexAttrib4f", >+ "vertexAttrib4fv", >+ "vertexAttribPointer", >+ "viewport" >+]; >+ >+// Properties to be ignored because they were added in versions of the >+// spec that are backward-compatible with this version >+var ignoredMethods = [ >+ // There is no official spec for the commit API yet, the proposal link is: >+ // https://wiki.whatwg.org/wiki/OffscreenCanvas >+ "commit" >+]; >+ >+function assertFunction(v, f) { >+ try { >+ if (typeof v[f] != "function") { >+ testFailed("Property either does not exist or is not a function: " + f); >+ return false; >+ } else { >+ return true; >+ } >+ } catch(e) { >+ testFailed("Trying to access the property '" + f + "' threw an error: "+e.toString()); >+ } >+} >+ >+debug(""); >+debug("Canvas.getContext"); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas); >+var passed = true; >+for (var i=0; i<methods.length; i++) { >+ var r = assertFunction(gl, methods[i]); >+ passed = passed && r; >+} >+if (passed) { >+ testPassed("All WebGL methods found."); >+} >+var extended = false; >+for (var i in gl) { >+ if (typeof gl[i] == "function" && methods.indexOf(i) == -1 && ignoredMethods.indexOf(i) == -1) { >+ if (!extended) { >+ extended = true; >+ testFailed("Also found the following extra methods:"); >+ } >+ testFailed(i); >+ } >+} >+ >+if (!extended) { >+ testPassed("No extra methods found on WebGL context."); >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/premultiplyalpha-test.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/premultiplyalpha-test.html >new file mode 100644 >index 00000000000..a29154e0070 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/premultiplyalpha-test.html >@@ -0,0 +1,266 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Test the WebGL premultipliedAlpha context creation flag.</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<div id="description"></div><div id="console"></div> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+ >+// wtu.create3DContext(...) will set antialias to false by default >+// if the antialias property is not set to true explicitly. >+// To cover the antialias case, it needs to set antialias to true >+// explicitly. >+var tests = [ >+ // If premultipliedAlpha is true and antialias is false then >+ // [texture] [canvas] [dataURL] >+ // 32, 64, 128, 128 -> 64, 128, 255, 128 -> 64, 128, 255, 128 >+ { creationAttributes: {}, >+ sentColor: [32, 64, 128, 128], >+ expectedColor: [64, 128, 255, 128], >+ errorRange: 2, >+ imageFormat: "image/png" >+ }, >+ // If premultipliedAlpha is true and antialias is true then >+ // [texture] [canvas] [dataURL] >+ // 32, 64, 128, 128 -> 64, 128, 255, 128 -> 64, 128, 255, 128 >+ { creationAttributes: {antialias: true}, >+ sentColor: [32, 64, 128, 128], >+ expectedColor: [64, 128, 255, 128], >+ errorRange: 2, >+ imageFormat: "image/png" >+ }, >+ // If premultipliedAlpha is true and antialias is false then >+ // [texture] [canvas] [texture] >+ // 32, 64, 128, 128 -> 64, 128, 255, 128 -> 64, 128, 255, 128 >+ { creationAttributes: {}, >+ sentColor: [32, 64, 128, 128], >+ expectedColor: [64, 128, 255, 128], >+ errorRange: 2, >+ }, >+ // If premultipliedAlpha is true and antialias is true then >+ // [texture] [canvas] [texture] >+ // 32, 64, 128, 128 -> 64, 128, 255, 128 -> 64, 128, 255, 128 >+ { creationAttributes: {antialias: true}, >+ sentColor: [32, 64, 128, 128], >+ expectedColor: [64, 128, 255, 128], >+ errorRange: 2, >+ }, >+ // If premultipliedAlpha is false and antialias is false then >+ // [texture] [canvas] [dataURL] >+ // 255, 192, 128, 1 -> 255, 192, 128, 1 -> 255, 192, 128, 1 >+ { creationAttributes: {premultipliedAlpha: false}, >+ sentColor: [255, 192, 128, 1], >+ expectedColor: [255, 192, 128, 1], >+ errorRange: 0, >+ imageFormat: "image/png" >+ }, >+ // If premultipliedAlpha is false and antialias is true then >+ // [texture] [canvas] [dataURL] >+ // 255, 192, 128, 1 -> 255, 192, 128, 1 -> 255, 192, 128, 1 >+ { creationAttributes: {premultipliedAlpha: false, antialias: true}, >+ sentColor: [255, 192, 128, 1], >+ expectedColor: [255, 192, 128, 1], >+ errorRange: 0, >+ imageFormat: "image/png" >+ }, >+ // If premultipliedAlpha is false and antialias is false then >+ // [texture] [canvas] [texture] >+ // 255, 192, 128, 1 -> 255, 192, 128, 1 -> 255, 192, 128, 1 >+ { creationAttributes: {premultipliedAlpha: false}, >+ sentColor: [255, 192, 128, 1], >+ expectedColor: [255, 192, 128, 1], >+ errorRange: 0, >+ }, >+ // If premultipliedAlpha is false and antialias is true then >+ // [texture] [canvas] [texture] >+ // 255, 192, 128, 1 -> 255, 192, 128, 1 -> 255, 192, 128, 1 >+ { creationAttributes: {premultipliedAlpha: false, antialias: true}, >+ sentColor: [255, 192, 128, 1], >+ expectedColor: [255, 192, 128, 1], >+ errorRange: 0, >+ }, >+ // If premultipliedAlpha is false and antialias is false then >+ // [texture] [canvas] [dataURL] >+ // 255, 255, 255, 128 -> 255, 255, 255, 128 -> 128, 128, 128, 255 >+ { creationAttributes: {premultipliedAlpha: false}, >+ sentColor: [255, 255, 255, 128], >+ expectedColor: [128, 128, 128, 255], >+ errorRange: 2, >+ imageFormat: "image/jpeg" >+ }, >+ // If premultipliedAlpha is false and antialias is true then >+ // [texture] [canvas] [dataURL] >+ // 255, 255, 255, 128 -> 255, 255, 255, 128 -> 128, 128, 128, 255 >+ { creationAttributes: {premultipliedAlpha: false, antialias: true}, >+ sentColor: [255, 255, 255, 128], >+ expectedColor: [128, 128, 128, 255], >+ errorRange: 2, >+ imageFormat: "image/jpeg" >+ }, >+ // If premultipliedAlpha is true and antialias is false then >+ // [texture] [canvas] [dataURL] >+ // 128, 128, 128, 128 -> 255, 255, 255, 128 -> 128, 128, 128, 255 >+ { creationAttributes: {}, >+ sentColor: [128, 128, 128, 128], >+ expectedColor: [128, 128, 128, 255], >+ errorRange: 2, >+ imageFormat: "image/jpeg" >+ }, >+ // If premultipliedAlpha is true and antialias is true then >+ // [texture] [canvas] [dataURL] >+ // 128, 128, 128, 128 -> 255, 255, 255, 128 -> 128, 128, 128, 255 >+ { creationAttributes: {antialias: true}, >+ sentColor: [128, 128, 128, 128], >+ expectedColor: [128, 128, 128, 255], >+ errorRange: 2, >+ imageFormat: "image/jpeg" >+ } >+]; >+ >+var g_count = 0; >+var gl; >+var canvas; >+var premultipliedAlpha; >+ >+enableJSTestPreVerboseLogging(); >+description("Test the WebGL premultipliedAlpha context creation flag."); >+doNextTest(); >+function doNextTest() { >+ if (g_count < tests.length) { >+ var test = tests[g_count++]; >+ canvas = document.createElement("canvas"); >+ // Need to preserve drawing buffer to load it in a callback >+ test.creationAttributes.preserveDrawingBuffer = true; >+ gl = wtu.create3DContext(canvas, test.creationAttributes); >+ var premultipliedAlpha = test.creationAttributes.premultipliedAlpha != false; >+ var antialias = test.creationAttributes.antialias == true; >+ debug("") >+ debug("testing: premultipliedAlpha: " + premultipliedAlpha >+ + ", antialias: " + antialias >+ + ", imageFormat: " + test.imageFormat); >+ >+ shouldBe('gl.getContextAttributes().premultipliedAlpha', premultipliedAlpha.toString()); >+ shouldBeTrue('gl.getContextAttributes().preserveDrawingBuffer'); >+ >+ wtu.log(gl.getContextAttributes()); >+ var program = wtu.setupTexturedQuad(gl); >+ >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from setup."); >+ var tex = gl.createTexture(); >+ wtu.fillTexture(gl, tex, 2, 2, test.sentColor, 0); >+ var loc = gl.getUniformLocation(program, "tex"); >+ gl.uniform1i(loc, 0); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from drawing."); >+ >+ var loadTexture = function() { >+ debug("loadTexture called"); >+ var pngTex = gl.createTexture(); >+ // not needed as it's the default >+ // gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false); >+ wtu.failIfGLError(gl, 'gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, gl.NONE);'); >+ gl.bindTexture(gl.TEXTURE_2D, pngTex); >+ if (test.imageFormat) { >+ // create texture from image >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this); >+ } else { >+ // create texture from canvas >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, canvas); >+ } >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from creating copy."); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from 2nd drawing."); >+ wtu.checkCanvas( >+ gl, test.expectedColor, >+ "should draw with " + test.expectedColor, test.errorRange); >+ >+ doNextTest(); >+ } >+ >+ var loadTextureError = function() { >+ testFailed("Creating image from canvas failed. Image src: " + this.src); >+ finishTest(); >+ } >+ >+ var shrinkString = function(string) { >+ if (string.length < 63) { >+ return string; >+ } >+ return string.substr(0, 30) + "..." + string.substr(string.length - 30); >+ } >+ >+ if (test.imageFormat) { >+ // Load canvas into string using toDataURL >+ debug("Calling canvas.toDataURL('" + test.imageFormat + "')"); >+ var imageUrl = canvas.toDataURL(test.imageFormat); >+ debug("imageUrl = '" + shrinkString(imageUrl) + "'"); >+ if (test.imageFormat != "image/png" && >+ (imageUrl.indexOf("data:image/png,") == 0 || >+ imageUrl.indexOf("data:image/png;") == 0)) { >+ debug("Image format " + test.imageFormat + " not supported; skipping"); >+ setTimeout(doNextTest, 0); >+ } else { >+ // Load string into the texture >+ debug("Waiting for image.onload"); >+ var input = wtu.makeImage(imageUrl, loadTexture, loadTextureError); >+ } >+ } else { >+ // Load canvas into the texture asynchronously (to prevent unbounded stack consumption) >+ debug("Waiting for setTimeout"); >+ setTimeout(loadTexture, 0); >+ } >+ } else { >+ var successfullyParsed = true; >+ finishTest(); >+ } >+} >+ >+</script> >+ >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/resource-sharing-test.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/resource-sharing-test.html >new file mode 100644 >index 00000000000..2281683d9c8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/resource-sharing-test.html >@@ -0,0 +1,64 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Resource Sharing.</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<canvas id="example1" width="2" height="2" style="width: 40px; height: 40px;"></canvas> >+<canvas id="example2" width="2" height="2" style="width: 40px; height: 40px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description("Tests that resources can not be shared."); >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var gl1 = wtu.create3DContext("example1"); >+var gl2 = wtu.create3DContext("example2"); >+assertMsg(gl1 && gl2, >+ "Got 3d context."); >+ >+var vertexObject = gl1.createBuffer(); >+gl2.bindBuffer(gl2.ARRAY_BUFFER, vertexObject); >+assertMsg( >+ gl2.getError() == gl2.INVALID_OPERATION, >+ "attempt to use a resource from the wrong context should fail with INVALID_OPERATION"); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/resources/context-release-child-with-worker.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/resources/context-release-child-with-worker.html >new file mode 100644 >index 00000000000..31cba6acdc0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/resources/context-release-child-with-worker.html >@@ -0,0 +1,76 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html style="margin: 0; padding: 0;"> >+<head> >+<meta charset="utf-8"> >+<title>Simple WebGL context with Worker</title> >+<script src="../../../js/webgl-test-utils.js"> </script> >+</head> >+<body style="margin: 0; padding: 0; overflow: hidden;"> >+<canvas id="c" width="1680" height="1050" style="width: 256px; height: 256px;"> <!-- scaled to fit page better --> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+void main() >+{ >+ gl_FragColor = vec4(1.0,0.0,0.0,1.0); >+} >+</script> >+ >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+var myWorker = new Worker("context-release-worker.js"); >+ >+var gl = wtu.create3DContext("c", { antialias: false }); >+var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["vPosition"]); >+ >+var vertexObject = gl.createBuffer(); >+gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ 0,0.75,0, -0.75,-0.75,0, 0.75,-0.75,0 ]), gl.STATIC_DRAW); >+gl.enableVertexAttribArray(0); >+gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+ >+gl.clearColor(0.0, 0.0, 0.0, 1.0); >+gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+gl.drawArrays(gl.TRIANGLES, 0, 3); >+ >+if (parent) { >+ window.glContext = gl; >+ parent.postMessage("Ready", "*"); >+} >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/resources/context-release-upon-reload-child.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/resources/context-release-upon-reload-child.html >new file mode 100644 >index 00000000000..87058e9fa0d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/resources/context-release-upon-reload-child.html >@@ -0,0 +1,75 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html style="margin: 0; padding: 0;"> >+<head> >+<meta charset="utf-8"> >+<title>Simple WebGL context</title> >+<script src="../../../js/webgl-test-utils.js"> </script> >+</head> >+<body style="margin: 0; padding: 0; overflow: hidden;"> >+<canvas id="c" width="1680" height="1050" style="width: 256px; height: 256px;"> <!-- scaled to fit page better --> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+void main() >+{ >+ gl_FragColor = vec4(1.0,0.0,0.0,1.0); >+} >+</script> >+ >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+ >+var gl = wtu.create3DContext("c", { antialias: false }); >+var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["vPosition"]); >+ >+var vertexObject = gl.createBuffer(); >+gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ 0,0.75,0, -0.75,-0.75,0, 0.75,-0.75,0 ]), gl.STATIC_DRAW); >+gl.enableVertexAttribArray(0); >+gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+ >+gl.clearColor(0.0, 0.0, 0.0, 1.0); >+gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+gl.drawArrays(gl.TRIANGLES, 0, 3); >+ >+if (parent) { >+ window.glContext = gl; >+ parent.postMessage("Ready", "*"); >+} >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/resources/context-release-worker.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/resources/context-release-worker.js >new file mode 100644 >index 00000000000..3680117c25b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/resources/context-release-worker.js >@@ -0,0 +1,4 @@ >+// Simple worker used to provoke WebGL context release bugs on Chrome >+ >+postMessage("Hello World"); >+close(); >\ No newline at end of file >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/user-defined-properties-on-context.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/user-defined-properties-on-context.html >new file mode 100644 >index 00000000000..0afcc7c6488 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/context/user-defined-properties-on-context.html >@@ -0,0 +1,70 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL User-Defined Properties Test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body onload="initialize()"> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> >+<script> >+"use strict"; >+description("This test ensures that if user-defined properties are set on the WebGL context object, that they don't disappear after garbage collection."); >+ >+var gl2 = null; >+ >+function initialize() { >+ var wtu = WebGLTestUtils; >+ var canvas = document.getElementById("canvas"); >+ var gl1 = wtu.create3DContext(canvas); >+ if (!gl1) { >+ testFailed("WebGL context does not exist"); >+ finishTest(); >+ } else { >+ testPassed("WebGL context exists"); >+ gl1.myProperty = 2; >+ wtu.requestAnimFrame(runTest); >+ } >+} >+ >+function runTest() { >+ webglHarnessCollectGarbage(); >+ var wtu = WebGLTestUtils; >+ var canvas = document.getElementById("canvas"); >+ gl2 = wtu.create3DContext(canvas); >+ shouldBe('gl2.myProperty', '2'); >+ finishTest(); >+} >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/00_test_list.txt >new file mode 100644 >index 00000000000..07707228456 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/00_test_list.txt >@@ -0,0 +1,39 @@ >+--min-version 1.0.3 --max-version 1.9.9 angle-instanced-arrays.html >+--min-version 1.0.3 --max-version 1.9.9 angle-instanced-arrays-out-of-bounds.html >+--min-version 1.0.3 --max-version 1.9.9 ext-blend-minmax.html >+--min-version 1.0.4 ext-disjoint-timer-query.html >+--min-version 1.0.3 --max-version 1.9.9 ext-frag-depth.html >+--min-version 1.0.3 --max-version 1.9.9 ext-shader-texture-lod.html >+--min-version 1.0.3 --max-version 1.9.9 ext-sRGB.html >+--min-version 1.0.2 ext-texture-filter-anisotropic.html >+--min-version 1.0.2 get-extension.html >+--max-version 1.9.9 oes-standard-derivatives.html >+--max-version 1.9.9 oes-texture-float-with-canvas.html >+--max-version 1.9.9 oes-texture-float-with-image-data.html >+--max-version 1.9.9 oes-texture-float-with-image.html >+--max-version 1.9.9 oes-texture-float-with-video.html >+--max-version 1.9.9 oes-texture-float.html >+--max-version 1.9.9 oes-vertex-array-object.html >+--min-version 1.0.3 --max-version 1.9.9 oes-vertex-array-object-bufferData.html >+--min-version 1.0.3 --max-version 1.9.9 oes-texture-half-float.html >+--min-version 1.0.3 oes-texture-float-linear.html >+--min-version 1.0.3 --max-version 1.9.9 oes-texture-half-float-linear.html >+--min-version 1.0.3 --max-version 1.9.9 oes-texture-half-float-with-canvas.html >+--min-version 1.0.3 --max-version 1.9.9 oes-texture-half-float-with-image-data.html >+--min-version 1.0.3 --max-version 1.9.9 oes-texture-half-float-with-image.html >+--min-version 1.0.3 --max-version 1.9.9 oes-texture-half-float-with-video.html >+--min-version 1.0.2 --max-version 1.9.9 oes-element-index-uint.html >+webgl-debug-renderer-info.html >+webgl-debug-shaders.html >+--min-version 1.0.4 webgl-compressed-texture-astc.html >+--min-version 1.0.4 webgl-compressed-texture-etc.html >+--min-version 1.0.3 webgl-compressed-texture-pvrtc.html >+--min-version 1.0.2 webgl-compressed-texture-s3tc.html >+--min-version 1.0.4 webgl-compressed-texture-s3tc-srgb.html >+--min-version 1.0.3 webgl-compressed-texture-size-limit.html >+--min-version 1.0.2 --max-version 1.9.9 webgl-depth-texture.html >+--min-version 1.0.3 --max-version 1.9.9 webgl-draw-buffers.html >+--min-version 1.0.4 --max-version 1.9.9 webgl-draw-buffers-broadcast-return.html >+--min-version 1.0.3 --max-version 1.9.9 webgl-draw-buffers-feedback-loop.html >+--min-version 1.0.4 --max-version 1.9.9 webgl-draw-buffers-framebuffer-unsupported.html >+--min-version 1.0.4 --max-version 1.9.9 webgl-draw-buffers-max-draw-buffers.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/angle-instanced-arrays-out-of-bounds.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/angle-instanced-arrays-out-of-bounds.html >new file mode 100644 >index 00000000000..d632c9d373c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/angle-instanced-arrays-out-of-bounds.html >@@ -0,0 +1,77 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/out-of-bounds-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+description("Test of drawArraysInstancedANGLE and drawElementsInstancedANGLE with out-of-bounds parameters"); >+ >+var wtu = WebGLTestUtils; >+ >+var gl = wtu.create3DContext(); >+var ext = wtu.getExtensionWithKnownPrefixes(gl, "ANGLE_instanced_arrays"); >+if (!ext) { >+ testPassed("No ANGLE_instanced_arrays support -- this is legal"); >+} else { >+ testPassed("Successfully enabled ANGLE_instanced_arrays extension"); >+ debug(""); >+ debug("Test with 1 instance without instanced attributes"); >+ debug(""); >+ OutOfBoundsTest.runDrawArraysTest("ext.drawArraysInstancedANGLE(gl.TRIANGLES, $(offset), $(count), 1)", gl, wtu, ext); >+ debug(""); >+ OutOfBoundsTest.runDrawElementsTest("ext.drawElementsInstancedANGLE(gl.TRIANGLES, $(count), $(type), $(offset), 1)", gl, wtu, ext); >+ debug(""); >+ debug("Test with 2 instances without instanced attributes"); >+ debug(""); >+ OutOfBoundsTest.runDrawArraysTest("ext.drawArraysInstancedANGLE(gl.TRIANGLES, $(offset), $(count), 2)", gl, wtu, ext); >+ debug(""); >+ OutOfBoundsTest.runDrawElementsTest("ext.drawElementsInstancedANGLE(gl.TRIANGLES, $(count), $(type), $(offset), 2)", gl, wtu, ext); >+ debug(""); >+ OutOfBoundsTest.runDrawArraysInstancedTest("ext.drawArraysInstancedANGLE(gl.TRIANGLES, $(offset), $(count), $(primcount))", gl, wtu, ext); >+ debug(""); >+ OutOfBoundsTest.runDrawElementsInstancedTest("ext.drawElementsInstancedANGLE(gl.TRIANGLES, $(count), $(type), $(offset), $(primcount))", gl, wtu, ext); >+ debug(""); >+} >+ >+var successfullyParsed = true; >+</script> >+ >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/angle-instanced-arrays.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/angle-instanced-arrays.html >new file mode 100644 >index 00000000000..ac5bd445f64 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/angle-instanced-arrays.html >@@ -0,0 +1,664 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL ANGLE_instanced_arrays Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/desktop-gl-constants.js"></script> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> >+<div id="console"></div> >+<!-- Shaders for testing instanced draws --> >+<script id="outputVertexShader" type="x-shader/x-vertex"> >+attribute vec4 aPosition; >+attribute vec2 aOffset; >+attribute vec4 aColor; >+varying vec4 vColor; >+void main() { >+ vColor = aColor; >+ gl_Position = aPosition + vec4(aOffset, 0.0, 0.0); >+} >+</script> >+ >+<script id="outputFragmentShader" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec4 vColor; >+void main() { >+ gl_FragColor = vColor; >+} >+</script> >+ >+<script id="drawArraysTestVertexShader" type="x-shader/x-vertex"> >+attribute vec3 aPosition; >+attribute vec3 aInstancePos; >+uniform vec3 uOffset; >+void main() { >+ gl_Position = vec4(aPosition.xyz + aInstancePos.xyz + uOffset, 1.0); >+} >+</script> >+ >+<script id="drawArraysTestFragmentShader" type="x-shader/x-fragment"> >+void main() { >+ gl_FragColor = vec4(1.0, 0, 0, 1.0); >+} >+</script> >+ >+<script> >+"use strict"; >+description("This test verifies the functionality of the ANGLE_instanced_arrays extension, if it is available."); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas); >+var ext = null; >+var vaoext = null; >+ >+var positionLoc = 0; >+var offsetLoc = 2; >+var colorLoc = 3; >+var program; >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+ finishTest(); >+} else { >+ testPassed("WebGL context exists"); >+ >+ runDivisorTestDisabled(); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = wtu.getExtensionWithKnownPrefixes(gl, "ANGLE_instanced_arrays"); >+ if (!ext) { >+ testPassed("No ANGLE_instanced_arrays support -- this is legal"); >+ >+ runSupportedTest(false); >+ finishTest(); >+ } else { >+ testPassed("Successfully enabled ANGLE_instanced_arrays extension"); >+ >+ runSupportedTest(true); >+ >+ runDivisorTestEnabled(); >+ runUniqueObjectTest(); >+ >+ setupCanvas(); >+ runOutputTests(); >+ runDrawArraysWithOffsetTest(); >+ runVAOInstancingInteractionTest(); >+ runANGLECorruptionTest(); >+ // Note that the ANGLE corruption test leaves vertex attrib divisors dirty at the moment. >+ // This should be cleaned up if more subtests are added after it. >+ } >+} >+ >+function runSupportedTest(extensionEnabled) { >+ var supported = gl.getSupportedExtensions(); >+ if (supported.indexOf("ANGLE_instanced_arrays") >= 0) { >+ if (extensionEnabled) { >+ testPassed("ANGLE_instanced_arrays listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("ANGLE_instanced_arrays listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("ANGLE_instanced_arrays not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("ANGLE_instanced_arrays not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+function runDivisorTestDisabled() { >+ debug("Testing VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE with extension disabled"); >+ >+ var VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE; >+ >+ gl.getVertexAttrib(0, VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE should not be queryable if extension is disabled"); >+} >+ >+function runDivisorTestEnabled() { >+ debug("Testing VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE with extension enabled"); >+ >+ shouldBe("ext.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE", "0x88FE"); >+ >+ var max_vertex_attribs = gl.getParameter(gl.MAX_VERTEX_ATTRIBS); >+ >+ for (var i = 0; i < max_vertex_attribs; ++i) { >+ var queried_value = gl.getVertexAttrib(i, ext.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE); >+ if(queried_value == 0){ >+ testPassed("Vertex attribute " + i + " must has a default divisor of 0"); >+ } >+ else{ >+ testFailed("Default divisor of vertex attribute " + i + " should be: 0, returned value was: " + queried_value); >+ } >+ } >+ >+ ext.vertexAttribDivisorANGLE(max_vertex_attribs, 2); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "vertexAttribDivisorANGLE index set greater than or equal to MAX_VERTEX_ATTRIBS should be an invalid value"); >+ >+ ext.vertexAttribDivisorANGLE(max_vertex_attribs-1, 2); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "vertexAttribDivisorANGLE index set less than MAX_VERTEX_ATTRIBS should succeed"); >+ >+ var queried_value = gl.getVertexAttrib(max_vertex_attribs-1, ext.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE); >+ if(queried_value == 2){ >+ testPassed("Set value of VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE matches expecation"); >+ } >+ else{ >+ testFailed("Set value of VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE should be: 2, returned value was: " + queried_value); >+ } >+ >+ // Reset vertex attrib divisors so they cannot affect following subtests. >+ ext.vertexAttribDivisorANGLE(max_vertex_attribs-1, 0); >+} >+ >+function setupCanvas() { >+ canvas.width = 50; canvas.height = 50; >+ gl.viewport(0, 0, canvas.width, canvas.height); >+ gl.clearColor(0, 0, 0, 0); >+ >+ program = wtu.setupProgram(gl, ["outputVertexShader", "outputFragmentShader"], ['aPosition', 'aOffset', 'aColor'], [positionLoc, offsetLoc, colorLoc]); >+ ext = gl.getExtension("ANGLE_instanced_arrays"); >+} >+ >+function runOutputTests() { >+ var instanceCount = 4; >+ >+ debug("Testing various draws for valid built-in function behavior"); >+ >+ var offsets = new Float32Array([ >+ -1.0, 1.0, >+ 1.0, 1.0, >+ -1.0, -1.0, >+ 1.0, -1.0, >+ ]); >+ var offsetBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, offsetBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, offsets, gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(offsetLoc); >+ gl.vertexAttribPointer(offsetLoc, 2, gl.FLOAT, false, 0, 0); >+ ext.vertexAttribDivisorANGLE(offsetLoc, 1); >+ >+ var colors = new Float32Array([ >+ 1.0, 0.0, 0.0, 1.0, // Red >+ 0.0, 1.0, 0.0, 1.0, // Green >+ 0.0, 0.0, 1.0, 1.0, // Blue >+ 1.0, 1.0, 0.0, 1.0, // Yellow >+ ]); >+ var colorBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(colorLoc); >+ gl.vertexAttribPointer(colorLoc, 4, gl.FLOAT, false, 0, 0); >+ ext.vertexAttribDivisorANGLE(colorLoc, 1); >+ >+ wtu.setupUnitQuad(gl, 0); >+ >+ // Draw 1: Regular drawArrays >+ debug(""); >+ debug("Testing drawArrays with non-zero divisor"); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ gl.drawArrays(gl.TRIANGLES, 0, 6); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "vertex attrib divisor should affect regular drawArrays when the extension is enabled"); >+ wtu.checkCanvasRect(gl, 0, canvas.height/2, canvas.width/2, canvas.height/2, [255, 0, 0, 255]); >+ >+ // Draw 2: Draw Non-indexed instances >+ debug(""); >+ debug("Testing drawArraysInstancedANGLE"); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ // Test drawArraysInstancedANGLE error conditions >+ ext.drawArraysInstancedANGLE(gl.TRIANGLES, 0, 6, instanceCount); >+ wtu.checkCanvasRect(gl, 0, canvas.height/2, canvas.width/2, canvas.height/2, [255, 0, 0, 255]); >+ wtu.checkCanvasRect(gl, canvas.width/2, canvas.height/2, canvas.width/2, canvas.height/2, [0, 255, 0, 255]); >+ wtu.checkCanvasRect(gl, 0, 0, canvas.width/2, canvas.height/2, [0, 0, 255, 255]); >+ wtu.checkCanvasRect(gl, canvas.width/2, 0, canvas.width/2, canvas.height/2, [255, 255, 0, 255]); >+ >+ ext.drawArraysInstancedANGLE(gl.TRIANGLES, 0, 6, -1); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "drawArraysInstancedANGLE cannot have a primcount less than 0"); >+ >+ ext.drawArraysInstancedANGLE(gl.TRIANGLES, 0, -1, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "drawArraysInstancedANGLE cannot have a count less than 0"); >+ >+ ext.vertexAttribDivisorANGLE(positionLoc, 1); >+ ext.drawArraysInstancedANGLE(gl.TRIANGLES, 0, 6, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "There must be at least one vertex attribute with a divisor of zero when calling drawArraysInstancedANGLE"); >+ ext.vertexAttribDivisorANGLE(positionLoc, 0); >+ >+ ext.drawArraysInstancedANGLE(gl.POINTS, 0, 6, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawArraysInstancedANGLE with POINTS should succeed"); >+ ext.drawArraysInstancedANGLE(gl.LINES, 0, 6, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawArraysInstancedANGLE with LINES should succeed"); >+ ext.drawArraysInstancedANGLE(gl.LINE_LIST, 0, 6, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawArraysInstancedANGLE with LINE_LIST should return succeed"); >+ ext.drawArraysInstancedANGLE(gl.TRIANGLE_LIST, 0, 6, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawArraysInstancedANGLE with TRIANGLE_LIST should succeed"); >+ >+ ext.drawArraysInstancedANGLE(desktopGL['QUAD_STRIP'], 0, 6, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "drawArraysInstancedANGLE with QUAD_STRIP should return INVALID_ENUM"); >+ ext.drawArraysInstancedANGLE(desktopGL['QUADS'], 0, 6, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "drawArraysInstancedANGLE with QUADS should return INVALID_ENUM"); >+ ext.drawArraysInstancedANGLE(desktopGL['POLYGON'], 0, 6, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "drawArraysInstancedANGLE with POLYGON should return INVALID_ENUM"); >+ >+ debug(""); >+ debug("Testing drawArraysInstancedANGLE with param 'first' > 0"); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ wtu.setupQuad(gl, { >+ positionLocation: 0, >+ scale: 0.5 >+ }); >+ var offsetsHalf = new Float32Array([ >+ -0.5, 0.5, >+ 0.5, 0.5, >+ -0.5, -0.5, >+ 0.5, -0.5 >+ ]); >+ gl.bindBuffer(gl.ARRAY_BUFFER, offsetBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, offsetsHalf, gl.STATIC_DRAW); >+ >+ ext.drawArraysInstancedANGLE(gl.TRIANGLES, 3, 3, instanceCount); >+ var w = Math.floor(0.25*canvas.width), >+ h = Math.floor(0.25*canvas.height); >+ wtu.checkCanvasRect(gl, Math.ceil(0.25*canvas.width), 0.5*canvas.height, w, h, [255, 0, 0, 255]); >+ wtu.checkCanvasRect(gl, Math.ceil(0.75*canvas.width), 0.5*canvas.height, w, h, [0, 255, 0, 255]); >+ wtu.checkCanvasRect(gl, Math.ceil(0.25*canvas.width), 0, w, h, [0, 0, 255, 255]); >+ wtu.checkCanvasRect(gl, Math.ceil(0.75*canvas.width), 0, w, h, [255, 255, 0, 255]); >+ >+ wtu.setupUnitQuad(gl, 0); >+ wtu.setupIndexedQuad(gl, 1, 0); >+ gl.bindBuffer(gl.ARRAY_BUFFER, offsetBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, offsets, gl.STATIC_DRAW); >+ >+ // Draw 3: Regular drawElements >+ debug(""); >+ debug("Testing drawElements with non-zero divisor"); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ // Point to another location in the buffer so that the draw would overflow without the divisor >+ gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer); >+ gl.vertexAttribPointer(colorLoc, 4, gl.FLOAT, false, 0, 48); >+ gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "vertex attrib divisor should affect regular drawElements when the extension is enabled"); >+ wtu.checkCanvasRect(gl, 0, canvas.height/2, canvas.width/2, canvas.height/2, [255, 255, 0, 255]); >+ // Restore the vertex attrib pointer >+ gl.vertexAttribPointer(colorLoc, 4, gl.FLOAT, false, 0, 0); >+ >+ // Draw 4: Draw indexed instances >+ debug(""); >+ debug("Testing drawElementsInstancedANGLE"); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ ext.drawElementsInstancedANGLE(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0, instanceCount); >+ wtu.checkCanvasRect(gl, 0, canvas.height/2, canvas.width/2, canvas.height/2, [255, 0, 0, 255]); >+ wtu.checkCanvasRect(gl, canvas.width/2, canvas.height/2, canvas.width/2, canvas.height/2, [0, 255, 0, 255]); >+ wtu.checkCanvasRect(gl, 0, 0, canvas.width/2, canvas.height/2, [0, 0, 255, 255]); >+ wtu.checkCanvasRect(gl, canvas.width/2, 0, canvas.width/2, canvas.height/2, [255, 255, 0, 255]); >+ >+ // Test drawElementsInstancedANGLE error conditions >+ ext.drawElementsInstancedANGLE(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0, -1); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "drawElementsInstancedANGLE cannot have a primcount less than 0"); >+ >+ ext.drawElementsInstancedANGLE(gl.TRIANGLES, -1, gl.UNSIGNED_SHORT, 0, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "drawElementsInstancedANGLE cannot have a count less than 0"); >+ >+ ext.vertexAttribDivisorANGLE(positionLoc, 1); >+ ext.drawElementsInstancedANGLE(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "There must be at least one vertex attribute with a divisor of zero when calling drawElementsInstancedANGLE"); >+ ext.vertexAttribDivisorANGLE(positionLoc, 0); >+ >+ ext.drawElementsInstancedANGLE(gl.TRIANGLES, 6, gl.UNSIGNED_BYTE, 0, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawElementsInstancedANGLE with UNSIGNED_BYTE should succeed"); >+ >+ ext.drawElementsInstancedANGLE(gl.POINTS, 6, gl.UNSIGNED_SHORT, 0, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawElementsInstancedANGLE with POINTS should succeed"); >+ ext.drawElementsInstancedANGLE(gl.LINES, 6, gl.UNSIGNED_SHORT, 0, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawElementsInstancedANGLE with LINES should succeed"); >+ ext.drawElementsInstancedANGLE(gl.LINE_LIST, 6, gl.UNSIGNED_SHORT, 0, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawElementsInstancedANGLE with LINE_LIST should return succeed"); >+ ext.drawElementsInstancedANGLE(gl.TRIANGLE_LIST, 6, gl.UNSIGNED_SHORT, 0, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawElementsInstancedANGLE with TRIANGLE_LIST should succeed"); >+ >+ ext.drawElementsInstancedANGLE(desktopGL['QUAD_STRIP'], 6, gl.UNSIGNED_SHORT, 0, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "drawElementsInstancedANGLE with QUAD_STRIP should return INVALID_ENUM"); >+ ext.drawElementsInstancedANGLE(desktopGL['QUADS'], 6, gl.UNSIGNED_SHORT, 0, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "drawElementsInstancedANGLE with QUADS should return INVALID_ENUM"); >+ ext.drawElementsInstancedANGLE(desktopGL['POLYGON'], 6, gl.UNSIGNED_SHORT, 0, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "drawElementsInstancedANGLE with POLYGON should return INVALID_ENUM"); >+ >+ // Reset vertex attrib divisors so they cannot affect following subtests. >+ ext.vertexAttribDivisorANGLE(colorLoc, 0); >+ ext.vertexAttribDivisorANGLE(offsetLoc, 0); >+} >+ >+function runDrawArraysTest(program, first, count, instanceCount, offset) >+{ >+ // Get the attribute and uniform locations >+ var positionLoc = gl.getAttribLocation(program, "aPosition"); >+ var instancePosLoc = gl.getAttribLocation(program, "aInstancePos"); >+ var uniformLoc = gl.getUniformLocation(program, "uOffset"); >+ >+ // Load the vertex positions >+ var positions = new Float32Array([ >+ -1, -1, >+ -1, 0, >+ 0, 0, >+ >+ 0, 0, >+ 0, -1, >+ -1, -1, >+ >+ 1, -1, >+ 1, 0, >+ 0, 0, >+ >+ 0, 0, >+ 0, -1, >+ 1, -1, >+ ]); >+ var positionBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, positions, gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(positionLoc); >+ gl.vertexAttribPointer(positionLoc, 2, gl.FLOAT, false, 0, 0); >+ >+ // Load the instance positions >+ var instancePositions = new Float32Array([ >+ 0, 0, >+ 1, 0 >+ ]); >+ var instancePositionBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, instancePositionBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, instancePositions, gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(instancePosLoc); >+ gl.vertexAttribPointer(instancePosLoc, 2, gl.FLOAT, false, 0, 0); >+ >+ // Enable instancing >+ ext.vertexAttribDivisorANGLE(instancePosLoc, 1); >+ >+ // Offset >+ gl.uniform3fv(uniformLoc, offset); >+ >+ // Do the instanced draw >+ ext.drawArraysInstancedANGLE(gl.TRIANGLES, first, count, instanceCount); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawArraysInstancedANGLE should succeed"); >+ >+ // Reset vertex attrib divisors so they cannot affect following subtests. >+ ext.vertexAttribDivisorANGLE(instancePosLoc, 0); >+} >+ >+function runDrawArraysWithOffsetTest() >+{ >+ debug(""); >+ debug("Testing that the 'first' parameter to drawArraysInstancedANGLE is only an offset into the non-instanced vertex attributes."); >+ // See: http://crbug.com/457269 and http://crbug.com/447140 >+ >+ var drawArraysProgram = wtu.setupProgram(gl, ["drawArraysTestVertexShader", "drawArraysTestFragmentShader"]); >+ >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ runDrawArraysTest(drawArraysProgram, 0, 6, 2, [0, 0, 0]); >+ >+ runDrawArraysTest(drawArraysProgram, 6, 6, 2, [-1, 1, 0]); >+ >+ wtu.checkCanvasRect(gl, 0, 0, canvas.width, canvas.height, [255, 0, 0, 255]); >+} >+ >+function runUniqueObjectTest() >+{ >+ debug(""); >+ debug("Testing that getExtension() returns the same object each time"); >+ ext = null; >+ gl.getExtension("ANGLE_instanced_arrays").myProperty = 2; >+ webglHarnessCollectGarbage(); >+ shouldBe('gl.getExtension("ANGLE_instanced_arrays").myProperty', '2'); >+} >+ >+function runVAOInstancingInteractionTest() >+{ >+ debug("") >+ debug("Testing that ANGLE_instanced_arrays interacts correctly with OES_vertex_array_object if present"); >+ // See: https://github.com/KhronosGroup/WebGL/issues/1228 >+ >+ // Query the extension and store globally so shouldBe can access it >+ vaoext = gl.getExtension("OES_vertex_array_object"); >+ if (!vaoext) { >+ testPassed("No OES_vertex_array_object support -- this is legal"); >+ return; >+ } >+ >+ testPassed("Successfully enabled OES_vertex_array_object extension"); >+ >+ gl.useProgram(program); >+ >+ var positions = new Float32Array([ >+ 0.0, 1.0, // Left quad >+ -1.0, 1.0, >+ -1.0, -1.0, >+ 0.0, 1.0, >+ -1.0, -1.0, >+ 0.0, -1.0, >+ >+ 1.0, 1.0, // Right quad >+ 0.0, 1.0, >+ 0.0, -1.0, >+ 1.0, 1.0, >+ 0.0, -1.0, >+ 1.0, -1.0 >+ ]); >+ var positionBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, positions, gl.STATIC_DRAW); >+ >+ var colors = new Float32Array([ >+ 1.0, 0.0, 0.0, 1.0, // Red >+ 1.0, 0.0, 0.0, 1.0, >+ 1.0, 0.0, 0.0, 1.0, >+ 1.0, 0.0, 0.0, 1.0, >+ 1.0, 0.0, 0.0, 1.0, >+ 1.0, 0.0, 0.0, 1.0, >+ >+ 0.0, 0.0, 1.0, 1.0, // Blue >+ 0.0, 0.0, 1.0, 1.0, >+ 0.0, 0.0, 1.0, 1.0, >+ 0.0, 0.0, 1.0, 1.0, >+ 0.0, 0.0, 1.0, 1.0, >+ 0.0, 0.0, 1.0, 1.0, >+ ]); >+ var colorBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW); >+ >+ // Reset the divisor of the default VAO to 0 >+ ext.vertexAttribDivisorANGLE(colorLoc, 0); >+ >+ // Set up VAO with an attrib divisor >+ var vao1 = vaoext.createVertexArrayOES(); >+ vaoext.bindVertexArrayOES(vao1); >+ { >+ gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer); >+ gl.enableVertexAttribArray(positionLoc); >+ gl.vertexAttribPointer(positionLoc, 2, gl.FLOAT, false, 0, 0); >+ >+ gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer); >+ gl.enableVertexAttribArray(colorLoc); >+ gl.vertexAttribPointer(colorLoc, 4, gl.FLOAT, false, 0, 0); >+ ext.vertexAttribDivisorANGLE(colorLoc, 1); >+ >+ gl.vertexAttrib2fv(offsetLoc, [0.0, 0.0]); >+ } >+ vaoext.bindVertexArrayOES(null); >+ >+ // Set up VAO with no attrib divisor >+ var vao2 = vaoext.createVertexArrayOES(); >+ vaoext.bindVertexArrayOES(vao2); >+ { >+ gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer); >+ gl.enableVertexAttribArray(positionLoc); >+ gl.vertexAttribPointer(positionLoc, 2, gl.FLOAT, false, 0, 0); >+ >+ gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer); >+ gl.enableVertexAttribArray(colorLoc); >+ gl.vertexAttribPointer(colorLoc, 4, gl.FLOAT, false, 0, 0); >+ // Note that no divisor is set here, which implies that it's 0 >+ >+ gl.vertexAttrib2fv(offsetLoc, [0.0, 0.0]); >+ } >+ vaoext.bindVertexArrayOES(null); >+ >+ debug(""); >+ debug("Ensure that Vertex Array Objects retain attrib divisors"); >+ >+ vaoext.bindVertexArrayOES(vao1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ gl.drawArrays(gl.TRIANGLES, 0, 12); >+ // If the divisor is properly managed by the VAO a single red quad will be drawn >+ wtu.checkCanvas(gl, [255, 0, 0, 255], "entire canvas should be red"); >+ >+ vaoext.bindVertexArrayOES(vao2); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ gl.drawArrays(gl.TRIANGLES, 0, 12); >+ // If the divisor is properly managed by the VAO a red and blue quad will be drawn. >+ wtu.checkCanvasRects(gl, [ >+ wtu.makeCheckRect(0, 0, canvas.width * 0.5, canvas.height, [255, 0, 0, 255], "left half of canvas should be red", 1), >+ wtu.makeCheckRect(canvas.width * 0.5, 0, canvas.width * 0.5, canvas.height, [0, 0, 255, 255], "right half of canvas should be blue", 1) >+ ]); >+ >+ vaoext.bindVertexArrayOES(null); >+} >+ >+function runANGLECorruptionTest() >+{ >+ debug("") >+ debug("Testing to ensure that rendering isn't corrupt due to an ANGLE bug"); >+ // See: https://code.google.com/p/angleproject/issues/detail?id=467 >+ >+ setupCanvas(); >+ >+ var tolerance = 2; // Amount of variance to allow in result pixels - may need to be tweaked higher >+ var instanceCount = 10; // Must be higher than 6 >+ var iteration = 0; >+ var totalIterations = 10; >+ >+ var offsets = new Float32Array([ >+ 0.0, 0.0, >+ 0.2, 0.0, >+ 0.4, 0.0, >+ 0.6, 0.0, >+ 0.8, 0.0, >+ 1.0, 0.0, >+ 1.2, 0.0, >+ 1.4, 0.0, >+ 1.6, 0.0, >+ 1.8, 0.0, >+ ]); >+ var offsetBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, offsetBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, offsets.byteLength * 2, gl.STATIC_DRAW); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, offsets); >+ gl.enableVertexAttribArray(offsetLoc); >+ gl.vertexAttribPointer(offsetLoc, 2, gl.FLOAT, false, 0, 0); >+ ext.vertexAttribDivisorANGLE(offsetLoc, 1); >+ >+ var colors = new Float32Array([ >+ 1.0, 0.0, 0.0, 1.0, >+ 1.0, 1.0, 0.0, 1.0, >+ 0.0, 1.0, 0.0, 1.0, >+ 0.0, 1.0, 1.0, 1.0, >+ 0.0, 0.0, 1.0, 1.0, >+ 1.0, 0.0, 1.0, 1.0, >+ 1.0, 0.0, 0.0, 1.0, >+ 1.0, 1.0, 0.0, 1.0, >+ 0.0, 1.0, 0.0, 1.0, >+ 0.0, 1.0, 1.0, 1.0, >+ ]); >+ var colorBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, colors.byteLength * 2, gl.STATIC_DRAW); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, colors); >+ gl.enableVertexAttribArray(colorLoc); >+ gl.vertexAttribPointer(colorLoc, 4, gl.FLOAT, false, 0, 0); >+ ext.vertexAttribDivisorANGLE(colorLoc, 1); >+ >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ wtu.setupUnitQuad(gl, 0); >+ >+ function cycleAndTest() { >+ // Update the instanced data buffers outside the accessed range. >+ // This, plus rendering more instances than vertices, triggers the bug. >+ var nullData = new Float32Array(offsets.length); >+ gl.bindBuffer(gl.ARRAY_BUFFER, offsetBuffer); >+ gl.bufferSubData(gl.ARRAY_BUFFER, offsets.byteLength, nullData); >+ >+ nullData = new Float32Array(colors.length); >+ gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer); >+ gl.bufferSubData(gl.ARRAY_BUFFER, colors.byteLength, nullData); >+ >+ ext.drawArraysInstancedANGLE(gl.TRIANGLES, 0, 6, instanceCount); >+ >+ // Make sure each color was drawn correctly >+ var i; >+ var passed = true; >+ for (i = 0; i < instanceCount; ++i) { >+ var w = canvas.width / instanceCount; >+ var x = w * i; >+ var color = [colors[(i*4)] * 255, colors[(i*4)+1] * 255, colors[(i*4)+2] * 255, 255] >+ >+ wtu.checkCanvasRectColor( >+ gl, x, 0, w, canvas.height, color, tolerance, >+ function() {}, >+ function() { >+ passed = false; >+ }, debug); >+ } >+ >+ if (passed) { >+ testPassed("Passed test " + iteration + " of " + totalIterations); >+ if (iteration < totalIterations) { >+ ++iteration; >+ setTimeout(cycleAndTest, 0); >+ } else { >+ finishTest(); >+ } >+ } else { >+ testFailed("Failed test " + iteration + " of " + totalIterations); >+ finishTest(); >+ } >+ } >+ >+ cycleAndTest(); >+} >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-blend-minmax.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-blend-minmax.html >new file mode 100644 >index 00000000000..7388f9e5a75 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-blend-minmax.html >@@ -0,0 +1,246 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL EXT_blend_minmax Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> >+<div id="console"></div> >+<!-- Shaders to test output --> >+<script id="outputVertexShader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+void main() { >+ gl_Position = vPosition; >+} >+</script> >+<script id="outputFragmentShader" type="x-shader/x-fragment"> >+precision mediump float; >+uniform vec4 uColor; >+void main() { >+ gl_FragColor = uColor; >+} >+</script> >+ >+<script> >+"use strict"; >+description("This test verifies the functionality of the EXT_blend_minmax extension, if it is available."); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas); >+var ext = null; >+ >+// Use the constant directly when we don't have the extension >+var MIN_EXT = 0x8007; >+var MAX_EXT = 0x8008; >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ runBlendTestDisabled(); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = wtu.getExtensionWithKnownPrefixes(gl, "EXT_blend_minmax"); >+ if (!ext) { >+ testPassed("No EXT_blend_minmax support -- this is legal"); >+ >+ runSupportedTest(false); >+ } else { >+ debug(""); >+ testPassed("Successfully enabled EXT_blend_minmax extension"); >+ >+ runSupportedTest(true); >+ >+ runBlendTestEnabled(); >+ runOutputTests(); >+ runUniqueObjectTest(); >+ } >+} >+ >+function runSupportedTest(extensionEnabled) { >+ var supported = gl.getSupportedExtensions(); >+ if (supported.indexOf("EXT_blend_minmax") >= 0) { >+ if (extensionEnabled) { >+ testPassed("EXT_blend_minmax listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("EXT_blend_minmax listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("EXT_blend_minmax not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("EXT_blend_minmax not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+function runBlendTestDisabled() { >+ debug(""); >+ debug("Testing blending enums with extension disabled"); >+ >+ // Set the blend equation to a known-good enum first >+ gl.blendEquation(gl.FUNC_ADD); >+ >+ wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.blendEquation(MIN_EXT)"); >+ shouldBe("gl.getParameter(gl.BLEND_EQUATION)", "gl.FUNC_ADD"); >+ >+ wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.blendEquation(MAX_EXT)"); >+ shouldBe("gl.getParameter(gl.BLEND_EQUATION)", "gl.FUNC_ADD"); >+ >+ wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.blendEquationSeparate(MIN_EXT, gl.FUNC_ADD)"); >+ shouldBe("gl.getParameter(gl.BLEND_EQUATION_RGB)", "gl.FUNC_ADD"); >+ >+ wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.blendEquationSeparate(gl.FUNC_ADD, MIN_EXT)"); >+ shouldBe("gl.getParameter(gl.BLEND_EQUATION_ALPHA)", "gl.FUNC_ADD"); >+ >+ wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.blendEquationSeparate(MAX_EXT, gl.FUNC_ADD)"); >+ shouldBe("gl.getParameter(gl.BLEND_EQUATION_RGB)", "gl.FUNC_ADD"); >+ >+ wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.blendEquationSeparate(gl.FUNC_ADD, MAX_EXT)"); >+ shouldBe("gl.getParameter(gl.BLEND_EQUATION_ALPHA)", "gl.FUNC_ADD"); >+} >+ >+function runBlendTestEnabled() { >+ debug(""); >+ debug("Testing blending enums with extension enabled"); >+ >+ shouldBe("ext.MIN_EXT", "0x8007"); >+ shouldBe("ext.MAX_EXT", "0x8008"); >+ >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "gl.blendEquation(ext.MIN_EXT)"); >+ shouldBe("gl.getParameter(gl.BLEND_EQUATION)", "ext.MIN_EXT"); >+ >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "gl.blendEquation(ext.MAX_EXT)"); >+ shouldBe("gl.getParameter(gl.BLEND_EQUATION)", "ext.MAX_EXT"); >+ >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "gl.blendEquationSeparate(ext.MIN_EXT, gl.FUNC_ADD)"); >+ shouldBe("gl.getParameter(gl.BLEND_EQUATION_RGB)", "ext.MIN_EXT"); >+ shouldBe("gl.getParameter(gl.BLEND_EQUATION_ALPHA)", "gl.FUNC_ADD"); >+ >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "gl.blendEquationSeparate(gl.FUNC_ADD, ext.MIN_EXT)"); >+ shouldBe("gl.getParameter(gl.BLEND_EQUATION_RGB)", "gl.FUNC_ADD"); >+ shouldBe("gl.getParameter(gl.BLEND_EQUATION_ALPHA)", "ext.MIN_EXT"); >+ >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "gl.blendEquationSeparate(ext.MAX_EXT, gl.FUNC_ADD)"); >+ shouldBe("gl.getParameter(gl.BLEND_EQUATION_RGB)", "ext.MAX_EXT"); >+ shouldBe("gl.getParameter(gl.BLEND_EQUATION_ALPHA)", "gl.FUNC_ADD"); >+ >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "gl.blendEquationSeparate(gl.FUNC_ADD, ext.MAX_EXT)"); >+ shouldBe("gl.getParameter(gl.BLEND_EQUATION_RGB)", "gl.FUNC_ADD"); >+ shouldBe("gl.getParameter(gl.BLEND_EQUATION_ALPHA)", "ext.MAX_EXT"); >+} >+ >+function runOutputTests() { >+ var e = 2; // Amount of variance to allow in result pixels - may need to be tweaked higher >+ >+ debug(""); >+ debug("Testing various draws for valid blending behavior"); >+ >+ canvas.width = 50; canvas.height = 50; >+ gl.viewport(0, 0, canvas.width, canvas.height); >+ gl.enable(gl.BLEND); >+ gl.blendFunc(gl.ONE, gl.ONE); >+ >+ var program = wtu.setupProgram(gl, ["outputVertexShader", "outputFragmentShader"], ['vPosition'], [0]); >+ var quadParameters = wtu.setupUnitQuad(gl, 0, 1); >+ var colorUniform = gl.getUniformLocation(program, "uColor"); >+ >+ >+ // Draw 1 >+ gl.blendEquation(ext.MIN_EXT); >+ >+ gl.clearColor(0.2, 0.4, 0.6, 0.8); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ gl.uniform4f(colorUniform, 0.8, 0.6, 0.4, 0.2); >+ wtu.drawUnitQuad(gl); >+ >+ wtu.checkCanvasRect(gl, 0, 0, canvas.width, canvas.height, [51, 102, 102, 51]); >+ >+ // Draw 2: >+ gl.blendEquation(ext.MAX_EXT); >+ >+ gl.clearColor(0.2, 0.4, 0.6, 0.8); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ gl.uniform4f(colorUniform, 0.8, 0.6, 0.4, 0.2); >+ wtu.drawUnitQuad(gl); >+ >+ wtu.checkCanvasRect(gl, 0, 0, canvas.width, canvas.height, [204, 153, 153, 204]); >+ >+ // Draw 3 >+ gl.blendEquationSeparate(ext.MIN_EXT, ext.MAX_EXT); >+ >+ gl.clearColor(0.2, 0.4, 0.6, 0.8); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ gl.uniform4f(colorUniform, 0.8, 0.6, 0.4, 0.2); >+ wtu.drawUnitQuad(gl); >+ >+ wtu.checkCanvasRect(gl, 0, 0, canvas.width, canvas.height, [51, 102, 102, 204]); >+ >+ // Draw 4 >+ gl.blendEquationSeparate(ext.MAX_EXT, ext.MIN_EXT); >+ >+ gl.clearColor(0.2, 0.4, 0.6, 0.8); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ gl.uniform4f(colorUniform, 0.8, 0.6, 0.4, 0.2); >+ wtu.drawUnitQuad(gl); >+ >+ wtu.checkCanvasRect(gl, 0, 0, canvas.width, canvas.height, [204, 153, 153, 51]); >+} >+ >+function runUniqueObjectTest() >+{ >+ debug(""); >+ debug("Testing that getExtension() returns the same object each time"); >+ ext = null; >+ gl.getExtension("EXT_blend_minmax").myProperty = 2; >+ webglHarnessCollectGarbage(); >+ shouldBe('gl.getExtension("EXT_blend_minmax").myProperty', '2'); >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-disjoint-timer-query.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-disjoint-timer-query.html >new file mode 100644 >index 00000000000..d2cb8246526 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-disjoint-timer-query.html >@@ -0,0 +1,331 @@ >+<!-- >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL EXT_disjoint_timer_query Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+description("This test verifies the functionality of the EXT_disjoint_timer_query extension, if it is available."); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas); >+var ext = null; >+var query = null; >+var query2 = null; >+var elapsed_query = null; >+var timestamp_query1 = null; >+var timestamp_query2 = null; >+var availability_retry = 500; >+var timestamp_counter_bits = 0; >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+ finishTest(); >+} else { >+ testPassed("WebGL context exists"); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = wtu.getExtensionWithKnownPrefixes(gl, "EXT_disjoint_timer_query"); >+ if (!ext) { >+ testPassed("No EXT_disjoint_timer_query support -- this is legal"); >+ finishTest(); >+ } else { >+ if (wtu.getDefault3DContextVersion() > 1) { >+ testFailed("EXT_disjoint_timer_query must not be advertised on WebGL 2.0 contexts"); >+ finishTest(); >+ } else { >+ runSanityTests(); >+ >+ // Clear disjoint value. >+ gl.getParameter(ext.GPU_DISJOINT_EXT); >+ >+ runElapsedTimeTest(); >+ timestamp_counter_bits = ext.getQueryEXT(ext.TIMESTAMP_EXT, ext.QUERY_COUNTER_BITS_EXT); >+ if (timestamp_counter_bits > 0) { >+ runTimeStampTest(); >+ } >+ verifyQueryResultsNotAvailable(); >+ >+ window.requestAnimationFrame(checkQueryResults); >+ } >+ } >+} >+ >+function runSanityTests() { >+ debug(""); >+ debug("Testing timer query expectations"); >+ >+ shouldBe("ext.QUERY_COUNTER_BITS_EXT", "0x8864"); >+ shouldBe("ext.CURRENT_QUERY_EXT", "0x8865"); >+ shouldBe("ext.QUERY_RESULT_EXT", "0x8866"); >+ shouldBe("ext.QUERY_RESULT_AVAILABLE_EXT", "0x8867"); >+ shouldBe("ext.TIME_ELAPSED_EXT", "0x88BF"); >+ shouldBe("ext.TIMESTAMP_EXT", "0x8E28"); >+ shouldBe("ext.GPU_DISJOINT_EXT", "0x8FBB"); >+ >+ shouldBe("ext.isQueryEXT(null)", "false"); >+ >+ shouldBeTrue("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.CURRENT_QUERY_EXT) === null"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ shouldBeTrue("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.QUERY_COUNTER_BITS_EXT) >= 30"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ shouldBeTrue("ext.getQueryEXT(ext.TIMESTAMP_EXT, ext.CURRENT_QUERY_EXT) === null"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ // Certain drivers set timestamp counter bits to 0 as they don't support timestamps >+ shouldBeTrue("ext.getQueryEXT(ext.TIMESTAMP_EXT, ext.QUERY_COUNTER_BITS_EXT) >= 30 || " + >+ "ext.getQueryEXT(ext.TIMESTAMP_EXT, ext.QUERY_COUNTER_BITS_EXT) === 0"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ debug(""); >+ debug("Testing time elapsed query lifecycle"); >+ query = ext.createQueryEXT(); >+ shouldBe("ext.isQueryEXT(query)", "false"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Query creation must succeed."); >+ shouldThrow("ext.beginQueryEXT(ext.TIMESTAMP_EXT, null)"); >+ ext.beginQueryEXT(ext.TIMESTAMP_EXT, query); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "Beginning a timestamp query should fail."); >+ ext.beginQueryEXT(ext.TIME_ELAPSED_EXT, query); >+ shouldBe("ext.isQueryEXT(query)", "true"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Beginning an inactive time elapsed query should succeed."); >+ ext.beginQueryEXT(ext.TIME_ELAPSED_EXT, query); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Attempting to begin an active query should fail."); >+ ext.getQueryObjectEXT(query, ext.QUERY_RESULT_AVAILABLE_EXT); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Fetching query result availability of an active query should fail."); >+ ext.getQueryObjectEXT(query, ext.QUERY_RESULT_EXT); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Fetching query result of an active query should fail."); >+ shouldBe("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.CURRENT_QUERY_EXT)", "query"); >+ ext.endQueryEXT(ext.TIME_ELAPSED_EXT); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Ending an active time elapsed query should succeed."); >+ shouldThrow("ext.getQueryObjectEXT(null, ext.QUERY_RESULT_AVAILABLE_EXT)"); >+ ext.getQueryObjectEXT(query, ext.QUERY_RESULT_AVAILABLE_EXT); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Fetching query result availability after query end should succeed."); >+ ext.endQueryEXT(ext.TIME_ELAPSED_EXT); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Attempting to end an inactive query should fail."); >+ ext.queryCounterEXT(query, ext.TIMESTAMP_EXT); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Should not be able to use time elapsed query to store a timestamp."); >+ ext.deleteQueryEXT(query); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Query deletion must succeed."); >+ ext.beginQueryEXT(ext.TIME_ELAPSED_EXT, query); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Beginning a deleted query must fail."); >+ ext.getQueryObjectEXT(query, ext.QUERY_RESULT_AVAILABLE_EXT); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Fetching query result availability after query deletion should fail."); >+ shouldBe("ext.isQueryEXT(query)", "false"); >+ >+ debug(""); >+ debug("Testing timestamp counter"); >+ query = ext.createQueryEXT(); >+ shouldThrow("ext.queryCounterEXT(null, ext.TIMESTAMP_EXT)"); >+ ext.queryCounterEXT(query, ext.TIMESTAMP_EXT); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Timestamp counter queries should work."); >+ ext.deleteQueryEXT(query); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ debug(""); >+ debug("Performing parameter sanity checks"); >+ gl.getParameter(ext.TIMESTAMP_EXT); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "getParameter timestamp calls should work."); >+ gl.getParameter(ext.GPU_DISJOINT_EXT); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "getParameter disjoint calls should work."); >+ >+ debug(""); >+ debug("Testing current query conditions"); >+ query = ext.createQueryEXT(); >+ query2 = ext.createQueryEXT(); >+ shouldBe("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.CURRENT_QUERY_EXT)", "null"); >+ ext.beginQueryEXT(ext.TIME_ELAPSED_EXT, query); >+ shouldBe("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.CURRENT_QUERY_EXT)", "query"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ debug(""); >+ debug("Testing failed begin query should not change the current query."); >+ ext.beginQueryEXT(ext.TIME_ELAPSED_EXT, query2); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Beginning an elapsed query without ending should fail."); >+ shouldBe("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.CURRENT_QUERY_EXT)", "query"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ debug(""); >+ debug("Testing beginning a timestamp query is invalid and should not change the elapsed query."); >+ ext.beginQueryEXT(ext.TIMESTAMP_EXT, query2) >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM); >+ shouldBe("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.CURRENT_QUERY_EXT)", "query"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ debug(""); >+ debug("Testing timestamp queries end immediately so are never current."); >+ ext.queryCounterEXT(query2, ext.TIMESTAMP_EXT); >+ shouldBe("ext.getQueryEXT(ext.TIMESTAMP_EXT, ext.CURRENT_QUERY_EXT)", "null"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ debug(""); >+ debug("Testing ending the query should clear the current query."); >+ ext.endQueryEXT(ext.TIME_ELAPSED_EXT); >+ shouldBe("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.CURRENT_QUERY_EXT)", "null"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ debug(""); >+ debug("Testing beginning a elapsed query using a timestamp query should fail and not affect current query.") >+ ext.beginQueryEXT(ext.TIME_ELAPSED_EXT, query2); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Switching query targets should fail."); >+ shouldBe("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.CURRENT_QUERY_EXT)", "null"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ ext.deleteQueryEXT(query); >+ ext.deleteQueryEXT(query2); >+ >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors at end of sanity tests"); >+} >+ >+function runElapsedTimeTest() { >+ debug(""); >+ debug("Testing elapsed time query"); >+ >+ elapsed_query = ext.createQueryEXT(); >+ ext.beginQueryEXT(ext.TIME_ELAPSED_EXT, elapsed_query); >+ gl.clearColor(0, 0, 1, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ ext.endQueryEXT(ext.TIME_ELAPSED_EXT); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Time elapsed query should have no errors"); >+} >+ >+function runTimeStampTest() { >+ debug(""); >+ debug("Testing timestamp query"); >+ >+ timestamp_query1 = ext.createQueryEXT(); >+ timestamp_query2 = ext.createQueryEXT(); >+ ext.queryCounterEXT(timestamp_query1, ext.TIMESTAMP_EXT); >+ gl.clearColor(1, 0, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ ext.queryCounterEXT(timestamp_query2, ext.TIMESTAMP_EXT); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Timestamp queries should have no errors"); >+} >+ >+function verifyQueryResultsNotAvailable() { >+ debug(""); >+ debug("Verifying queries' results don't become available too early"); >+ >+ // Verify as best as possible that the implementation doesn't >+ // allow a query's result to become available the same frame, by >+ // spin-looping for some time and ensuring that none of the >+ // queries' results become available. >+ var startTime = Date.now(); >+ while (Date.now() - startTime < 2000) { >+ gl.finish(); >+ if (ext.getQueryObjectEXT(elapsed_query, ext.QUERY_RESULT_AVAILABLE_EXT)) { >+ testFailed("One of the queries' results became available too early"); >+ return; >+ } >+ if (timestamp_counter_bits > 0) { >+ if (ext.getQueryObjectEXT(timestamp_query1, ext.QUERY_RESULT_AVAILABLE_EXT) || >+ ext.getQueryObjectEXT(timestamp_query2, ext.QUERY_RESULT_AVAILABLE_EXT)) { >+ testFailed("One of the queries' results became available too early"); >+ return; >+ } >+ } >+ } >+ >+ testPassed("Queries' results didn't become available in a spin loop"); >+} >+ >+function checkQueryResults() { >+ if (availability_retry > 0) { >+ // Make a reasonable attempt to wait for the queries' results to become available. >+ if (!ext.getQueryObjectEXT(elapsed_query, ext.QUERY_RESULT_AVAILABLE_EXT) || >+ (timestamp_counter_bits > 0 && !ext.getQueryObjectEXT(timestamp_query2, ext.QUERY_RESULT_AVAILABLE_EXT))) { >+ var error = gl.getError(); >+ if (error != gl.NO_ERROR) { >+ testFailed("getQueryObjectEXT should have no errors: " + wtu.glEnumToString(gl, error)); >+ debug(""); >+ finishTest(); >+ return; >+ } >+ availability_retry--; >+ window.requestAnimationFrame(checkQueryResults); >+ return; >+ } >+ } >+ >+ debug(""); >+ debug("Testing query results"); >+ >+ // Make sure queries are available. >+ shouldBe("ext.getQueryObjectEXT(elapsed_query, ext.QUERY_RESULT_AVAILABLE_EXT)", "true"); >+ if (timestamp_counter_bits > 0) { >+ shouldBe("ext.getQueryObjectEXT(timestamp_query1, ext.QUERY_RESULT_AVAILABLE_EXT)", "true"); >+ shouldBe("ext.getQueryObjectEXT(timestamp_query2, ext.QUERY_RESULT_AVAILABLE_EXT)", "true"); >+ } >+ >+ var disjoint_value = gl.getParameter(ext.GPU_DISJOINT_EXT); >+ if (disjoint_value) { >+ // Cannot validate results make sense, but this is okay. >+ testPassed("Disjoint triggered."); >+ } else { >+ var elapsed_result = ext.getQueryObjectEXT(elapsed_query, ext.QUERY_RESULT_EXT); >+ if (timestamp_counter_bits > 0) { >+ var timestamp_result1 = ext.getQueryObjectEXT(timestamp_query1, ext.QUERY_RESULT_EXT); >+ var timestamp_result2 = ext.getQueryObjectEXT(timestamp_query2, ext.QUERY_RESULT_EXT); >+ } >+ // Do some basic validity checking of the elapsed time query. There's no way it should >+ // take more than about half a second for a no-op query. >+ var halfSecondInNanos = 0.5 * 1000 * 1000 * 1000; >+ if (elapsed_result < 0 || elapsed_result > halfSecondInNanos) { >+ testFailed("Time elapsed query returned invalid data: " + elapsed_result); >+ } else { >+ testPassed("Time elapsed query results were valid."); >+ } >+ >+ if (timestamp_counter_bits > 0) { >+ if (timestamp_result1 <= 0 || >+ timestamp_result2 <= 0 || >+ timestamp_result2 <= timestamp_result1) { >+ testFailed("Timestamp queries returned invalid data: timestamp_result1 = " + >+ timestamp_result1 + ", timestamp_result2 = " + timestamp_result2); >+ } else { >+ testPassed("Timestamp query results were valid."); >+ } >+ } >+ } >+ >+ debug(""); >+ finishTest(); >+} >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-frag-depth.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-frag-depth.html >new file mode 100644 >index 00000000000..c05fb0a50bc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-frag-depth.html >@@ -0,0 +1,310 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL EXT_frag_depth Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> >+<div id="console"></div> >+<!-- Shaders for testing fragment depth writing --> >+ >+<!-- Shader omitting the required #extension pragma --> >+<script id="missingPragmaFragmentShader" type="x-shader/x-fragment"> >+precision mediump float; >+void main() { >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_FragDepthEXT = 1.0; >+} >+</script> >+ >+<!-- Shader to test macro definition --> >+<script id="macroFragmentShader" type="x-shader/x-fragment"> >+precision mediump float; >+void main() { >+#ifdef GL_EXT_frag_depth >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+#else >+ // Error expected >+ #error no GL_EXT_frag_depth; >+#endif >+} >+</script> >+ >+<!-- Shader with required #extension pragma --> >+<script id="testFragmentShader" type="x-shader/x-fragment"> >+#extension GL_EXT_frag_depth : enable >+precision mediump float; >+void main() { >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_FragDepthEXT = 1.0; >+} >+</script> >+<!-- Shaders to link with test fragment shaders --> >+<script id="goodVertexShader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+void main() { >+ gl_Position = vPosition; >+} >+</script> >+<!-- Shaders to test output --> >+<script id="outputVertexShader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+void main() { >+ gl_Position = vPosition; >+} >+</script> >+<script id="outputFragmentShader" type="x-shader/x-fragment"> >+#extension GL_EXT_frag_depth : enable >+precision mediump float; >+uniform float uDepth; >+void main() { >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_FragDepthEXT = uDepth; >+} >+</script> >+ >+<script> >+"use strict"; >+description("This test verifies the functionality of the EXT_frag_depth extension, if it is available."); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas); >+var ext = null; >+ >+// Run all tests once. >+runAllTests(); >+ >+// Run all tests against with a new context to test for any cache issues. >+debug(""); >+debug("Testing new context to catch cache errors"); >+gl = wtu.create3DContext(); >+ext = null; >+runAllTests(); >+ >+function runAllTests() { >+ if (!gl) { >+ testFailed("WebGL context does not exist"); >+ } else { >+ testPassed("WebGL context exists"); >+ >+ runShaderTests(false); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = wtu.getExtensionWithKnownPrefixes(gl, "EXT_frag_depth"); >+ if (!ext) { >+ testPassed("No EXT_frag_depth support -- this is legal"); >+ >+ runSupportedTest(false); >+ } else { >+ testPassed("Successfully enabled EXT_frag_depth extension"); >+ >+ runSupportedTest(true); >+ >+ runShaderTests(true); >+ runOutputTests(); >+ runUniqueObjectTest(); >+ >+ // Run deferred link tests. >+ runDeferredLinkTests(); >+ } >+ } >+ >+} >+ >+function runSupportedTest(extensionEnabled) { >+ var supported = gl.getSupportedExtensions(); >+ if (supported.indexOf("EXT_frag_depth") >= 0) { >+ if (extensionEnabled) { >+ testPassed("EXT_frag_depth listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("EXT_frag_depth listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("EXT_frag_depth not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("EXT_frag_depth not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+function runShaderTests(extensionEnabled) { >+ debug(""); >+ debug("Testing various shader compiles with extension " + (extensionEnabled ? "enabled" : "disabled")); >+ >+ // Expect the macro shader to succeed ONLY if enabled >+ var macroFragmentProgram = wtu.loadProgramFromScriptExpectError(gl, "goodVertexShader", "macroFragmentShader"); >+ if (extensionEnabled) { >+ if (macroFragmentProgram) { >+ // Expected result >+ testPassed("GL_EXT_frag_depth defined in shaders when extension is enabled"); >+ } else { >+ testFailed("GL_EXT_frag_depth not defined in shaders when extension is enabled"); >+ } >+ } else { >+ if (macroFragmentProgram) { >+ testFailed("GL_EXT_frag_depth defined in shaders when extension is disabled"); >+ } else { >+ testPassed("GL_EXT_frag_depth not defined in shaders when extension disabled"); >+ } >+ } >+ >+ // Always expect the shader missing the #pragma to fail (whether enabled or not) >+ var missingPragmaFragmentProgram = wtu.loadProgramFromScriptExpectError(gl, "goodVertexShader", "missingPragmaFragmentShader"); >+ if (missingPragmaFragmentProgram) { >+ testFailed("Shader built-ins allowed without #extension pragma"); >+ } else { >+ testPassed("Shader built-ins disallowed without #extension pragma"); >+ } >+ >+ // Try to compile a shader using the built-ins that should only succeed if enabled >+ var testFragmentProgram = wtu.loadProgramFromScriptExpectError(gl, "goodVertexShader", "testFragmentShader"); >+ if (extensionEnabled) { >+ if (testFragmentProgram) { >+ testPassed("Shader built-ins compiled successfully when extension enabled"); >+ } else { >+ testFailed("Shader built-ins failed to compile when extension enabled"); >+ } >+ } else { >+ if (testFragmentProgram) { >+ testFailed("Shader built-ins compiled successfully when extension disabled"); >+ } else { >+ testPassed("Shader built-ins failed to compile when extension disabled"); >+ } >+ } >+} >+ >+function runOutputTests() { >+ var e = 2; // Amount of variance to allow in result pixels - may need to be tweaked higher >+ >+ debug("Testing various draws for valid built-in function behavior"); >+ >+ canvas.width = 50; canvas.height = 50; >+ gl.viewport(0, 0, canvas.width, canvas.height); >+ >+ // Enable depth testing with a clearDepth of 0.5 >+ // This makes it so that fragments are only rendered when >+ // gl_fragDepthEXT is < 0.5 >+ gl.clearDepth(0.5); >+ gl.enable(gl.DEPTH_TEST); >+ >+ var positionLoc = 0; >+ var texcoordLoc = 1; >+ var program = wtu.setupProgram(gl, ["outputVertexShader", "outputFragmentShader"], ['vPosition'], [0]); >+ var quadParameters = wtu.setupUnitQuad(gl, 0, 1); >+ var depthUniform = gl.getUniformLocation(program, "uDepth"); >+ >+ // Draw 1: Greater than clear depth >+ gl.uniform1f(depthUniform, 1.0); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvasRect(gl, 0, 0, canvas.width, canvas.height, [255, 255, 255, 255]); >+ >+ // Draw 2: Less than clear depth >+ gl.uniform1f(depthUniform, 0.0); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvasRect(gl, 0, 0, canvas.width, canvas.height, [255, 0, 0, 255]); >+} >+ >+function runUniqueObjectTest() >+{ >+ debug("Testing that getExtension() returns the same object each time"); >+ ext = null; >+ gl.getExtension("EXT_frag_depth").myProperty = 2; >+ webglHarnessCollectGarbage(); >+ shouldBe('gl.getExtension("EXT_frag_depth").myProperty', '2'); >+} >+ >+function runDeferredLinkTests() { >+ debug(""); >+ debug("Testing deferred shader compilation tests."); >+ >+ // Test for compilation failures that are caused by missing extensions >+ // do not succeed if extensions are enabled during linking. This would >+ // only happen for deferred shader compilations. >+ >+ // First test if link succeeds with extension enabled. >+ var glEnabled = wtu.create3DContext(); >+ var extEnabled = glEnabled.getExtension("EXT_frag_depth"); >+ if (!extEnabled) { >+ testFailed("Deferred link test expects the extension to be supported"); >+ } >+ >+ var vertexShader = wtu.loadShaderFromScript(glEnabled, "goodVertexShader"); >+ var fragmentShader = wtu.loadShaderFromScript(glEnabled, "macroFragmentShader"); >+ >+ if (!vertexShader || !fragmentShader) { >+ testFailed("Could not create good shaders."); >+ return; >+ } >+ >+ var program = wtu.setupProgram(glEnabled, [vertexShader, fragmentShader]); >+ >+ if (!program) { >+ testFailed("Compilation with extension enabled failed."); >+ return; >+ } >+ >+ // Create new context to test link failure without extension enabled. >+ var glDeferred = wtu.create3DContext(); >+ >+ var vertexShader = wtu.loadShaderFromScript(glDeferred, "goodVertexShader", glDeferred.VERTEX_SHADER, undefined, undefined, true); >+ var fragmentShader = wtu.loadShaderFromScript(glDeferred, "macroFragmentShader", glDeferred.FRAGMENT_SHADER, undefined, undefined, true); >+ >+ if (vertexShader == null || fragmentShader == null) { >+ testFailed("Could not create shaders."); >+ return; >+ } >+ >+ // Shader compilations should have failed due to extensions not enabled. >+ glDeferred.getExtension("EXT_frag_depth"); >+ var program = wtu.setupProgram(glDeferred, [vertexShader, fragmentShader]); >+ if (program) { >+ testFailed("Compilation with extension disabled then linking with extension enabled should have failed."); >+ return; >+ } >+ >+ testPassed("Compilation with extension disabled then linking with extension enabled."); >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-sRGB.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-sRGB.html >new file mode 100644 >index 00000000000..7e8353f7f22 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-sRGB.html >@@ -0,0 +1,468 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"/> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" width="16" height="16" style="width: 50px; height: 50px; border: 1px solid black;"></canvas> >+ >+<!-- Shaders to test output --> >+<script id="vertexShader" type="x-shader/x-vertex"> >+attribute vec4 aPosition; >+void main() { >+ gl_Position = aPosition; >+} >+</script> >+ >+<script id="fragmentShader" type="x-shader/x-fragment"> >+precision mediump float; >+uniform float uColor; >+void main() { >+ gl_FragColor = vec4(uColor, uColor, uColor, 1); >+} >+</script> >+ >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+attribute vec2 texCoord0; >+varying vec2 texCoord; >+void main() >+{ >+ gl_Position = vPosition; >+ texCoord = texCoord0; >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+uniform sampler2D tex; >+varying vec2 texCoord; >+void main() >+{ >+ gl_FragColor = texture2D(tex, texCoord); >+} >+</script> >+ >+<script> >+"use strict"; >+ >+var wtu = WebGLTestUtils; >+var canvas; >+var gl; >+var ext = null; >+ >+var extConstants = { >+ "SRGB_EXT": 0x8C40, >+ "SRGB_ALPHA_EXT": 0x8C42, >+ "SRGB8_ALPHA8_EXT": 0x8C43, >+ "FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT": 0x8210 >+}; >+ >+function getExtension() { >+ ext = gl.getExtension("EXT_sRGB"); >+} >+ >+function listsExtension() { >+ var supported = gl.getSupportedExtensions(); >+ return (supported.indexOf("EXT_sRGB") >= 0); >+} >+ >+function toVec3String(val) { >+ if (typeof(val) == 'number') { >+ return toVec3String([val, val, val]); >+ } >+ return '[' + val[0] + ', ' + val[1] + ', ' + val[2] + ']'; >+} >+ >+var e = 2; // Amount of variance to allow in result pixels - may need to be tweaked higher >+ >+function expectResult(target) { >+ wtu.checkCanvasRect(gl, >+ Math.floor(gl.drawingBufferWidth / 2), >+ Math.floor(gl.drawingBufferHeight / 2), >+ 1, >+ 1, >+ [target, target, target, 255], >+ undefined, >+ e); >+} >+ >+function createGreysRGBTexture(gl, color, format) { >+ var numPixels = gl.drawingBufferWidth * gl.drawingBufferHeight; >+ var elements; >+ switch (format) { >+ case ext.SRGB_EXT: elements = 3; break; >+ case ext.SRGB_ALPHA_EXT: elements = 4; break; >+ default: return null; >+ } >+ >+ var size = numPixels * elements; >+ var buf = new Uint8Array(size); >+ for (var ii = 0; ii < numPixels; ++ii) { >+ var off = ii * elements; >+ buf[off + 0] = color; >+ buf[off + 1] = color; >+ buf[off + 2] = color; >+ if (format == ext.SRGB_ALPHA_EXT) { >+ buf[off + 3] = 255; >+ } >+ } >+ >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texImage2D(gl.TEXTURE_2D, >+ 0, >+ format, >+ gl.drawingBufferWidth, >+ gl.drawingBufferHeight, >+ 0, >+ format, >+ gl.UNSIGNED_BYTE, >+ buf); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ return tex; >+} >+ >+function testValidFormat(fn, internalFormat, formatName, enabled) { >+ if (enabled) { >+ fn(internalFormat); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "was able to create type " + formatName); >+ } else { >+ testInvalidFormat(fn, internalFormat, formatName, enabled); >+ } >+} >+ >+function testInvalidFormat(fn, internalFormat, formatName, enabled) { >+ fn(internalFormat); >+ var err = gl.getError(); >+ if (err == gl.NO_ERROR) { >+ testFailed("should NOT be able to create type " + formatName); >+ } else if (err == gl.INVALID_ENUM || err == gl.INVALID_VALUE) { >+ testPassed("not able to create invalid format: " + formatName); >+ } >+} >+ >+var textureFormatFixture = { >+ desc: "Checking texture formats", >+ create: function(format) { >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texImage2D(gl.TEXTURE_2D, >+ 0, // level >+ format, // internalFormat >+ gl.drawingBufferWidth, // width >+ gl.drawingBufferHeight, // height >+ 0, // border >+ format, // format >+ gl.UNSIGNED_BYTE, // type >+ null); // data >+ }, >+ tests: [ >+ { >+ desc: "Checking valid formats", >+ fn: testValidFormat, >+ formats: [ 'SRGB_EXT', 'SRGB_ALPHA_EXT' ] >+ }, >+ { >+ desc: "Checking invalid formats", >+ fn: testInvalidFormat, >+ formats: [ 'SRGB8_ALPHA8_EXT' ] >+ } >+ ] >+}; >+ >+var renderbufferFormatFixture = { >+ desc: "Checking renderbuffer formats", >+ create: function(format) { >+ var rbo = gl.createRenderbuffer(); >+ gl.bindRenderbuffer(gl.RENDERBUFFER, rbo); >+ gl.renderbufferStorage(gl.RENDERBUFFER, >+ format, >+ gl.drawingBufferWidth, >+ gl.drawingBufferHeight); >+ }, >+ tests: [ >+ { >+ desc: "Checking valid formats", >+ fn: testValidFormat, >+ formats: [ 'SRGB8_ALPHA8_EXT' ] >+ }, >+ { >+ desc: "Checking invalid formats", >+ fn: testInvalidFormat, >+ formats: [ 'SRGB_EXT', 'SRGB_ALPHA_EXT' ] >+ } >+ ] >+}; >+ >+ >+description("Test sRGB texture support"); >+ >+debug(""); >+debug("Canvas.getContext"); >+ >+canvas = document.getElementById("canvas"); >+gl = wtu.create3DContext(canvas); >+if (!gl) { >+ testFailed("context does not exist"); >+} else { >+ testPassed("context exists"); >+ >+ debug(""); >+ debug("Checking sRGB texture support with extension disabled"); >+ >+ runFormatTest(textureFormatFixture, false); >+ runFormatTest(renderbufferFormatFixture, false); >+ >+ debug(""); >+ debug("Checking sRGB texture support"); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = gl.getExtension("EXT_sRGB"); >+ >+ if (!ext) { >+ testPassed("No EXT_sRGB support -- this is legal"); >+ >+ runSupportedTest(false); >+ finishTest(); >+ } else { >+ testPassed("Successfully enabled EXT_sRGB extension"); >+ >+ runSupportedTest(true); >+ >+ gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); >+ >+ runConstantsTest(); >+ runFormatTest(textureFormatFixture, true); >+ runFormatTest(renderbufferFormatFixture, true); >+ runTextureReadConversionTest(); >+ runFramebufferTextureConversionTest(ext.SRGB_EXT); >+ runFramebufferTextureConversionTest(ext.SRGB_ALPHA_EXT); >+ runFramebufferRenderbufferConversionTest(); >+ runGenerateMipmapTest(); >+ runLoadFromImageTest(function() { >+ finishTest(); >+ }); >+ } >+} >+ >+function runConstantsTest() { >+ debug(""); >+ debug("Checking extension constants values"); >+ >+ for (var constant in extConstants) { >+ if (constant in ext) { >+ if (extConstants[constant] != ext[constant]) { >+ testFailed("Value of " + constant + " should be: " + extConstants[constant] + ", was: " + ext[constant]); >+ } else { >+ testPassed("Value of " + constant + " was expected value: " + extConstants[constant]); >+ } >+ } else { >+ testFailed(constant + " not found in extension object"); >+ } >+ } >+} >+ >+function runSupportedTest(extensionEnabled) { >+ if (listsExtension()) { >+ if (extensionEnabled) { >+ testPassed("EXT_sRGB listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("EXT_sRGB listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("EXT_sRGB not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("EXT_sRGB not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+function runFormatTest(fixture, enabled) { >+ debug(""); >+ debug(fixture.desc); >+ >+ for (var tt = 0; tt < fixture.tests.length; ++tt) { >+ var test = fixture.tests[tt]; >+ debug(test.desc); >+ >+ for (var ii = 0; ii < test.formats.length; ++ii) { >+ var formatName = test.formats[ii]; >+ test.fn(fixture.create, extConstants[formatName], "ext." + formatName, enabled); >+ } >+ >+ if (tt != fixture.tests.length - 1) >+ debug(""); >+ } >+} >+ >+function runTextureReadConversionTest() { >+ debug(""); >+ debug("Test the conversion of colors from sRGB to linear on texture read"); >+ >+ // Draw >+ var conversions = [ >+ [ 0, 0 ], >+ [ 63, 13 ], >+ [ 127, 54 ], >+ [ 191, 133 ], >+ [ 255, 255 ] >+ ]; >+ >+ var program = wtu.setupTexturedQuad(gl); >+ gl.uniform1i(gl.getUniformLocation(program, "tex"), 0); >+ >+ for (var ii = 0; ii < conversions.length; ii++) { >+ var tex = createGreysRGBTexture(gl, conversions[ii][0], ext.SRGB_EXT); >+ wtu.drawUnitQuad(gl); >+ expectResult(conversions[ii][1]); >+ } >+} >+ >+function runFramebufferTextureConversionTest(format) { >+ var formatString; >+ var validFormat; >+ switch (format) { >+ case ext.SRGB_EXT: formatString = "sRGB"; validFormat = false; break; >+ case ext.SRGB_ALPHA_EXT: formatString = "sRGB_ALPHA"; validFormat = true; break; >+ default: return null; >+ } >+ debug(""); >+ debug("Test " + formatString + " framebuffer attachments." + (validFormat ? "" : " (Invalid)")); >+ >+ var program = wtu.setupProgram(gl, ['vertexShader', 'fragmentShader'], ['aPosition'], [0]); >+ var tex = createGreysRGBTexture(gl, 0, format); >+ var fbo = gl.createFramebuffer(); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex, 0); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ shouldBe('gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, ext.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT)', 'ext.SRGB_EXT'); >+ >+ if (validFormat) { >+ shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ >+ debug(""); >+ debug("Test the conversion of colors from linear to " + formatString + " on framebuffer (texture) write"); >+ >+ // Draw >+ var conversions = [ >+ [ 0, 0 ], >+ [ 13, 63 ], >+ [ 54, 127 ], >+ [ 133, 191 ], >+ [ 255, 255 ] >+ ]; >+ >+ wtu.setupUnitQuad(gl, 0); >+ >+ for (var ii = 0; ii < conversions.length; ii++) { >+ gl.uniform1f(gl.getUniformLocation(program, "uColor"), conversions[ii][0]/255.0); >+ wtu.drawUnitQuad(gl, [0, 0, 0, 0]); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ expectResult(conversions[ii][1]); >+ } >+ } else { >+ shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT"); >+ >+ wtu.setupUnitQuad(gl, 0); >+ gl.uniform1f(gl.getUniformLocation(program, "uColor"), 0.5); >+ wtu.drawUnitQuad(gl, [0, 0, 0, 0]); >+ wtu.glErrorShouldBe(gl, gl.INVALID_FRAMEBUFFER_OPERATION); >+ } >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+} >+ >+function runFramebufferRenderbufferConversionTest() { >+ debug(""); >+ debug("Test the conversion of colors from linear to sRGB on framebuffer (renderbuffer) write"); >+ >+ function createsRGBFramebuffer(gl, width, height) { >+ var rbo = gl.createRenderbuffer(); >+ gl.bindRenderbuffer(gl.RENDERBUFFER, rbo); >+ gl.renderbufferStorage(gl.RENDERBUFFER, ext.SRGB8_ALPHA8_EXT, width, height); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ var fbo = gl.createFramebuffer(); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); >+ gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, >+ gl.RENDERBUFFER, rbo); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ shouldBe('gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, ext.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT)', 'ext.SRGB_EXT'); >+ shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ >+ return fbo; >+ } >+ >+ // Draw >+ var conversions = [ >+ [ 0, 0 ], >+ [ 13, 63 ], >+ [ 54, 127 ], >+ [ 133, 191 ], >+ [ 255, 255 ] >+ ]; >+ >+ var program = wtu.setupProgram(gl, ['vertexShader', 'fragmentShader'], ['aPosition'], [0]); >+ wtu.setupUnitQuad(gl, 0); >+ var fbo = createsRGBFramebuffer(gl, gl.drawingBufferWidth, gl.drawingBufferHeight); >+ >+ for (var ii = 0; ii < conversions.length; ii++) { >+ gl.uniform1f(gl.getUniformLocation(program, "uColor"), conversions[ii][0]/255.0); >+ wtu.drawUnitQuad(gl, [0, 0, 0, 0]); >+ expectResult(conversions[ii][1]); >+ } >+} >+ >+function runLoadFromImageTest(callback) { >+ debug(""); >+ debug("Tests to ensure that SRGB textures can successfully use image elements as their source"); >+ >+ var img = wtu.makeImage("../../resources/gray-1024x1024.jpg", function() { >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texImage2D(gl.TEXTURE_2D, 0, ext.SRGB_EXT, ext.SRGB_EXT, gl.UNSIGNED_BYTE, img); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ gl.texImage2D(gl.TEXTURE_2D, 0, ext.SRGB_ALPHA_EXT, ext.SRGB_ALPHA_EXT, gl.UNSIGNED_BYTE, img); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ callback(); >+ }, function() { >+ testFailed("Image could not be loaded"); >+ callback(); >+ }); >+} >+ >+function runGenerateMipmapTest() >+{ >+ debug(""); >+ debug("GenerateMipmaps for sRGB textures is forbidden"); >+ >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ >+ gl.texImage2D(gl.TEXTURE_2D, 0, ext.SRGB_ALPHA_EXT, 2, 2, 0, ext.SRGB_ALPHA_EXT, >+ gl.UNSIGNED_BYTE, null); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ gl.generateMipmap(gl.TEXTURE_2D); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION); >+ >+ gl.deleteTexture(tex); >+} >+ >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-shader-texture-lod.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-shader-texture-lod.html >new file mode 100644 >index 00000000000..e9a73e34274 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-shader-texture-lod.html >@@ -0,0 +1,362 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL EXT_shader_texture_lod Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/desktop-gl-constants.js"></script> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" style="width: 256px; height: 256px;"> </canvas> >+<canvas id="canvas2" style="width: 256px; height: 256px;"> </canvas> >+<div id="console"></div> >+<!-- Shaders for testing texture LOD functions --> >+ >+<!-- Shader omitting the required #extension pragma --> >+<script id="missingPragmaFragmentShader" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec2 texCoord0v; >+uniform float lod; >+uniform sampler2D tex; >+void main() { >+ vec4 color = texture2DLodEXT(tex, texCoord0v, lod); >+ gl_FragColor = color; >+} >+</script> >+ >+<!-- Shader to test macro definition --> >+<script id="macroFragmentShader" type="x-shader/x-fragment"> >+precision mediump float; >+void main() { >+#ifdef GL_EXT_shader_texture_lod >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); >+#else >+ // Error expected >+ #error no GL_EXT_shader_texture_lod; >+#endif >+} >+</script> >+ >+<!-- Shader with required #extension pragma --> >+<script id="testFragmentShader" type="x-shader/x-fragment"> >+#extension GL_EXT_shader_texture_lod : enable >+precision mediump float; >+varying vec2 texCoord0v; >+uniform float lod; >+uniform sampler2D tex; >+void main() { >+ vec4 color = texture2DLodEXT(tex, texCoord0v, lod); >+ gl_FragColor = color; >+} >+</script> >+ >+<!-- Shaders to link with test fragment shaders --> >+<script id="goodVertexShader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+attribute vec2 texCoord0; >+varying vec2 texCoord0v; >+void main() { >+ texCoord0v = texCoord0; >+ gl_Position = vPosition; >+} >+</script> >+ >+<!-- Shaders to test output --> >+<script id="outputVertexShader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+attribute vec2 texCoord0; >+varying vec2 texCoord0v; >+void main() { >+ texCoord0v = texCoord0; >+ gl_Position = vPosition; >+} >+</script> >+<script id="outputFragmentShader" type="x-shader/x-fragment"> >+#extension GL_EXT_shader_texture_lod : require >+precision mediump float; >+varying vec2 texCoord0v; >+uniform float lod; >+uniform sampler2D tex; >+void main() { >+ vec4 color = texture2DLodEXT(tex, texCoord0v, lod); >+ gl_FragColor = color; >+} >+</script> >+ >+<script> >+description("This test verifies the functionality of the EXT_shader_texture_lod extension, if it is available."); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas); >+var ext = null; >+ >+// Run all tests once. >+runAllTests(); >+ >+// Run all tests against with a new context to test for any cache issues. >+debug(""); >+debug("Testing new context to catch cache errors"); >+var canvas2 = document.getElementById("canvas2"); >+gl = wtu.create3DContext(canvas2); >+ext = null; >+runAllTests(); >+ >+function runAllTests() { >+ if (!gl) { >+ testFailed("WebGL context does not exist"); >+ } else { >+ testPassed("WebGL context exists"); >+ >+ // Run tests with extension disabled >+ runShaderTests(false); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = gl.getExtension("EXT_shader_texture_lod"); >+ if (!ext) { >+ testPassed("No EXT_shader_texture_lod support -- this is legal"); >+ >+ runSupportedTest(false); >+ } else { >+ testPassed("Successfully enabled EXT_shader_texture_lod extension"); >+ >+ runSupportedTest(true); >+ >+ runShaderTests(true); >+ runOutputTests(); >+ runUniqueObjectTest(); >+ runReferenceCycleTest(); >+ >+ // Run deferred link tests. >+ runDeferredLinkTests(); >+ } >+ } >+ >+} >+ >+function runSupportedTest(extensionEnabled) { >+ var supported = gl.getSupportedExtensions(); >+ if (supported.indexOf("EXT_shader_texture_lod") >= 0) { >+ if (extensionEnabled) { >+ testPassed("EXT_shader_texture_lod listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("EXT_shader_texture_lod listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("EXT_shader_texture_lod not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("EXT_shader_texture_lod not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+function runShaderTests(extensionEnabled) { >+ debug(""); >+ debug("Testing various shader compiles with extension " + (extensionEnabled ? "enabled" : "disabled")); >+ >+ // Expect the macro shader to succeed ONLY if enabled >+ var macroFragmentProgram = wtu.loadProgramFromScriptExpectError(gl, "goodVertexShader", "macroFragmentShader"); >+ if (extensionEnabled) { >+ if (macroFragmentProgram) { >+ // Expected result >+ testPassed("GL_EXT_shader_texture_lod defined in shaders when extension is enabled"); >+ } else { >+ testFailed("GL_EXT_shader_texture_lod not defined in shaders when extension is enabled"); >+ } >+ } else { >+ if (macroFragmentProgram) { >+ testFailed("GL_EXT_shader_texture_lod defined in shaders when extension is disabled"); >+ } else { >+ testPassed("GL_EXT_shader_texture_lod not defined in shaders when extension disabled"); >+ } >+ } >+ >+ // Always expect the shader missing the #pragma to fail (whether enabled or not) >+ var missingPragmaFragmentProgram = wtu.loadProgramFromScriptExpectError(gl, "goodVertexShader", "missingPragmaFragmentShader"); >+ if (missingPragmaFragmentProgram) { >+ testFailed("Shader built-ins allowed without #extension pragma"); >+ } else { >+ testPassed("Shader built-ins disallowed without #extension pragma"); >+ } >+ >+ // Try to compile a shader using the built-ins that should only succeed if enabled >+ var testFragmentProgram = wtu.loadProgramFromScriptExpectError(gl, "goodVertexShader", "testFragmentShader"); >+ if (extensionEnabled) { >+ if (testFragmentProgram) { >+ testPassed("Shader built-ins compiled successfully when extension enabled"); >+ } else { >+ testFailed("Shader built-ins failed to compile when extension enabled"); >+ } >+ } else { >+ if (testFragmentProgram) { >+ testFailed("Shader built-ins compiled successfully when extension disabled"); >+ } else { >+ testPassed("Shader built-ins failed to compile when extension disabled"); >+ } >+ } >+} >+ >+function runOutputTests() { >+ debug(""); >+ debug("Testing various draws for valid built-in function behavior"); >+ gl.viewport(0, 0, canvas.width, canvas.height); >+ >+ var program = wtu.setupProgram(gl, ["outputVertexShader", "outputFragmentShader"], ['vPosition', 'texCoord0'], [0, 1]); >+ var quadParameters = wtu.setupUnitQuad(gl, 0, 1); >+ >+ var colors = [ >+ {name: 'red', color:[255, 0, 0, 255]}, >+ {name: 'green', color:[0, 255, 0, 255]}, >+ {name: 'blue', color:[0, 0, 255, 255]}, >+ {name: 'yellow', color:[255, 255, 0, 255]}, >+ {name: 'magenta', color:[255, 0, 255, 255]}, >+ {name: 'cyan', color:[0, 255, 255, 255]}, >+ {name: 'pink', color:[255, 128, 128, 255]}, >+ {name: 'gray', color:[128, 128, 128, 255]}, >+ {name: 'light green', color:[128, 255, 128, 255]}, >+ ]; >+ >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST_MIPMAP_LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.REPEAT); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.REPEAT); >+ >+ for (var ii = 0; ii < colors.length; ++ii) { >+ var color = colors[ii]; >+ var size = Math.pow(2, colors.length - ii - 1); >+ wtu.fillTexture(gl, tex, size, size, color.color, ii); >+ } >+ >+ var loc = gl.getUniformLocation(program, "lod"); >+ >+ for (var ii = 0; ii < colors.length; ++ii) { >+ gl.uniform1f(loc, ii); >+ var color = colors[ii]; >+ wtu.drawUnitQuad(gl); >+ wtu.checkCanvas( >+ gl, color.color, >+ "256x256 texture drawn to 256x256 dest with lod = " + ii + >+ " should be " + color.name); >+ } >+ >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+} >+ >+function runUniqueObjectTest() >+{ >+ debug(""); >+ debug("Testing that getExtension() returns the same object each time"); >+ ext = null; >+ gl.getExtension("EXT_shader_texture_lod").myProperty = 2; >+ webglHarnessCollectGarbage(); >+ shouldBe('gl.getExtension("EXT_shader_texture_lod").myProperty', '2'); >+} >+ >+function runReferenceCycleTest() >+{ >+ // create some reference cycles. The goal is to see if they cause leaks. The point is that >+ // some browser test runners have instrumentation to detect leaked refcounted objects. >+ debug(""); >+ debug("Testing reference cycles between context and extension objects"); >+ var ext = gl.getExtension("EXT_shader_texture_lod"); >+ >+ // create cycle between extension and context, since the context has to hold a reference to the extension >+ ext.context = gl; >+ >+ // create a self-cycle on the extension object >+ ext.ext = ext; >+} >+ >+function runDeferredLinkTests() { >+ debug(""); >+ debug("Testing deferred shader compilation tests."); >+ >+ // Test for compilation failures that are caused by missing extensions >+ // do not succeed if extensions are enabled during linking. This would >+ // only happen for deferred shader compilations. >+ >+ // First test if link succeeds with extension enabled. >+ var glEnabled = wtu.create3DContext(); >+ var extEnabled = glEnabled.getExtension("EXT_shader_texture_lod"); >+ if (!extEnabled) { >+ testFailed("Deferred link test expects the extension to be supported"); >+ } >+ >+ var vertexShader = wtu.loadShaderFromScript(glEnabled, "goodVertexShader"); >+ var fragmentShader = wtu.loadShaderFromScript(glEnabled, "macroFragmentShader"); >+ >+ if (!vertexShader || !fragmentShader) { >+ testFailed("Could not create good shaders."); >+ return; >+ } >+ >+ var program = wtu.setupProgram(glEnabled, [vertexShader, fragmentShader]); >+ >+ if (!program) { >+ testFailed("Compilation with extension enabled failed."); >+ return; >+ } >+ >+ // Create new context to test link failure without extension enabled. >+ var glDeferred = wtu.create3DContext(); >+ >+ var vertexShader = wtu.loadShaderFromScript(glDeferred, "goodVertexShader", glDeferred.VERTEX_SHADER, undefined, undefined, true); >+ var fragmentShader = wtu.loadShaderFromScript(glDeferred, "macroFragmentShader", glDeferred.FRAGMENT_SHADER, undefined, undefined, true); >+ >+ if (vertexShader == null || fragmentShader == null) { >+ testFailed("Could not create shaders."); >+ return; >+ } >+ >+ // Shader compilations should have failed due to extensions not enabled. >+ glDeferred.getExtension("EXT_shader_texture_lod"); >+ var program = wtu.setupProgram(glDeferred, [vertexShader, fragmentShader]); >+ if (program) { >+ testFailed("Compilation with extension disabled then linking with extension enabled should have failed."); >+ return; >+ } >+ >+ testPassed("Compilation with extension disabled then linking with extension enabled."); >+} >+ >+debug(""); >+successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-texture-filter-anisotropic.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-texture-filter-anisotropic.html >new file mode 100644 >index 00000000000..22dc07ce2b6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-texture-filter-anisotropic.html >@@ -0,0 +1,190 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 Florian Boesch <pyalot@gmail.com>. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL EXT_texture_filter_anisotropic Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+description("This test verifies the functionality of the EXT_texture_filter_anisotropic extension, if it is available."); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas); >+var ext = null; >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ // Run tests with extension disabled >+ runHintTestDisabled(); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = wtu.getExtensionWithKnownPrefixes(gl, "EXT_texture_filter_anisotropic"); >+ >+ if (!ext) { >+ testPassed("No EXT_texture_filter_anisotropic support -- this is legal"); >+ >+ runSupportedTest(false); >+ } else { >+ testPassed("Successfully enabled EXT_texture_filter_anisotropic extension"); >+ >+ runSupportedTest(true); >+ runHintTestEnabled(); >+ } >+} >+ >+function runSupportedTest(extensionEnabled) { >+ if (wtu.getSupportedExtensionWithKnownPrefixes(gl, "EXT_texture_filter_anisotropic") !== undefined) { >+ if (extensionEnabled) { >+ testPassed("EXT_texture_filter_anisotropic listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("EXT_texture_filter_anisotropic listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("EXT_texture_filter_anisotropic not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("EXT_texture_filter_anisotropic not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+function runHintTestDisabled() { >+ debug("Testing MAX_TEXTURE_MAX_ANISOTROPY_EXT with extension disabled"); >+ >+ var MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF; >+ gl.getParameter(MAX_TEXTURE_MAX_ANISOTROPY_EXT); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "MAX_TEXTURE_MAX_ANISOTROPY_EXT should not be queryable if extension is disabled"); >+ >+ debug("Testing TEXTURE_MAX_ANISOTROPY_EXT with extension disabled"); >+ var TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE; >+ var texture = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, texture); >+ >+ gl.getTexParameter(gl.TEXTURE_2D, TEXTURE_MAX_ANISOTROPY_EXT); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "TEXTURE_MAX_ANISOTROPY_EXT should not be queryable if extension is disabled"); >+ >+ gl.texParameterf(gl.TEXTURE_2D, TEXTURE_MAX_ANISOTROPY_EXT, 1); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "TEXTURE_MAX_ANISOTROPY_EXT should not be settable if extension is disabled"); >+ >+ gl.texParameteri(gl.TEXTURE_2D, TEXTURE_MAX_ANISOTROPY_EXT, 1); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "TEXTURE_MAX_ANISOTROPY_EXT should not be settable if extension is disabled"); >+ >+ gl.deleteTexture(texture); >+} >+ >+function runHintTestEnabled() { >+ debug("Testing MAX_TEXTURE_MAX_ANISOTROPY_EXT with extension enabled"); >+ >+ shouldBe("ext.MAX_TEXTURE_MAX_ANISOTROPY_EXT", "0x84FF"); >+ >+ var max_anisotropy = gl.getParameter(ext.MAX_TEXTURE_MAX_ANISOTROPY_EXT); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "MAX_TEXTURE_MAX_ANISOTROPY_EXT query should succeed if extension is enabled"); >+ >+ if(max_anisotropy >= 2){ >+ testPassed("Minimum value of MAX_TEXTURE_MAX_ANISOTROPY_EXT is 2.0"); >+ } >+ else{ >+ testFailed("Minimum value of MAX_TEXTURE_MAX_ANISOTROPY_EXT is 2.0, returned values was: " + max_anisotropy); >+ } >+ >+ // TODO make a texture and verify initial value == 1 and setting to less than 1 is invalid value >+ >+ debug("Testing TEXTURE_MAX_ANISOTROPY_EXT with extension disabled"); >+ shouldBe("ext.TEXTURE_MAX_ANISOTROPY_EXT", "0x84FE"); >+ >+ var texture = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, texture); >+ >+ var queried_value = gl.getTexParameter(gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "TEXTURE_MAX_ANISOTROPY_EXT query should succeed if extension is enabled"); >+ >+ if(queried_value == 1){ >+ testPassed("Initial value of TEXTURE_MAX_ANISOTROPY_EXT is 1.0"); >+ } >+ else{ >+ testFailed("Initial value of TEXTURE_MAX_ANISOTROPY_EXT should be 1.0, returned value was: " + queried_value); >+ } >+ >+ gl.texParameterf(gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT, 0); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "texParameterf TEXTURE_MAX_ANISOTROPY_EXT set to < 1 should be an invalid value"); >+ >+ gl.texParameteri(gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT, 0); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "texParameteri TEXTURE_MAX_ANISOTROPY_EXT set to < 1 should be an invalid value"); >+ >+ gl.texParameterf(gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT, max_anisotropy); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "texParameterf TEXTURE_MAX_ANISOTROPY_EXT set to >= 2 should succeed"); >+ >+ gl.texParameteri(gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT, max_anisotropy); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "texParameteri TEXTURE_MAX_ANISOTROPY_EXT set to >= 2 should succeed"); >+ >+ var queried_value = gl.getTexParameter(gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT); >+ if(queried_value == max_anisotropy){ >+ testPassed("Set value of TEXTURE_MAX_ANISOTROPY_EXT matches expecation"); >+ } >+ else{ >+ testFailed("Set value of TEXTURE_MAX_ANISOTROPY_EXT should be: " + max_anisotropy + " , returned value was: " + queried_value); >+ } >+ >+ gl.texParameterf(gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT, 1.5); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "texParameterf TEXTURE_MAX_ANISOTROPY_EXT set to 1.5 should succeed"); >+ >+ queried_value = gl.getTexParameter(gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT); >+ if(queried_value == 1.5){ >+ testPassed("Set value of TEXTURE_MAX_ANISOTROPY_EXT matches expecation"); >+ } >+ else{ >+ testFailed("Set value of TEXTURE_MAX_ANISOTROPY_EXT should be: " + 1.5 + " , returned value was: " + queried_value); >+ } >+ >+ >+ gl.deleteTexture(texture); >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/get-extension.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/get-extension.html >new file mode 100644 >index 00000000000..eb8b1b91393 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/get-extension.html >@@ -0,0 +1,120 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Extension Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> >+<div id="console"></div> >+<script> >+"use strict"; >+ >+var pseudoRandom = (function() { >+ var seed = 3; >+ return function() { >+ seed = (seed * 11 + 17) % 25; >+ return seed / 25; >+ }; >+})(); >+ >+var randomizeCase = function(str) { >+ var newChars = []; >+ for (var ii = 0; ii < str.length; ++ii) { >+ var c = str.substr(ii, 1); >+ var m = (pseudoRandom() > 0.5) ? c.toLowerCase() : c.toUpperCase(); >+ newChars.push(m); >+ } >+ return newChars.join(""); >+}; >+ >+description(); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas); >+ >+var ii; >+ >+debug("check every extension advertised can be enabled"); >+debug(""); >+var extensionNames = gl.getSupportedExtensions(); >+var extensionNamesLower = []; >+for (ii = 0; ii < extensionNames.length; ++ii) { >+ extensionNamesLower.push(extensionNames[ii].toLowerCase()); >+} >+ >+for (ii = 0; ii < extensionNames.length; ++ii) { >+ var originalName = extensionNames[ii]; >+ var mixedName = randomizeCase(originalName); >+ var extension = gl.getExtension(mixedName); >+ assertMsg(extension, "able to get " + originalName + " as " + mixedName); >+ if (extension) { >+ var kTestString = "this is a test"; >+ var kTestNumber = 123; >+ var kTestFunction = function() { }; >+ var kTestObject = { }; >+ extension.testStringProperty = kTestString; >+ extension.testNumberProperty = kTestNumber; >+ extension.testFunctionProperty = kTestFunction; >+ extension.testObjectProperty = kTestObject; >+ webglHarnessCollectGarbage(); >+ var extension2 = gl.getExtension(originalName); >+ assertMsg( >+ extension === extension2, >+ "calling getExtension twice for the same extension returns the same object"); >+ assertMsg( >+ extension2.testStringProperty === kTestString && >+ extension2.testFunctionProperty === kTestFunction && >+ extension2.testObjectProperty === kTestObject && >+ extension2.testNumberProperty === kTestNumber, >+ "object returned by 2nd call to getExtension has same properties"); >+ >+ var prefixedVariants = wtu.getExtensionPrefixedNames(originalName); >+ for (var jj = 0; jj < prefixedVariants.length; ++jj) { >+ assertMsg( >+ gl.getExtension(prefixedVariants[jj]) === null || >+ extensionNamesLower.indexOf(prefixedVariants[jj].toLowerCase()) !== -1, >+ "getExtension('" + prefixedVariants[jj] + "') returns an object only if the name is returned by getSupportedExtensions"); >+ } >+ } >+ debug(""); >+} >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-element-index-uint.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-element-index-uint.html >new file mode 100644 >index 00000000000..922a49555b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-element-index-uint.html >@@ -0,0 +1,449 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL OES_element_index_uint Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+ >+<script id="vs" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+attribute vec4 vColor; >+varying vec4 color; >+void main() { >+ gl_Position = vPosition; >+ color = vColor; >+} >+</script> >+<script id="fs" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec4 color; >+void main() { >+ gl_FragColor = color; >+} >+</script> >+ >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description("This test verifies the functionality of the OES_element_index_uint extension, if it is available."); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var gl = null; >+var ext = null; >+var canvas = null; >+ >+// Test both STATIC_DRAW and DYNAMIC_DRAW as a regression test >+// for a bug in ANGLE which has since been fixed. >+for (var ii = 0; ii < 2; ++ii) { >+ canvas = document.createElement("canvas"); >+ canvas.width = 50; >+ canvas.height = 50; >+ >+ gl = wtu.create3DContext(canvas); >+ >+ if (!gl) { >+ testFailed("WebGL context does not exist"); >+ } else { >+ testPassed("WebGL context exists"); >+ >+ var drawType = (ii == 0) ? gl.STATIC_DRAW : gl.DYNAMIC_DRAW; >+ debug("Testing " + ((ii == 0) ? "STATIC_DRAW" : "DYNAMIC_DRAW")); >+ >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = gl.getExtension("OES_element_index_uint"); >+ if (!ext) { >+ testPassed("No OES_element_index_uint support -- this is legal"); >+ >+ runSupportedTest(false); >+ } else { >+ testPassed("Successfully enabled OES_element_index_uint extension"); >+ >+ runSupportedTest(true); >+ >+ runDrawTests(drawType); >+ >+ // These tests are tweaked duplicates of the buffers/index-validation* tests >+ // using unsigned int indices to ensure that behavior remains consistent >+ runIndexValidationTests(drawType); >+ runCopiesIndicesTests(drawType); >+ runResizedBufferTests(drawType); >+ runVerifiesTooManyIndicesTests(drawType); >+ runCrashWithBufferSubDataTests(drawType); >+ >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+ } >+ } >+} >+ >+function runSupportedTest(extensionEnabled) { >+ var supported = gl.getSupportedExtensions(); >+ if (supported.indexOf("OES_element_index_uint") >= 0) { >+ if (extensionEnabled) { >+ testPassed("OES_element_index_uint listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("OES_element_index_uint listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("OES_element_index_uint not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("OES_element_index_uint not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+function runDrawTests(drawType) { >+ debug("Test that draws with unsigned integer indices produce the expected results"); >+ >+ canvas.width = 50; canvas.height = 50; >+ gl.viewport(0, 0, canvas.width, canvas.height); >+ >+ var program = wtu.setupSimpleColorProgram(gl); >+ >+ function setupDraw(s) { >+ // Create a vertex buffer that cannot be fully indexed via shorts >+ var quadArrayLen = 65537 * 3; >+ var quadArray = new Float32Array(quadArrayLen); >+ >+ // Leave all but the last 4 values zero-ed out >+ var idx = quadArrayLen - 12; >+ >+ // Initialized the last 4 values to a quad >+ quadArray[idx++] = 1.0 * s; >+ quadArray[idx++] = 1.0 * s; >+ quadArray[idx++] = 0.0; >+ >+ quadArray[idx++] = -1.0 * s; >+ quadArray[idx++] = 1.0 * s; >+ quadArray[idx++] = 0.0; >+ >+ quadArray[idx++] = -1.0 * s; >+ quadArray[idx++] = -1.0 * s; >+ quadArray[idx++] = 0.0; >+ >+ quadArray[idx++] = 1.0 * s; >+ quadArray[idx++] = -1.0 * s; >+ quadArray[idx++] = 0.0; >+ >+ var vertexObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ gl.bufferData(gl.ARRAY_BUFFER, quadArray, drawType); >+ >+ // Create an unsigned int index buffer that indexes the last 4 vertices >+ var baseIndex = (quadArrayLen / 3) - 4; >+ >+ var indexObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexObject); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint32Array([ >+ baseIndex + 0, >+ baseIndex + 1, >+ baseIndex + 2, >+ baseIndex + 2, >+ baseIndex + 3, >+ baseIndex + 0]), drawType); >+ >+ var opt_positionLocation = 0; >+ gl.enableVertexAttribArray(opt_positionLocation); >+ gl.vertexAttribPointer(opt_positionLocation, 3, gl.FLOAT, false, 0, 0); >+ }; >+ function testPixel(blackList, whiteList) { >+ function testList(list, expected) { >+ for (var n = 0; n < list.length; n++) { >+ var l = list[n]; >+ var x = -Math.floor(l * canvas.width / 2) + canvas.width / 2; >+ var y = -Math.floor(l * canvas.height / 2) + canvas.height / 2; >+ wtu.checkCanvasRect(gl, x, y, 1, 1, [expected, expected, expected], >+ "Draw should pass", 2); >+ } >+ } >+ testList(blackList, 0); >+ testList(whiteList, 255); >+ }; >+ function verifyDraw(s) { >+ gl.clearColor(1.0, 1.0, 1.0, 1.0); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ wtu.setFloatDrawColor(gl, [0.0, 0.0, 0.0, 1.0]); >+ gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_INT, 0); >+ >+ var blackList = []; >+ var whiteList = []; >+ var points = [0.0, 0.2, 0.4, 0.6, 0.8, 1.0]; >+ for (var n = 0; n < points.length; n++) { >+ if (points[n] <= s) { >+ blackList.push(points[n]); >+ } else { >+ whiteList.push(points[n]); >+ } >+ } >+ testPixel(blackList, whiteList); >+ }; >+ >+ setupDraw(0.5); >+ verifyDraw(0.5); >+} >+ >+function runIndexValidationTests(drawType) { >+ description("Tests that index validation verifies the correct number of indices"); >+ >+ function sizeInBytes(type) { >+ switch (type) { >+ case gl.BYTE: >+ case gl.UNSIGNED_BYTE: >+ return 1; >+ case gl.SHORT: >+ case gl.UNSIGNED_SHORT: >+ return 2; >+ case gl.INT: >+ case gl.UNSIGNED_INT: >+ case gl.FLOAT: >+ return 4; >+ default: >+ throw "unknown type"; >+ } >+ } >+ >+ var program = wtu.loadStandardProgram(gl); >+ >+ // 3 vertices => 1 triangle, interleaved data >+ var dataComplete = new Float32Array([0, 0, 0, 1, >+ 0, 0, 1, >+ 1, 0, 0, 1, >+ 0, 0, 1, >+ 1, 1, 1, 1, >+ 0, 0, 1]); >+ var dataIncomplete = new Float32Array([0, 0, 0, 1, >+ 0, 0, 1, >+ 1, 0, 0, 1, >+ 0, 0, 1, >+ 1, 1, 1, 1]); >+ var indices = new Uint32Array([0, 1, 2]); >+ >+ debug("Testing with valid indices"); >+ >+ var bufferComplete = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, bufferComplete); >+ gl.bufferData(gl.ARRAY_BUFFER, dataComplete, drawType); >+ var elements = gl.createBuffer(); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, elements); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, drawType); >+ gl.useProgram(program); >+ var vertexLoc = gl.getAttribLocation(program, "a_vertex"); >+ var normalLoc = gl.getAttribLocation(program, "a_normal"); >+ gl.vertexAttribPointer(vertexLoc, 4, gl.FLOAT, false, 7 * sizeInBytes(gl.FLOAT), 0); >+ gl.enableVertexAttribArray(vertexLoc); >+ gl.vertexAttribPointer(normalLoc, 3, gl.FLOAT, false, 7 * sizeInBytes(gl.FLOAT), 4 * sizeInBytes(gl.FLOAT)); >+ gl.enableVertexAttribArray(normalLoc); >+ shouldBe('gl.checkFramebufferStatus(gl.FRAMEBUFFER)', 'gl.FRAMEBUFFER_COMPLETE'); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ shouldBeUndefined('gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_INT, 0)'); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ debug("Testing with out-of-range indices"); >+ >+ var bufferIncomplete = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, bufferIncomplete); >+ gl.bufferData(gl.ARRAY_BUFFER, dataIncomplete, drawType); >+ gl.vertexAttribPointer(vertexLoc, 4, gl.FLOAT, false, 7 * sizeInBytes(gl.FLOAT), 0); >+ gl.enableVertexAttribArray(vertexLoc); >+ gl.disableVertexAttribArray(normalLoc); >+ debug("Enable vertices, valid"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ shouldBeUndefined('gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_INT, 0)'); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ debug("Enable normals, out-of-range"); >+ gl.vertexAttribPointer(normalLoc, 3, gl.FLOAT, false, 7 * sizeInBytes(gl.FLOAT), 4 * sizeInBytes(gl.FLOAT)); >+ gl.enableVertexAttribArray(normalLoc); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ wtu.shouldGenerateGLError(gl, [gl.INVALID_OPERATION, gl.NO_ERROR], >+ 'gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_INT, 0)'); >+ >+ debug("Test with enabled attribute that does not belong to current program"); >+ >+ gl.disableVertexAttribArray(normalLoc); >+ var extraLoc = Math.max(vertexLoc, normalLoc) + 1; >+ gl.enableVertexAttribArray(extraLoc); >+ debug("Enable an extra attribute with null"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ shouldBeUndefined('gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_INT, 0)'); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION); >+ debug("Enable an extra attribute with insufficient data buffer"); >+ gl.vertexAttribPointer(extraLoc, 3, gl.FLOAT, false, 7 * sizeInBytes(gl.FLOAT), 4 * sizeInBytes(gl.FLOAT)); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ shouldBeUndefined('gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_INT, 0)'); >+ debug("Pass large negative index to vertexAttribPointer"); >+ gl.vertexAttribPointer(normalLoc, 3, gl.FLOAT, false, 7 * sizeInBytes(gl.FLOAT), -2000000000 * sizeInBytes(gl.FLOAT)); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE); >+ shouldBeUndefined('gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_INT, 0)'); >+} >+ >+function runCopiesIndicesTests(drawType) { >+ debug("Test that client data is always copied during bufferData and bufferSubData calls"); >+ >+ var program = wtu.loadStandardProgram(gl); >+ >+ gl.useProgram(program); >+ var vertexObject = gl.createBuffer(); >+ gl.enableVertexAttribArray(0); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ // 4 vertices -> 2 triangles >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ 0,0,0, 0,1,0, 1,0,0, 1,1,0 ]), drawType); >+ gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+ >+ var indexObject = gl.createBuffer(); >+ >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexObject); >+ var indices = new Uint32Array([ 10000, 0, 1, 2, 3, 10000 ]); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, drawType); >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_INT, 4)"); >+ var indexValidationError = wtu.shouldGenerateGLError(gl, [gl.INVALID_OPERATION, gl.NO_ERROR], >+ "gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_INT, 0)"); >+ wtu.shouldGenerateGLError(gl, indexValidationError, "gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_INT, 8)"); >+ indices[0] = 2; >+ indices[5] = 1; >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_INT, 4)"); >+ wtu.shouldGenerateGLError(gl, indexValidationError, "gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_INT, 0)"); >+ wtu.shouldGenerateGLError(gl, indexValidationError, "gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_INT, 8)"); >+} >+ >+function runResizedBufferTests(drawType) { >+ debug("Test that updating the size of a vertex buffer is properly noticed by the WebGL implementation."); >+ >+ var program = wtu.setupProgram(gl, ["vs", "fs"], ["vPosition", "vColor"]); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "after initialization"); >+ >+ var vertexObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array( >+ [-1,1,0, 1,1,0, -1,-1,0, >+ -1,-1,0, 1,1,0, 1,-1,0]), drawType); >+ gl.enableVertexAttribArray(0); >+ gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "after vertex setup"); >+ >+ var texCoordObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, texCoordObject); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array( >+ [0,0, 1,0, 0,1, >+ 0,1, 1,0, 1,1]), drawType); >+ gl.enableVertexAttribArray(1); >+ gl.vertexAttribPointer(1, 2, gl.FLOAT, false, 0, 0); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "after texture coord setup"); >+ >+ // Now resize these buffers because we want to change what we're drawing. >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ >+ -1,1,0, 1,1,0, -1,-1,0, 1,-1,0, >+ -1,1,0, 1,1,0, -1,-1,0, 1,-1,0]), drawType); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "after vertex redefinition"); >+ gl.bindBuffer(gl.ARRAY_BUFFER, texCoordObject); >+ gl.bufferData(gl.ARRAY_BUFFER, new Uint8Array([ >+ 255, 0, 0, 255, >+ 255, 0, 0, 255, >+ 255, 0, 0, 255, >+ 255, 0, 0, 255, >+ 0, 255, 0, 255, >+ 0, 255, 0, 255, >+ 0, 255, 0, 255, >+ 0, 255, 0, 255]), drawType); >+ gl.vertexAttribPointer(1, 4, gl.UNSIGNED_BYTE, false, 0, 0); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "after texture coordinate / color redefinition"); >+ >+ var numQuads = 2; >+ var indices = new Uint32Array(numQuads * 6); >+ for (var ii = 0; ii < numQuads; ++ii) { >+ var offset = ii * 6; >+ var quad = (ii == (numQuads - 1)) ? 4 : 0; >+ indices[offset + 0] = quad + 0; >+ indices[offset + 1] = quad + 1; >+ indices[offset + 2] = quad + 2; >+ indices[offset + 3] = quad + 2; >+ indices[offset + 4] = quad + 1; >+ indices[offset + 5] = quad + 3; >+ } >+ var indexObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexObject); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, drawType); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "after setting up indices"); >+ gl.drawElements(gl.TRIANGLES, numQuads * 6, gl.UNSIGNED_INT, 0); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "after drawing"); >+} >+ >+function runVerifiesTooManyIndicesTests(drawType) { >+ description("Tests that index validation for drawElements does not examine too many indices"); >+ >+ var program = wtu.loadStandardProgram(gl); >+ >+ gl.useProgram(program); >+ var vertexObject = gl.createBuffer(); >+ gl.enableVertexAttribArray(0); >+ gl.disableVertexAttribArray(1); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ // 4 vertices -> 2 triangles >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ 0,0,0, 0,1,0, 1,0,0, 1,1,0 ]), drawType); >+ gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+ >+ var indexObject = gl.createBuffer(); >+ >+ debug("Test out of range indices") >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexObject); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint32Array([ 10000, 0, 1, 2, 3, 10000 ]), drawType); >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_INT, 4)"); >+ var indexValidationError = wtu.shouldGenerateGLError(gl, [gl.INVALID_OPERATION, gl.NO_ERROR], >+ "gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_INT, 0)"); >+ wtu.shouldGenerateGLError(gl, indexValidationError, "gl.drawElements(gl.TRIANGLE_STRIP, 4, gl.UNSIGNED_INT, 8)"); >+} >+ >+function runCrashWithBufferSubDataTests(drawType) { >+ debug('Verifies that the index validation code which is within bufferSubData does not crash.') >+ >+ var elementBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, elementBuffer); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, 256, drawType); >+ var data = new Uint32Array(127); >+ gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 64, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "after attempting to update a buffer outside of the allocated bounds"); >+ testPassed("bufferSubData, when buffer object was initialized with null, did not crash"); >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-standard-derivatives.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-standard-derivatives.html >new file mode 100644 >index 00000000000..a793ae90853 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-standard-derivatives.html >@@ -0,0 +1,421 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL OES_standard_derivatives Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> >+<div id="console"></div> >+<!-- Shaders for testing standard derivatives --> >+ >+<!-- Shader omitting the required #extension pragma --> >+<script id="missingPragmaFragmentShader" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec2 texCoord; >+void main() { >+ float dx = dFdx(texCoord.x); >+ float dy = dFdy(texCoord.y); >+ float w = fwidth(texCoord.x); >+ gl_FragColor = vec4(dx, dy, w, 1.0); >+} >+</script> >+ >+<!-- Shader to test macro definition --> >+<script id="macroFragmentShader" type="x-shader/x-fragment"> >+precision mediump float; >+void main() { >+#ifdef GL_OES_standard_derivatives >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); >+#else >+ // Error expected >+ #error no GL_OES_standard_derivatives; >+#endif >+} >+</script> >+ >+<!-- Shader with required #extension pragma --> >+<script id="testFragmentShader" type="x-shader/x-fragment"> >+#extension GL_OES_standard_derivatives : enable >+precision mediump float; >+varying vec2 texCoord; >+void main() { >+ float dx = dFdx(texCoord.x); >+ float dy = dFdy(texCoord.y); >+ float w = fwidth(texCoord.x); >+ gl_FragColor = vec4(dx, dy, w, 1.0); >+} >+</script> >+<!-- Shaders to link with test fragment shaders --> >+<script id="goodVertexShader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+varying vec2 texCoord; >+void main() { >+ texCoord = vPosition.xy; >+ gl_Position = vPosition; >+} >+</script> >+<!-- Shaders to test output --> >+<script id="outputVertexShader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+varying vec4 position; >+void main() { >+ position = vPosition; >+ gl_Position = vPosition; >+} >+</script> >+<script id="outputFragmentShader" type="x-shader/x-fragment"> >+#extension GL_OES_standard_derivatives : enable >+precision mediump float; >+varying vec4 position; >+void main() { >+ float dzdx = dFdx(position.z); >+ float dzdy = dFdy(position.z); >+ float fw = fwidth(position.z); >+ gl_FragColor = vec4(abs(dzdx) * 40.0, abs(dzdy) * 40.0, fw * 40.0, 1.0); >+} >+</script> >+ >+<script> >+"use strict"; >+description("This test verifies the functionality of the OES_standard_derivatives extension, if it is available."); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas); >+var ext = null; >+ >+// Run all tests once. >+runAllTests(); >+ >+// Run all tests against with a new context to test for any cache issues. >+debug(""); >+debug("Testing new context to catch cache errors"); >+gl = wtu.create3DContext(); >+ext = null; >+runAllTests(); >+ >+function runAllTests() { >+ if (!gl) { >+ testFailed("WebGL context does not exist"); >+ } else { >+ testPassed("WebGL context exists"); >+ >+ // Run tests with extension disabled >+ runHintTestDisabled(); >+ runShaderTests(false); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = gl.getExtension("OES_standard_derivatives"); >+ if (!ext) { >+ testPassed("No OES_standard_derivatives support -- this is legal"); >+ >+ runSupportedTest(false); >+ } else { >+ testPassed("Successfully enabled OES_standard_derivatives extension"); >+ >+ runSupportedTest(true); >+ >+ runHintTestEnabled(); >+ runShaderTests(true); >+ runOutputTests(); >+ runUniqueObjectTest(); >+ >+ // Run deferred link tests. >+ runDeferredLinkTests(); >+ } >+ } >+ >+} >+ >+function runSupportedTest(extensionEnabled) { >+ var supported = gl.getSupportedExtensions(); >+ if (supported.indexOf("OES_standard_derivatives") >= 0) { >+ if (extensionEnabled) { >+ testPassed("OES_standard_derivatives listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("OES_standard_derivatives listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("OES_standard_derivatives not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("OES_standard_derivatives not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+function runHintTestDisabled() { >+ debug("Testing FRAGMENT_SHADER_DERIVATIVE_HINT_OES with extension disabled"); >+ >+ // Use the constant directly as we don't have the extension >+ var FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B; >+ >+ gl.getParameter(FRAGMENT_SHADER_DERIVATIVE_HINT_OES); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "FRAGMENT_SHADER_DERIVATIVE_HINT_OES should not be queryable if extension is disabled"); >+ >+ gl.hint(FRAGMENT_SHADER_DERIVATIVE_HINT_OES, gl.DONT_CARE); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "hint should not accept FRAGMENT_SHADER_DERIVATIVE_HINT_OES if extension is disabled"); >+} >+ >+function runHintTestEnabled() { >+ debug("Testing FRAGMENT_SHADER_DERIVATIVE_HINT_OES with extension enabled"); >+ >+ shouldBe("ext.FRAGMENT_SHADER_DERIVATIVE_HINT_OES", "0x8B8B"); >+ >+ gl.getParameter(ext.FRAGMENT_SHADER_DERIVATIVE_HINT_OES); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "FRAGMENT_SHADER_DERIVATIVE_HINT_OES query should succeed if extension is enabled"); >+ >+ // Default value is DONT_CARE >+ if (gl.getParameter(ext.FRAGMENT_SHADER_DERIVATIVE_HINT_OES) == gl.DONT_CARE) { >+ testPassed("Default value of FRAGMENT_SHADER_DERIVATIVE_HINT_OES is DONT_CARE"); >+ } else { >+ testFailed("Default value of FRAGMENT_SHADER_DERIVATIVE_HINT_OES is not DONT_CARE"); >+ } >+ >+ // Ensure that we can set the target >+ gl.hint(ext.FRAGMENT_SHADER_DERIVATIVE_HINT_OES, gl.DONT_CARE); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "hint should accept FRAGMENT_SHADER_DERIVATIVE_HINT_OES"); >+ >+ // Test all the hint modes >+ var validModes = ["FASTEST", "NICEST", "DONT_CARE"]; >+ var anyFailed = false; >+ for (var n = 0; n < validModes.length; n++) { >+ var mode = validModes[n]; >+ gl.hint(ext.FRAGMENT_SHADER_DERIVATIVE_HINT_OES, gl[mode]); >+ if (gl.getParameter(ext.FRAGMENT_SHADER_DERIVATIVE_HINT_OES) != gl[mode]) { >+ testFailed("Round-trip of hint()/getParameter() failed on mode " + mode); >+ anyFailed = true; >+ } >+ } >+ if (!anyFailed) { >+ testPassed("Round-trip of hint()/getParameter() with all supported modes"); >+ } >+} >+ >+function runShaderTests(extensionEnabled) { >+ debug(""); >+ debug("Testing various shader compiles with extension " + (extensionEnabled ? "enabled" : "disabled")); >+ >+ // Expect the macro shader to succeed ONLY if enabled >+ var macroFragmentProgram = wtu.loadProgramFromScriptExpectError(gl, "goodVertexShader", "macroFragmentShader"); >+ if (extensionEnabled) { >+ if (macroFragmentProgram) { >+ // Expected result >+ testPassed("GL_OES_standard_derivatives defined in shaders when extension is enabled"); >+ } else { >+ testFailed("GL_OES_standard_derivatives not defined in shaders when extension is enabled"); >+ } >+ } else { >+ if (macroFragmentProgram) { >+ testFailed("GL_OES_standard_derivatives defined in shaders when extension is disabled"); >+ } else { >+ testPassed("GL_OES_standard_derivatives not defined in shaders when extension disabled"); >+ } >+ } >+ >+ // Always expect the shader missing the #pragma to fail (whether enabled or not) >+ var missingPragmaFragmentProgram = wtu.loadProgramFromScriptExpectError(gl, "goodVertexShader", "missingPragmaFragmentShader"); >+ if (missingPragmaFragmentProgram) { >+ testFailed("Shader built-ins allowed without #extension pragma"); >+ } else { >+ testPassed("Shader built-ins disallowed without #extension pragma"); >+ } >+ >+ // Try to compile a shader using the built-ins that should only succeed if enabled >+ var testFragmentProgram = wtu.loadProgramFromScriptExpectError(gl, "goodVertexShader", "testFragmentShader"); >+ if (extensionEnabled) { >+ if (testFragmentProgram) { >+ testPassed("Shader built-ins compiled successfully when extension enabled"); >+ } else { >+ testFailed("Shader built-ins failed to compile when extension enabled"); >+ } >+ } else { >+ if (testFragmentProgram) { >+ testFailed("Shader built-ins compiled successfully when extension disabled"); >+ } else { >+ testPassed("Shader built-ins failed to compile when extension disabled"); >+ } >+ } >+} >+ >+function runOutputTests() { >+ // This tests does several draws with various values of z. >+ // The output of the fragment shader is: >+ // [dFdx(z), dFdy(z), fwidth(z), 1.0] >+ // The expected math: (note the conversion to uint8) >+ // canvas.width = canvas.height = 50 >+ // dFdx = totalChange.x / canvas.width = 0.5 / 50.0 = 0.01 >+ // dFdy = totalChange.y / canvas.height = 0.5 / 50.0 = 0.01 >+ // fw = abs(dFdx + dFdy) = 0.01 + 0.01 = 0.02 >+ // r = floor(dFdx * 40.0 * 255) = 102 >+ // g = floor(dFdy * 40.0 * 255) = 102 >+ // b = floor(fw * 40.0 * 255) = 204 >+ >+ var e = 5; // Amount of variance to allow in result pixels - may need to be tweaked higher >+ >+ debug("Testing various draws for valid built-in function behavior"); >+ >+ canvas.width = 50; canvas.height = 50; >+ gl.viewport(0, 0, canvas.width, canvas.height); >+ gl.hint(ext.FRAGMENT_SHADER_DERIVATIVE_HINT_OES, gl.NICEST); >+ >+ var positionLoc = 0; >+ var texcoordLoc = 1; >+ var program = wtu.setupProgram(gl, ["outputVertexShader", "outputFragmentShader"], ['vPosition', 'texCoord0'], [0, 1]); >+ var quadParameters = wtu.setupUnitQuad(gl, positionLoc, texcoordLoc); >+ >+ function expectResult(target, message) { >+ var locations = [ >+ [ 0.1, 0.1 ], >+ [ 0.9, 0.1 ], >+ [ 0.1, 0.9 ], >+ [ 0.9, 0.9 ], >+ [ 0.5, 0.5 ] >+ ]; >+ for (var n = 0; n < locations.length; n++) { >+ var loc = locations[n]; >+ var px = Math.floor(loc[0] * canvas.width); >+ var py = Math.floor(loc[1] * canvas.height); >+ wtu.checkCanvasRect(gl, px, py, 1, 1, target, message, 4); >+ } >+ }; >+ >+ function setupBuffers(tl, tr, bl, br) { >+ gl.bindBuffer(gl.ARRAY_BUFFER, quadParameters[0]); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ >+ 1.0, 1.0, tr, >+ -1.0, 1.0, tl, >+ -1.0, -1.0, bl, >+ 1.0, 1.0, tr, >+ -1.0, -1.0, bl, >+ 1.0, -1.0, br]), gl.STATIC_DRAW); >+ gl.vertexAttribPointer(positionLoc, 3, gl.FLOAT, false, 0, 0); >+ }; >+ >+ // Draw 1: (no variation) >+ setupBuffers(0.0, 0.0, 0.0, 0.0); >+ wtu.clearAndDrawUnitQuad(gl); >+ expectResult([0, 0, 0, 255], >+ "Draw 1 (no variation) should pass"); >+ >+ // Draw 2: (variation in x) >+ setupBuffers(1.0, 0.0, 1.0, 0.0); >+ wtu.clearAndDrawUnitQuad(gl); >+ expectResult([204, 0, 204, 255], >+ "Draw 2 (variation in x) should pass"); >+ >+ // Draw 3: (variation in y) >+ setupBuffers(1.0, 1.0, 0.0, 0.0); >+ wtu.clearAndDrawUnitQuad(gl); >+ expectResult([0, 204, 204, 255], >+ "Draw 3 (variation in y) should pass"); >+ >+ // Draw 4: (variation in x & y) >+ setupBuffers(1.0, 0.5, 0.5, 0.0); >+ wtu.clearAndDrawUnitQuad(gl); >+ expectResult([102, 102, 204, 255], >+ "Draw 4 (variation in x & y) should pass"); >+} >+ >+function runUniqueObjectTest() >+{ >+ debug("Testing that getExtension() returns the same object each time"); >+ ext = null; >+ gl.getExtension("OES_standard_derivatives").myProperty = 2; >+ webglHarnessCollectGarbage(); >+ shouldBe('gl.getExtension("OES_standard_derivatives").myProperty', '2'); >+} >+ >+function runDeferredLinkTests() { >+ debug(""); >+ debug("Testing deferred shader compilation tests."); >+ >+ // Test for compilation failures that are caused by missing extensions >+ // do not succeed if extensions are enabled during linking. This would >+ // only happen for deferred shader compilations. >+ >+ // First test if link succeeds with extension enabled. >+ var glEnabled = wtu.create3DContext(); >+ var extEnabled = glEnabled.getExtension("OES_standard_derivatives"); >+ if (!extEnabled) { >+ testFailed("Deferred link test expects the extension to be supported"); >+ } >+ >+ var vertexShader = wtu.loadShaderFromScript(glEnabled, "goodVertexShader"); >+ var fragmentShader = wtu.loadShaderFromScript(glEnabled, "macroFragmentShader"); >+ >+ if (!vertexShader || !fragmentShader) { >+ testFailed("Could not create good shaders."); >+ return; >+ } >+ >+ var program = wtu.setupProgram(glEnabled, [vertexShader, fragmentShader]); >+ >+ if (!program) { >+ testFailed("Compilation with extension enabled failed."); >+ return; >+ } >+ >+ // Create new context to test link failure without extension enabled. >+ var glDeferred = wtu.create3DContext(); >+ >+ var vertexShader = wtu.loadShaderFromScript(glDeferred, "goodVertexShader", glDeferred.VERTEX_SHADER, undefined, undefined, true); >+ var fragmentShader = wtu.loadShaderFromScript(glDeferred, "macroFragmentShader", glDeferred.FRAGMENT_SHADER, undefined, undefined, true); >+ >+ if (vertexShader == null || fragmentShader == null) { >+ testFailed("Could not create shaders."); >+ return; >+ } >+ >+ // Shader compilations should have failed due to extensions not enabled. >+ glDeferred.getExtension("OES_standard_derivatives"); >+ var program = wtu.setupProgram(glDeferred, [vertexShader, fragmentShader]); >+ if (program) { >+ testFailed("Compilation with extension disabled then linking with extension enabled should have failed."); >+ return; >+ } >+ >+ testPassed("Compilation with extension disabled then linking with extension enabled."); >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float-linear.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float-linear.html >new file mode 100644 >index 00000000000..fdb35d536d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float-linear.html >@@ -0,0 +1,53 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/oes-texture-float-and-half-float-linear.js"></script> >+<script> >+"use strict"; >+function testPrologue(gl, extensionTypeName) { >+ if (!gl.getExtension(extensionTypeName)) { >+ testPassed("No " + extensionTypeName + " support -- this is legal"); >+ return false; >+ } >+ testPassed("Successfully enabled " + extensionTypeName + " extension"); >+ return true; >+} >+</script> >+</head> >+<body onload='generateTest("OES_texture_float", "OES_texture_float_linear", "FLOAT", testPrologue)()'> >+<div id="description"></div> >+<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> >+<div id="console"></div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float-with-canvas.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float-with-canvas.html >new file mode 100644 >index 00000000000..36584616a62 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float-with-canvas.html >@@ -0,0 +1,55 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/tex-image-and-sub-image-utils.js"></script> >+<script src="../../js/tests/tex-image-and-sub-image-2d-with-canvas.js"></script> >+<script> >+"use strict"; >+function testPrologue(gl) { >+ if (!gl.getExtension("OES_texture_float")) { >+ testPassed("No OES_texture_float support -- this is legal"); >+ return false; >+ } >+ >+ testPassed("Successfully enabled OES_texture_float extension"); >+ return true; >+} >+</script> >+</head> >+<body onload='generateTest("RGBA", "RGBA", "FLOAT", testPrologue, "../../resources/")()'> >+<canvas id="example" width="32" height="32"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float-with-image-data.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float-with-image-data.html >new file mode 100644 >index 00000000000..8ab3300a886 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float-with-image-data.html >@@ -0,0 +1,56 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/tex-image-and-sub-image-utils.js"></script> >+<script src="../../js/tests/tex-image-and-sub-image-2d-with-image-data.js"></script> >+<script> >+"use strict"; >+function testPrologue(gl) { >+ if (!gl.getExtension("OES_texture_float")) { >+ testPassed("No OES_texture_float support -- this is legal"); >+ return false; >+ } >+ >+ testPassed("Successfully enabled OES_texture_float extension"); >+ return true; >+} >+</script> >+</head> >+<body onload='generateTest("RGBA", "RGBA", "FLOAT", testPrologue, "../../resources/")()'> >+<canvas id="texcanvas" width="2" height="2"></canvas> >+<canvas id="example" width="2" height="2"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float-with-image.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float-with-image.html >new file mode 100644 >index 00000000000..ac0293a3e7a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float-with-image.html >@@ -0,0 +1,55 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/tex-image-and-sub-image-utils.js"></script> >+<script src="../../js/tests/tex-image-and-sub-image-2d-with-image.js"></script> >+<script> >+"use strict"; >+function testPrologue(gl) { >+ if (!gl.getExtension("OES_texture_float")) { >+ testPassed("No OES_texture_float support -- this is legal"); >+ return false; >+ } >+ >+ testPassed("Successfully enabled OES_texture_float extension"); >+ return true; >+} >+</script> >+</head> >+<body onload='generateTest("RGBA", "RGBA", "FLOAT", testPrologue, "../../resources/")()'> >+<canvas id="example" width="32" height="32"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float-with-video.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float-with-video.html >new file mode 100644 >index 00000000000..03b2d00f1d4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float-with-video.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/tex-image-and-sub-image-utils.js"></script> >+<script src="../../js/tests/tex-image-and-sub-image-2d-with-video.js"></script> >+<script> >+"use strict"; >+function testPrologue(gl) { >+ if (!gl.getExtension("OES_texture_float")) { >+ testPassed("No OES_texture_float support -- this is legal"); >+ return false; >+ } >+ >+ testPassed("Successfully enabled OES_texture_float extension"); >+ return true; >+} >+</script> >+</head> >+<body onload='generateTest("RGBA", "RGBA", "FLOAT", testPrologue, "../../resources/")()'> >+<canvas id="example" width="32" height="32"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<video width="640" height="228" id="vid" controls> >+ <source src="../../resources/red-green.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' /> >+ <source src="../../resources/red-green.webmvp8.webm" type='video/webm; codecs="vp8, vorbis"' /> >+ <source src="../../resources/red-green.theora.ogv" type='video/ogg; codecs="theora, vorbis"' /> >+</video> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float.html >new file mode 100644 >index 00000000000..3315d6dbd2a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float.html >@@ -0,0 +1,325 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL OES_texture_float Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> >+<div id="console"></div> >+<!-- Shaders for testing floating-point textures --> >+<script id="testFragmentShader" type="x-shader/x-fragment"> >+precision mediump float; >+uniform sampler2D tex; >+uniform vec4 subtractor; >+varying vec2 texCoord; >+void main() >+{ >+ vec4 color = texture2D(tex, texCoord); >+ if (abs(color.r - subtractor.r) + >+ abs(color.g - subtractor.g) + >+ abs(color.b - subtractor.b) + >+ abs(color.a - subtractor.a) < 8.0) { >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); >+ } else { >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ } >+} >+</script> >+<!-- Shaders for testing floating-point render targets --> >+<script id="positionVertexShader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script id="floatingPointFragmentShader" type="x-shader/x-fragment"> >+void main() >+{ >+ gl_FragColor = vec4(10000.0, 10000.0, 10000.0, 10000.0); >+} >+</script> >+<script> >+"use strict"; >+description("This test verifies the functionality of the OES_texture_float extension, if it is available."); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas); >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ var texturedShaders = [ >+ wtu.simpleTextureVertexShader, >+ "testFragmentShader" >+ ]; >+ var testProgram = >+ wtu.setupProgram(gl, >+ texturedShaders, >+ ['vPosition', 'texCoord0'], >+ [0, 1]); >+ var quadParameters = wtu.setupUnitQuad(gl, 0, 1); >+ >+ // First verify that allocation of floating-point textures fails if >+ // the extension has not been enabled yet. >+ runTextureCreationTest(testProgram, false); >+ >+ if (!gl.getExtension("OES_texture_float")) { >+ testPassed("No OES_texture_float support -- this is legal"); >+ } else { >+ testPassed("Successfully enabled OES_texture_float extension"); >+ // If alpha value is missing from a texture it gets filled to 1 when sampling according to GLES2.0 table 3.12 >+ runTextureCreationTest(testProgram, true, gl.RGBA, 4, [10000, 10000, 10000, 10000]); >+ runTextureCreationTest(testProgram, true, gl.RGB, 3, [10000, 10000, 10000, 1]); >+ runTextureCreationTest(testProgram, true, gl.LUMINANCE, 1, [10000, 10000, 10000, 1]); >+ runTextureCreationTest(testProgram, true, gl.ALPHA, 1, [0, 0, 0, 10000]); >+ runTextureCreationTest(testProgram, true, gl.LUMINANCE_ALPHA, 2, [10000, 10000, 10000, 10000]); >+ >+ (function() { >+ debug(""); >+ var renderable = isRenderable(gl); >+ var renderableExtName = "WEBGL_color_buffer_float"; >+ var supported = gl.getSupportedExtensions().includes(renderableExtName); >+ if (renderable && !supported) { >+ testFailed("RGBA/FLOAT is color renderable but " + renderableExtName + " not exposed"); >+ } else if (supported && !renderable) { >+ testFailed(renderableExtName + " is exposed but RGBA/FLOAT is not color renderable"); >+ } >+ if (supported) { >+ runRenderTargetAndReadbackTest(testProgram, gl.RGBA, 4, [10000, 10000, 10000, 10000], 0, true); >+ runRenderTargetAndReadbackTest(testProgram, gl.RGB, 3, [10000, 10000, 10000, 1], 0, false); >+ runRenderTargetAndReadbackTest(testProgram, gl.RGBA, 4, [10000, 10000, 10000, 10000], 1, true); >+ runRenderTargetAndReadbackTest(testProgram, gl.RGBA, 4, [10000, 10000, 10000, 10000], 0.5, true); >+ } >+ })(); >+ >+ runUniqueObjectTest(); >+ } >+} >+ >+function isRenderable(gl) { >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.FLOAT, null); >+ >+ var fb = gl.createFramebuffer(); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex, 0); >+ >+ var status = gl.checkFramebufferStatus(gl.FRAMEBUFFER); >+ gl.deleteFramebuffer(fb); >+ gl.deleteTexture(tex); >+ >+ return status == gl.FRAMEBUFFER_COMPLETE; >+} >+ >+function allocateTexture() >+{ >+ var texture = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, texture); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "texture parameter setup should succeed"); >+ return texture; >+} >+ >+function checkRenderingResults() >+{ >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "should be green"); >+} >+ >+function runTextureCreationTest(testProgram, extensionEnabled, opt_format, opt_numChannels, opt_subtractor) >+{ >+ var format = opt_format || gl.RGBA; >+ var numberOfChannels = opt_numChannels || 4; >+ var expectFailure = !extensionEnabled; >+ var subtractor = opt_subtractor || [10000, 10000, 10000, 10000]; >+ >+ debug(""); >+ debug("testing format: " + wtu.glEnumToString(gl, format) + >+ " expect:" + (extensionEnabled ? "success" : "failure")); >+ >+ var texture = allocateTexture(); >+ // Generate data. >+ var width = 2; >+ var height = 2; >+ var data = new Float32Array(width * height * numberOfChannels); >+ for (var ii = 0; ii < data.length; ++ii) { >+ data[ii] = 10000; >+ } >+ gl.texImage2D(gl.TEXTURE_2D, 0, format, width, height, 0, format, gl.FLOAT, data); >+ if (expectFailure) { >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "floating-point texture allocation must be disallowed if OES_texture_float isn't enabled"); >+ return; >+ } else { >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "floating-point texture allocation should succeed if OES_texture_float is enabled"); >+ } >+ // Verify that the texture actually works for sampling and contains the expected data. >+ gl.uniform4fv(gl.getUniformLocation(testProgram, "subtractor"), subtractor); >+ wtu.clearAndDrawUnitQuad(gl); >+ checkRenderingResults(); >+ >+ // Check that linear fails. >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas(gl, [255, 0, 0, 255], "should be red"); >+} >+ >+function arrayToString(arr, size) { >+ var mySize; >+ if (!size) >+ mySize = arr.length; >+ else >+ mySize = size; >+ var out = "["; >+ for (var ii = 0; ii < mySize; ++ii) { >+ if (ii > 0) { >+ out += ", "; >+ } >+ out += arr[ii]; >+ } >+ return out + "]"; >+} >+ >+function runRenderTargetAndReadbackTest(testProgram, format, numberOfChannels, subtractor, texSubImageCover, requireRenderable) >+{ >+ var formatString = wtu.glEnumToString(gl, format); >+ debug(""); >+ debug("testing floating-point " + formatString + " render target" + (texSubImageCover > 0 ? " after calling texSubImage" : "")); >+ >+ var texture = allocateTexture(); >+ var width = 2; >+ var height = 2; >+ gl.texImage2D(gl.TEXTURE_2D, 0, format, width, height, 0, format, gl.FLOAT, null); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "floating-point texture allocation should succeed if OES_texture_float is enabled"); >+ >+ // Try to use this texture as a render target. >+ var fbo = gl.createFramebuffer(); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0); >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ // It is legal for a WebGL implementation exposing the OES_texture_float extension to >+ // support floating-point textures but not as attachments to framebuffer objects. >+ if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE) { >+ if (requireRenderable) >+ testFailed("floating-point " + formatString + " render target not supported"); >+ else >+ debug("floating-point " + formatString + " render target not supported -- this is legal"); >+ return; >+ } >+ >+ if (texSubImageCover > 0) { >+ // Ensure that replacing the whole texture or a part of it with texSubImage2D doesn't affect renderability >+ gl.bindTexture(gl.TEXTURE_2D, texture); >+ var data = new Float32Array(width * height * numberOfChannels * texSubImageCover); >+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height * texSubImageCover, format, gl.FLOAT, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "texSubImage2D should succeed if OES_texture_float is enabled"); >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE) { >+ testFailed("render target support changed after calling texSubImage2D"); >+ return; >+ } >+ } >+ >+ var renderProgram = >+ wtu.setupProgram(gl, >+ ["positionVertexShader", "floatingPointFragmentShader"], >+ ['vPosition'], >+ [0]); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "rendering to floating-point texture should succeed"); >+ >+ // Now sample from the floating-point texture and verify we got the correct values. >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ gl.bindTexture(gl.TEXTURE_2D, texture); >+ gl.useProgram(testProgram); >+ gl.uniform1i(gl.getUniformLocation(testProgram, "tex"), 0); >+ gl.uniform4fv(gl.getUniformLocation(testProgram, "subtractor"), subtractor); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "rendering from floating-point texture should succeed"); >+ checkRenderingResults(); >+ >+ // Finally, if the implementation supports floating-point readback, verify it. >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); >+ var implFormat = gl.getParameter(gl.IMPLEMENTATION_COLOR_READ_FORMAT); >+ var implType = gl.getParameter(gl.IMPLEMENTATION_COLOR_READ_TYPE); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "getParameter of IMPLEMENTATION_COLOR_READ_{FORMAT|TYPE} should succeed"); >+ if ((implFormat == gl.RGBA || implFormat == gl.RGB) && implType == gl.FLOAT) { >+ debug("Checking readback of floating-point values"); >+ var arraySize = (implFormat == gl.RGBA) ? 4 : 3 >+ var buf = new Float32Array(arraySize); >+ gl.readPixels(0, 0, 1, 1, implFormat, implType , buf); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "readPixels from floating-point renderbuffer should succeed"); >+ var ok = true; >+ var tolerance = 8.0; // TODO: factor this out from both this test and the subtractor shader above. >+ for (var ii = 0; ii < buf.length; ++ii) { >+ if (Math.abs(buf[ii] - subtractor[ii]) > tolerance) { >+ ok = false; >+ break; >+ } >+ } >+ if (ok) { >+ testPassed("readPixels of float-type data from floating-point renderbuffer succeeded"); >+ } else { >+ testFailed("readPixels of float-type data from floating-point renderbuffer failed: expected " >+ + arrayToString(subtractor, arraySize) + ", got " + arrayToString(buf)); >+ } >+ } >+} >+ >+function runUniqueObjectTest() >+{ >+ debug(""); >+ debug("Testing that getExtension() returns the same object each time"); >+ gl.getExtension("OES_texture_float").myProperty = 2; >+ webglHarnessCollectGarbage(); >+ shouldBe('gl.getExtension("OES_texture_float").myProperty', '2'); >+} >+ >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float-linear.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float-linear.html >new file mode 100644 >index 00000000000..b9d18f785a2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float-linear.html >@@ -0,0 +1,56 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/oes-texture-float-and-half-float-linear.js"></script> >+<script> >+"use strict"; >+function testPrologue(gl, extensionTypeName) { >+ var ext = null; >+ if (!(ext = gl.getExtension(extensionTypeName))) { >+ testPassed("No " + extensionTypeName + " support -- this is legal"); >+ return false; >+ } >+ // Required by the test harness. >+ gl.HALF_FLOAT_OES = ext.HALF_FLOAT_OES; >+ testPassed("Successfully enabled " + extensionTypeName + " extension"); >+ return true; >+} >+</script> >+</head> >+<body onload='generateTest("OES_texture_half_float", "OES_texture_half_float_linear", "HALF_FLOAT_OES", testPrologue)()'> >+<div id="description"></div> >+<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> >+<div id="console"></div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-canvas.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-canvas.html >new file mode 100644 >index 00000000000..4fac6b877f3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-canvas.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/tex-image-and-sub-image-utils.js"></script> >+<script src="../../js/tests/tex-image-and-sub-image-2d-with-canvas.js"></script> >+<script> >+"use strict"; >+function testPrologue(gl) { >+ var ext = null; >+ >+ if (!(ext = gl.getExtension("OES_texture_half_float"))) { >+ testPassed("No OES_texture_half_float support -- this is legal"); >+ return false; >+ } >+ >+ // Required by the test harness. >+ gl.HALF_FLOAT_OES = ext.HALF_FLOAT_OES; >+ >+ testPassed("Successfully enabled OES_texture_half_float extension"); >+ return true; >+} >+</script> >+</head> >+<body onload='generateTest("RGBA", "RGBA", "HALF_FLOAT_OES", testPrologue, "../../resources/")()'> >+<canvas id="example" width="32" height="32"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-image-data.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-image-data.html >new file mode 100644 >index 00000000000..1fca1daaa20 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-image-data.html >@@ -0,0 +1,61 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/tex-image-and-sub-image-utils.js"></script> >+<script src="../../js/tests/tex-image-and-sub-image-2d-with-image-data.js"></script> >+<script> >+"use strict"; >+function testPrologue(gl) { >+ var ext = null; >+ >+ if (!(ext = gl.getExtension("OES_texture_half_float"))) { >+ testPassed("No OES_texture_half_float support -- this is legal"); >+ return false; >+ } >+ >+ // Required by the test harness. >+ gl.HALF_FLOAT_OES = ext.HALF_FLOAT_OES; >+ >+ testPassed("Successfully enabled OES_texture_half_float extension"); >+ return true; >+} >+</script> >+</head> >+<body onload='generateTest("RGBA", "RGBA", "HALF_FLOAT_OES", testPrologue, "../../resources/")()'> >+<canvas id="texcanvas" width="2" height="2"></canvas> >+<canvas id="example" width="2" height="2"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-image.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-image.html >new file mode 100644 >index 00000000000..075130f38a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-image.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/tex-image-and-sub-image-utils.js"></script> >+<script src="../../js/tests/tex-image-and-sub-image-2d-with-image.js"></script> >+<script> >+"use strict"; >+function testPrologue(gl) { >+ var ext = null; >+ >+ if (!(ext = gl.getExtension("OES_texture_half_float"))) { >+ testPassed("No OES_texture_half_float support -- this is legal"); >+ return false; >+ } >+ >+ // Required by the test harness. >+ gl.HALF_FLOAT_OES = ext.HALF_FLOAT_OES; >+ >+ testPassed("Successfully enabled OES_texture_half_float extension"); >+ return true; >+} >+</script> >+</head> >+<body onload='generateTest("RGBA", "RGBA", "HALF_FLOAT_OES", testPrologue, "../../resources/")()'> >+<canvas id="example" width="32" height="32"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-video.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-video.html >new file mode 100644 >index 00000000000..ceaca294fe0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float-with-video.html >@@ -0,0 +1,65 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/tex-image-and-sub-image-utils.js"></script> >+<script src="../../js/tests/tex-image-and-sub-image-2d-with-video.js"></script> >+<script> >+"use strict"; >+function testPrologue(gl) { >+ var ext = null; >+ >+ if (!(ext = gl.getExtension("OES_texture_half_float"))) { >+ testPassed("No OES_texture_half_float support -- this is legal"); >+ return false; >+ } >+ >+ // Required by the test harness. >+ gl.HALF_FLOAT_OES = ext.HALF_FLOAT_OES; >+ >+ testPassed("Successfully enabled OES_texture_half_float extension"); >+ return true; >+} >+</script> >+</head> >+<body onload='generateTest("RGBA", "RGBA", "HALF_FLOAT_OES", testPrologue, "../../resources/")()'> >+<canvas id="example" width="32" height="32"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<video width="640" height="228" id="vid" controls> >+ <source src="../../resources/red-green.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' /> >+ <source src="../../resources/red-green.webmvp8.webm" type='video/webm; codecs="vp8, vorbis"' /> >+ <source src="../../resources/red-green.theora.ogv" type='video/ogg; codecs="theora, vorbis"' /> >+</video> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float.html >new file mode 100644 >index 00000000000..0b600281073 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float.html >@@ -0,0 +1,522 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL OES_texture_half_float Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> >+<canvas id="canvas2d" style="width: 50px; height: 50px;"> </canvas> >+<div id="console"></div> >+<script id="testFragmentShader" type="x-shader/x-fragment"> >+precision mediump float; >+uniform sampler2D tex; >+uniform vec4 subtractor; >+varying vec2 texCoord; >+void main() >+{ >+ vec4 color = texture2D(tex, texCoord); >+ if (abs(color.r - subtractor.r) + >+ abs(color.g - subtractor.g) + >+ abs(color.b - subtractor.b) + >+ abs(color.a - subtractor.a) < 8.0) { >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); >+ } else { >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ } >+} >+</script> >+<!-- Shaders for testing half-floating-point render targets --> >+<script id="floatingPointFragmentShader" type="x-shader/x-fragment"> >+void main() >+{ >+ gl_FragColor = vec4(10000.0, 10000.0, 10000.0, 10000.0); >+} >+</script> >+<script> >+"use strict" >+description("This test verifies the functionality of OES_texture_half_float with null/non-null ArrayBufferView"); >+ >+debug(""); >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var colorCanvas = document.getElementById("canvas2d"); >+colorCanvas.width = 2; >+colorCanvas.height = 2; >+var ctx = colorCanvas.getContext("2d"); >+ctx.fillStyle = "rgb(255,0,0)"; >+ctx.fillRect(0, 0, 2, 2); >+var gl = wtu.create3DContext(canvas); >+// This constant must be defined in order to run the texture creation test without the extension enabled. >+var halfFloatOESEnum = 0x8D61; >+var ext = null; >+ >+ >+if (!gl) { >+ testFailed("WebGL context does not exists"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ // Verify that allocation of texture fails if extension is not enabled >+ runTextureCreationTest(false); >+ ext = gl.getExtension("OES_texture_half_float") >+ if (!ext) { >+ testPassed("No OES_texture_half_float support. This is legal"); >+ } else { >+ testPassed("Successfully enabled OES_texture_half_float extension"); >+ >+ var program = wtu.setupTexturedQuad(gl); >+ >+ // Check if creation of texture succeed's with various formats and null ArrayBufferView >+ var formats = [ >+ { format: gl.RGBA, expected: [255, 0, 0, 255], }, >+ { format: gl.RGB, expected: [255, 0, 0, 255], }, >+ { format: gl.LUMINANCE, expected: [255, 255, 255, 255], }, >+ { format: gl.ALPHA, expected: [ 0, 0, 0, 255], }, >+ { format: gl.LUMINANCE_ALPHA, expected: [255, 255, 255, 255], }, >+ ]; >+ formats.forEach(function(f) { >+ runTextureCreationTest(true, f.format, null, f.expected); >+ }); >+ >+ // Texture creation should fail when passed with non-null, non-Uint16 ArrayBufferView >+ formats.forEach(function(f) { >+ var width = 2; >+ var height = 2; >+ var format = f.format; >+ >+ // Float32Array >+ var float32Data = new Float32Array(width * height * getNumberOfChannels(format)); >+ for (var ii = 0; ii < float32Data.length; ii++) { >+ float32Data[ii] = 1000; >+ } >+ runTextureCreationTest(true, format, float32Data, null); >+ >+ // Int16Array >+ var int16Data = new Int16Array(width * height * getNumberOfChannels(format)); >+ for (var ii = 0; ii < int16Data.length; ii++) { >+ int16Data[ii] = 1000; >+ } >+ runTextureCreationTest(true, format, int16Data, null); >+ }); >+ >+ // Test that Uint16 encoded half float values can be used as texture data. >+ >+ // First test that values in the 0-1 range can be written and read. >+ var halfFloatOneThird = 0x3555; // Half float 1/3 >+ var uint16Formats = [ >+ { format: gl.RGBA, expected: [85, 85, 85, 85], }, >+ { format: gl.RGB, expected: [85, 85, 85, 255], }, >+ { format: gl.LUMINANCE, expected: [85, 85, 85, 255], }, >+ { format: gl.ALPHA, expected: [ 0, 0, 0, 85], }, >+ { format: gl.LUMINANCE_ALPHA, expected: [85, 85, 85, 85], }, >+ ]; >+ >+ uint16Formats.forEach(function(f) { >+ var width = 2; >+ var height = 2; >+ var format = f.format; >+ >+ var uint16Data = new Uint16Array(width * height * getNumberOfChannels(format)); >+ for (var ii = 0; ii < uint16Data.length; ii++) { >+ uint16Data[ii] = halfFloatOneThird; >+ } >+ runTextureCreationTest(true, format, uint16Data, f.expected); >+ }); >+ >+ // Next check that values outside the 0-1 range can be written. >+ var halfFloatTenK = 0x70E2; // Half float 10000 >+ var uint16Formats2 = [ >+ { format: gl.RGBA, subtractor: [10000, 10000, 10000, 10000], requireRenderable: true}, >+ { format: gl.RGB, subtractor: [10000, 10000, 10000, 1], requireRenderable: false}, >+ ]; >+ >+ uint16Formats2.forEach(function(f) { >+ var width = 2; >+ var height = 2; >+ var format = f.format; >+ >+ var uint16Data = new Uint16Array(width * height * getNumberOfChannels(format)); >+ for (var ii = 0; ii < uint16Data.length; ii++) { >+ uint16Data[ii] = halfFloatTenK; >+ } >+ runRenderTest(format, f.subtractor, uint16Data, f.requireRenderable); >+ }); >+ >+ (function() { >+ debug(""); >+ var renderable = isRenderable(gl, ext); >+ var renderableExtName = "EXT_color_buffer_half_float"; >+ var supported = gl.getSupportedExtensions().includes(renderableExtName); >+ if (renderable && !supported) { >+ testFailed("RGBA/HALF_FLOAT_OES is color renderable but " + renderableExtName + " not exposed"); >+ } else if (supported && !renderable) { >+ testFailed(renderableExtName + " is exposed but RGBA/HALF_FLOAT_OES is not color renderable"); >+ } >+ if (supported) { >+ runRenderTest(gl.RGBA, [10000, 10000, 10000, 10000], null, true); >+ runRenderTest(gl.RGB, [10000, 10000, 10000, 1], null, false); >+ runFramebufferTest(); >+ } >+ })(); >+ >+ // Check of getExtension() returns same object >+ runUniqueObjectTest(); >+ } >+} >+ >+function isRenderable(gl, ext) { >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, ext.HALF_FLOAT_OES, null); >+ >+ var fb = gl.createFramebuffer(); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex, 0); >+ >+ var status = gl.checkFramebufferStatus(gl.FRAMEBUFFER); >+ gl.deleteFramebuffer(fb); >+ gl.deleteTexture(tex); >+ >+ return status == gl.FRAMEBUFFER_COMPLETE; >+} >+ >+function getNumberOfChannels(format) >+{ >+ if (format == gl.RGBA) >+ return 4; >+ else if (format == gl.RGB) >+ return 3; >+ else if (format == gl.LUMINANCE || format == gl.ALPHA) >+ return 1; >+ else if (format == gl.LUMINANCE_ALPHA) >+ return 2; >+} >+ >+function getFormatName(format) >+{ >+ if (format == gl.RGBA) >+ return "RGBA"; >+ else if (format == gl.RGB) >+ return "RGB"; >+ else if (format == gl.LUMINANCE) >+ return "LUMINANCE"; >+ else if (format == gl.ALPHA) >+ return "ALPHA"; >+ else if (format == gl.LUMINANCE_ALPHA) >+ return "LUMINANCE_ALPHA"; >+} >+ >+function getTypeName(type) { >+ if (type === gl.UNSIGNED_BYTE) >+ return "UNSIGNED_BYTE"; >+ else if (type === ext.HALF_FLOAT_OES) >+ return "HALF_FLOAT_OES"; >+ else if (type === gl.UNSIGNED_SHORT_4_4_4_4) >+ return "UNSIGNED_SHORT_4_4_4_4"; >+ else if (type === gl.UNSIGNED_SHORT_5_5_5_1) >+ return "UNSIGNED_SHORT_5_6_5"; >+ else if (type === gl.FLOAT) >+ return "FLOAT"; >+} >+ >+function allocateTexture() >+{ >+ var texture = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, texture); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "texture parameter setup should succeed"); >+ return texture; >+} >+ >+function runTextureCreationTest(extensionEnabled, opt_format, opt_data, opt_expected) >+{ >+ var format = opt_format || gl.RGBA; >+ var data = opt_data || null; >+ var expectSuccess = true; >+ >+ if (!extensionEnabled || !opt_expected) >+ expectSuccess = false; >+ debug("Testing texture creation with extension " + (extensionEnabled ? "enabled" : "disabled") + >+ ", format " + getFormatName(format) + ", and data " + (data ? "non-null" : "null") + >+ ". Expect " + (expectSuccess ? "Success" : "Failure")); >+ >+ var texture = allocateTexture(); >+ var width = 2; >+ var height = 2; >+ gl.texImage2D(gl.TEXTURE_2D, 0, format, width, height, 0, format, halfFloatOESEnum, data); >+ if(!extensionEnabled) { >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "Half floating point texture must be disallowed if OES_texture_half_float isn't enabled"); >+ return; >+ } else if (!opt_expected) { >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Half floating point texture allocation must be disallowed when ArrayBufferView is not-null and not-Uint16"); >+ return; >+ } else { >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Half floating point texture allocation should succeed if OES_texture_half_float is enabled"); >+ >+ if (!data) { >+ gl.texImage2D(gl.TEXTURE_2D, 0, format, format, halfFloatOESEnum, colorCanvas); >+ } >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas(gl, opt_expected); >+ // Check that linear fails. >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas(gl, [0, 0, 0, 255], "should be black"); >+ } >+ >+} >+ >+function checkRenderingResults() >+{ >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "should be green"); >+} >+ >+function runRenderTest(format, subtractor, data, requireRenderable) >+{ >+ var formatString = wtu.glEnumToString(gl, format); >+ >+ debug(""); >+ >+ if (!data) { >+ debug("Testing half floating point " + formatString + " render target"); >+ } else { >+ debug("Testing half floating point " + formatString + " from a Uint16Array"); >+ } >+ >+ var texture = allocateTexture(); >+ var width = 2; >+ var height = 2; >+ >+ gl.texImage2D(gl.TEXTURE_2D, 0, format, width, height, 0, format, ext.HALF_FLOAT_OES, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Half floating point texture allocation should succeed if OES_texture_half_float is enabled"); >+ >+ if (!data) { >+ // Try to use this texture as render target >+ var fbo = gl.createFramebuffer(); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0); >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ >+ // It is legal for a WebGL implementation exposing the OES_texture_half_float extension to >+ // support half floating point textures but not as attachments to framebuffer objects. >+ if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE) { >+ if (requireRenderable) { >+ testFailed(formatString + " render targets not supported."); >+ } else { >+ debug(formatString + " render targets not supported -- this is legal"); >+ } >+ return; >+ } >+ >+ var renderProgram = >+ wtu.setupProgram(gl, >+ [wtu.simpleVertexShader, "floatingPointFragmentShader"], >+ ['vPosition'], >+ [0]); >+ wtu.drawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Rendering to half floating point texture should succeed"); >+ } >+ >+ // Now sample from the half floating-point texture and verify we got the correct values. >+ var texturedShaders = [ >+ wtu.simpleTextureVertexShader, >+ "testFragmentShader" >+ ]; >+ var testProgram = >+ wtu.setupProgram(gl, >+ [wtu.simpleTextureVertexShader, "testFragmentShader"], >+ ['vPosition', 'texCoord0'], >+ [0, 1]); >+ var quadParameters = wtu.setupUnitQuad(gl, 0, 1); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ gl.bindTexture(gl.TEXTURE_2D, texture); >+ gl.useProgram(testProgram); >+ gl.uniform4fv(gl.getUniformLocation(testProgram, "subtractor"), subtractor); >+ wtu.drawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "rendering from half floating point texture should succeed"); >+ checkRenderingResults(); >+} >+ >+function runUniqueObjectTest() >+{ >+ debug(""); >+ debug("Testing that getExtension() returns the same object each time"); >+ ext = null; >+ gl.getExtension("OES_texture_half_float").myProperty = 2; >+ webglHarnessCollectGarbage(); >+ shouldBe('gl.getExtension("OES_texture_half_float").myProperty', '2'); >+} >+ >+// Make sure we can call readPixels with the passed in arrayBufferConstructor and that the color >+// channels are the ones we expect. If there is a mismatch between the glType and arrayBuffer type, >+// fail the test. >+function verifyReadPixelsColors(red, green, blue, alpha, alphaRGB, glFormat, glType, arrayBufferConstructor) { >+ var typeName = getTypeName(glType); >+ >+ debug(getFormatName(glFormat) + " framebuffer with " + typeName + " readback."); >+ >+ var arrayBuffer = new arrayBufferConstructor(4); >+ gl.readPixels(0, 0, 1, 1, gl.RGBA, glType, arrayBuffer); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "readPixels should return NO_ERROR when reading " + typeName + " data."); >+ >+ assertMsg(arrayBuffer[0] === red, "Red channel should be " + red + " for " + typeName + " readPixels. Received: " + arrayBuffer[0]); >+ assertMsg(arrayBuffer[1] === green, "Green channel should be " + green + " for " + typeName + " readPixels. Received: " + arrayBuffer[1]); >+ assertMsg(arrayBuffer[2] === blue, "Blue channel should be " + blue + " for " + typeName + " readPixels. Received: " + arrayBuffer[2]); >+ if (glFormat === gl.RGBA) { >+ assertMsg(arrayBuffer[3] === alpha, "Alpha channel should be " + alpha + " for " + typeName + " readPixels. Received: " + arrayBuffer[3]); >+ } else if (glFormat === gl.RGB) { >+ assertMsg(arrayBuffer[3] === alphaRGB, "Alpha channel should be " + alphaRGB + " for " + typeName + " readPixels. Received: " + arrayBuffer[3]); >+ } >+ >+ // Make sure any arrayBuffer types that are not equal to arrayBufferConstructor fail readPixels. >+ if (arrayBufferConstructor !== Uint8Array) { >+ arrayBuffer = new Uint8Array(4); >+ gl.readPixels(0, 0, 1, 1, gl.RGBA, glType, arrayBuffer); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "readPixels should return INVALID_OPERATION when reading mismatched types. " + Uint8Array.toString()); >+ } >+ if (arrayBufferConstructor !== Float32Array) { >+ arrayBuffer = new Float32Array(4); >+ gl.readPixels(0, 0, 1, 1, gl.RGBA, glType, arrayBuffer); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "readPixels should return INVALID_OPERATION when reading mismatched types. " + Float32Array.toString()); >+ } >+ if (arrayBufferConstructor !== Uint16Array) { >+ arrayBuffer = new Uint16Array(4); >+ gl.readPixels(0, 0, 1, 1, gl.RGBA, glType, arrayBuffer); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "readPixels should return INVALID_OPERATION when reading mismatched types. " + Uint16Array.toString()); >+ } >+} >+ >+// Verify that half float textures attached to frame buffers function correctly with regard to framebuffer >+// completness, IMPLEMENTATION_COLOR_READ_FORMAT/TYPE and readPixels >+function runFramebufferTest() { >+ debug(""); >+ debug("Framebuffer Tests"); >+ >+ var texture = allocateTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, texture); >+ >+ var fbo = gl.createFramebuffer(); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0); >+ >+ debug("Ensure non-color-renderable formats [LUMINANCE, LUMINANCE_ALPHA, ALPHA] fail."); >+ var arrayBufferFloatOutput = new Float32Array(4); // 4 color channels >+ [gl.LUMINANCE, gl.LUMINANCE_ALPHA, gl.ALPHA].forEach(function(badFormat) { >+ debug(getFormatName(badFormat) + " framebuffer"); >+ >+ gl.texImage2D(gl.TEXTURE_2D, 0, badFormat, 1, 1, 0, badFormat, ext.HALF_FLOAT_OES, null); >+ shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT"); >+ >+ shouldBeNull("gl.getParameter(gl.IMPLEMENTATION_COLOR_READ_FORMAT)"); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "IMPLEMENTATION_COLOR_READ_FORMAT should fail for incomplete framebuffers."); >+ >+ shouldBeNull("gl.getParameter(gl.IMPLEMENTATION_COLOR_READ_TYPE)"); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "IMPLEMENTATION_COLOR_READ_TYPE should fail for incomplete framebuffers."); >+ >+ gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.FLOAT, arrayBufferFloatOutput); >+ wtu.glErrorShouldBe(gl, gl.INVALID_FRAMEBUFFER_OPERATION , "readPixels should fail on incomplete framebuffers."); >+ debug(""); >+ }); >+ >+ debug("Ensure color renderable formats [RGBA, RGB] succeed."); >+ var arrayBufferHalfFloatInput = new Uint16Array(4); // 4 color channels >+ arrayBufferHalfFloatInput[0] = 0; // 0 in half float >+ arrayBufferHalfFloatInput[1] = 0x3400; // 0.25 in half float >+ arrayBufferHalfFloatInput[2] = 0x3800; // 0.50 in half float >+ arrayBufferHalfFloatInput[3] = 0x3A00; // 0.75 in half float >+ >+ [gl.RGBA, gl.RGB].forEach(function(goodFormat) { >+ debug(getFormatName(goodFormat) + " framebuffer tests"); >+ debug(""); >+ >+ gl.texImage2D(gl.TEXTURE_2D, 0, goodFormat, 1, 1, 0, goodFormat, ext.HALF_FLOAT_OES, arrayBufferHalfFloatInput); >+ if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) == gl.FRAMEBUFFER_COMPLETE) { >+ // Per the OES_color_buffer_half_float, RGBA/FLOAT should always succeed for readPixels >+ verifyReadPixelsColors( >+ 0.00, // red >+ 0.25, // green >+ 0.50, // blue >+ 0.75, // alpha >+ 1.0, // alphaRGB >+ goodFormat, >+ gl.FLOAT, >+ Float32Array); >+ >+ var implementationColorReadFormat = gl.getParameter(gl.IMPLEMENTATION_COLOR_READ_FORMAT); >+ assertMsg(implementationColorReadFormat === gl.RGBA || implementationColorReadFormat === gl.RGB, >+ "IMPLEMENTATION_COLOR_READ_FORMAT should be color renderable: RGBA or RGB. Received: " + getFormatName(implementationColorReadFormat)); >+ >+ var implementationColorReadType = gl.getParameter(gl.IMPLEMENTATION_COLOR_READ_TYPE); >+ >+ // There is nothing in the specifications that keeps the >+ // implementation color read format and type from being the >+ // same as the implicitly supported one. For this reason, keep >+ // gl.FLOAT as one of the valid options. >+ assertMsg(implementationColorReadType === gl.UNSIGNED_BYTE || >+ implementationColorReadType === gl.FLOAT || >+ implementationColorReadType === ext.HALF_FLOAT_OES || >+ implementationColorReadType === gl.UNSIGNED_SHORT_4_4_4_4 || >+ implementationColorReadType === gl.UNSIGNED_SHORT_5_5_5_1 || >+ implementationColorReadType === gl.UNSIGNED_SHORT_5_6_5, >+ "IMPLEMENTATION_COLOR_READ_TYPE must be one of UNSIGNED_BYTE, UNSIGNED_SHORT_4_4_4_4, UNSIGNED_SHORT_5_5_5_1, UNSIGNED_SHORT_5_6_5, FLOAT, or HALF_FLOAT_OES. " + >+ "Received: " + getTypeName(implementationColorReadType)); >+ >+ // Test the RGBA/HALF_FLOAT_OES combination >+ if (implementationColorReadFormat === gl.RGBA && implementationColorReadType === ext.HALF_FLOAT_OES) { >+ verifyReadPixelsColors( >+ 0, // red >+ 0x3400, // green >+ 0x3800, // blue >+ 0x3A00, // alpha >+ 0x3C00, // alphaRGB >+ goodFormat, >+ ext.HALF_FLOAT_OES, >+ Uint16Array); >+ } >+ } >+ debug(""); >+ }); >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-vertex-array-object-bufferData.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-vertex-array-object-bufferData.html >new file mode 100644 >index 00000000000..6616d006045 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-vertex-array-object-bufferData.html >@@ -0,0 +1,215 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL OES_vertex_array_object_bufferData Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<!-- comment in the script tag below to test through JS emualation of the extension. --> >+<!-- >+<script src="../../../demos/google/resources/OESVertexArrayObject.js"></script> >+--> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+attribute vec4 a_color; >+varying vec4 v_color; >+void main(void) { >+ gl_Position = a_position; >+ v_color = a_color; >+} >+</script> >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec4 v_color; >+void main(void) { >+ gl_FragColor = v_color; >+} >+</script> >+<script> >+"use strict"; >+description("This test verifies drawing results when using gl.bufferData with the OES_vertex_array_object extension."); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas); >+var ext = null; >+var vao = null; >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ // Setup emulated OESVertexArrayObject if it has been included. >+ if (window.setupVertexArrayObject) { >+ debug("using emuated OES_vertex_array_object"); >+ setupVertexArrayObject(gl); >+ } >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = gl.getExtension("OES_vertex_array_object"); >+ if (!ext) { >+ testPassed("No OES_vertex_array_object support -- this is legal"); >+ >+ } else { >+ testPassed("Successfully enabled OES_vertex_array_object extension"); >+ >+ runBufferDataTest(); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+ } >+} >+ >+/** >+ * The OES_vertex_array_object extension seems to work incorrectly on some handheld devices, >+ * namely the Nexus 5, and Nexus 7 (in 2014/01) when using bufferData before binding the VAO. >+ * The tested OS was Android KitKat 4.4.2, the effects were the same in all tested browsers >+ * (Chrome, Chrome Beta, Firefox, Firefox Beta), so it is likely a driver bug. >+ * These devices have the similar Adreno 320 and Adreno 330 GPUs respectively. >+ * >+ * The issuse resulted from this sequence of actions in a requestAnimationFrame loop: >+ * 1. upload some vertex buffers with gl.bufferData (eg. colors) >+ * 2. bind the VAO >+ * 3. clear the canvas >+ * 4. draw (some triangles) to the canvas >+ * 5. unbind the VAO >+ * >+ * This caused the drawn triangles to be drawn with black (0) for most of the frames, with some >+ * rare frames presenting the correct render results. Interestingly on both devices exactly every >+ * 64th frame passed (starting with the very first one), the others failed. >+ * (Because of this, we test multiple frames.) >+ * When positions were uploaded, seemingly nothing was drawn, that's likely because the >+ * position buffer was also all 0s. >+ * >+ * The issue did not occur: >+ * - if step 1. and 2. were swapped >+ * - or if step5 was ommited (probably because that makes step 2 a no-op since the VAO is bound) >+ */ >+function runBufferDataTest() { >+ debug("Testing draws with bufferData"); >+ >+ canvas.width = 50; canvas.height = 50; >+ gl.viewport(0, 0, canvas.width, canvas.height); >+ >+ var testColor = [0, 255, 0, 255]; >+ var clearColor = [255, 0, 0, 255]; >+ >+ // Where the issue occures, this is the sequence of success/failure every time: >+ // result: success fail fail fail fail ... success fail fail ... >+ // currentTestCount: 0 1 2 3 4 ... 64 65 66 ... >+ // So with just 1 test it passes, but 2 tests are enough. Here we use 3. >+ var numberOfTests = 3; >+ var currentTestCount = 0; >+ >+ var positionLoc = 0; >+ var colorLoc = 1; >+ var gridRes = 1; >+ >+ var program = wtu.setupSimpleVertexColorProgram(gl, positionLoc, colorLoc); >+ >+ var vao0 = ext.createVertexArrayOES(); >+ ext.bindVertexArrayOES(vao0); >+ >+ var buffers = wtu.setupIndexedQuadWithOptions(gl, >+ { gridRes: gridRes, >+ positionLocation: positionLoc >+ }); >+ >+ var colorTypedArray = createColorTypedArray(); >+ >+ var colorBuffer = gl.createBuffer(gl.ARRAY_BUFFER); >+ gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer); >+ gl.enableVertexAttribArray(colorLoc); >+ gl.vertexAttribPointer(colorLoc, 4, gl.FLOAT, false, 0, 0); >+ >+ ext.bindVertexArrayOES(null); >+ >+ testDrawing(); >+ >+ function testDrawing() { >+ // this order works fine: >+ // ext.bindVertexArrayOES(vao0); >+ // uploadColor(); >+ >+ // this order doesn't: >+ uploadColor(); >+ ext.bindVertexArrayOES(vao0); >+ >+ wtu.clearAndDrawIndexedQuad(gl, 1, clearColor); >+ >+ ext.bindVertexArrayOES(null); >+ >+ //debug("<span>"+currentTestCount+"</span"); >+ wtu.checkCanvas(gl, testColor, "should be green") >+ >+ if (++currentTestCount < numberOfTests) { >+ testDrawing(); >+ // wtu.requestAnimFrame(testDrawing); >+ } else { >+ // clean up >+ ext.deleteVertexArrayOES(vao0); >+ } >+ } >+ >+ function uploadColor() { >+ gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, colorTypedArray, gl.STREAM_DRAW); >+ } >+ >+ function createColorTypedArray() { >+ var colors = []; >+ var pOffset = 0; >+ for (var yy = 0; yy <= gridRes; ++yy) { >+ for (var xx = 0; xx <= gridRes; ++xx) { >+ colors[pOffset + 0] = testColor[0]; >+ colors[pOffset + 1] = testColor[1]; >+ colors[pOffset + 2] = testColor[2]; >+ colors[pOffset + 3] = testColor[3]; >+ pOffset += 4; >+ } >+ } >+ return new Float32Array(colors); >+ } >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-vertex-array-object.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-vertex-array-object.html >new file mode 100644 >index 00000000000..29fa08b45bd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-vertex-array-object.html >@@ -0,0 +1,746 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL OES_vertex_array_object Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<!-- comment in the script tag below to test through JS emulation of the extension. --> >+<!-- >+<script src="../../../demos/google/resources/OESVertexArrayObject.js"></script> >+--> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+attribute vec4 a_color; >+varying vec4 v_color; >+void main(void) { >+ gl_Position = a_position; >+ v_color = a_color; >+} >+</script> >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec4 v_color; >+void main(void) { >+ gl_FragColor = v_color; >+} >+</script> >+<script> >+"use strict"; >+description("This test verifies the functionality of the OES_vertex_array_object extension, if it is available."); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas); >+var ext = null; >+var vao = null; >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ // Setup emulated OESVertexArrayObject if it has been included. >+ if (window.setupVertexArrayObject) { >+ debug("using emulated OES_vertex_array_object"); >+ setupVertexArrayObject(gl); >+ } >+ >+ // Run tests with extension disabled >+ runBindingTestDisabled(); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = gl.getExtension("OES_vertex_array_object"); >+ if (!ext) { >+ testPassed("No OES_vertex_array_object support -- this is legal"); >+ >+ runSupportedTest(false); >+ } else { >+ testPassed("Successfully enabled OES_vertex_array_object extension"); >+ >+ runSupportedTest(true); >+ runBindingTestEnabled(); >+ runObjectTest(); >+ runAttributeTests(); >+ runAttributeValueTests(); >+ runDrawTests(); >+ runUnboundDeleteTests(); >+ runBoundDeleteTests(); >+ runArrayBufferBindTests(); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+ } >+} >+ >+function runSupportedTest(extensionEnabled) { >+ var supported = gl.getSupportedExtensions(); >+ if (supported.indexOf("OES_vertex_array_object") >= 0) { >+ if (extensionEnabled) { >+ testPassed("OES_vertex_array_object listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("OES_vertex_array_object listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("OES_vertex_array_object not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("OES_vertex_array_object not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+function runBindingTestDisabled() { >+ debug(""); >+ debug("Testing binding enum with extension disabled"); >+ >+ // Use the constant directly as we don't have the extension >+ var VERTEX_ARRAY_BINDING_OES = 0x85B5; >+ >+ gl.getParameter(VERTEX_ARRAY_BINDING_OES); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "VERTEX_ARRAY_BINDING_OES should not be queryable if extension is disabled"); >+} >+ >+function runBindingTestEnabled() { >+ debug(""); >+ debug("Testing binding enum with extension enabled"); >+ >+ shouldBe("ext.VERTEX_ARRAY_BINDING_OES", "0x85B5"); >+ >+ gl.getParameter(ext.VERTEX_ARRAY_BINDING_OES); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "VERTEX_ARRAY_BINDING_OES query should succeed if extension is enabled"); >+ >+ // Default value is null >+ if (gl.getParameter(ext.VERTEX_ARRAY_BINDING_OES) === null) { >+ testPassed("Default value of VERTEX_ARRAY_BINDING_OES is null"); >+ } else { >+ testFailed("Default value of VERTEX_ARRAY_BINDING_OES is not null"); >+ } >+ >+ debug(""); >+ debug("Testing binding a VAO"); >+ var vao0 = ext.createVertexArrayOES(); >+ var vao1 = ext.createVertexArrayOES(); >+ shouldBeNull("gl.getParameter(ext.VERTEX_ARRAY_BINDING_OES)"); >+ ext.bindVertexArrayOES(vao0); >+ if (gl.getParameter(ext.VERTEX_ARRAY_BINDING_OES) == vao0) { >+ testPassed("gl.getParameter(ext.VERTEX_ARRAY_BINDING_OES) is expected VAO"); >+ } else { >+ testFailed("gl.getParameter(ext.VERTEX_ARRAY_BINDING_OES) is not expected VAO") >+ } >+ ext.bindVertexArrayOES(vao1); >+ if (gl.getParameter(ext.VERTEX_ARRAY_BINDING_OES) == vao1) { >+ testPassed("gl.getParameter(ext.VERTEX_ARRAY_BINDING_OES) is expected VAO"); >+ } else { >+ testFailed("gl.getParameter(ext.VERTEX_ARRAY_BINDING_OES) is not expected VAO") >+ } >+ ext.deleteVertexArrayOES(vao1); >+ shouldBeNull("gl.getParameter(ext.VERTEX_ARRAY_BINDING_OES)"); >+ ext.bindVertexArrayOES(vao1); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "binding a deleted vertex array object"); >+ ext.bindVertexArrayOES(null); >+ shouldBeNull("gl.getParameter(ext.VERTEX_ARRAY_BINDING_OES)"); >+ ext.deleteVertexArrayOES(vao1); >+} >+ >+function runObjectTest() { >+ debug(""); >+ debug("Testing object creation"); >+ >+ vao = ext.createVertexArrayOES(); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "createVertexArrayOES should not set an error"); >+ shouldBeNonNull("vao"); >+ >+ // Expect false if never bound >+ shouldBeFalse("ext.isVertexArrayOES(vao)"); >+ ext.bindVertexArrayOES(vao); >+ shouldBeTrue("ext.isVertexArrayOES(vao)"); >+ ext.bindVertexArrayOES(null); >+ shouldBeTrue("ext.isVertexArrayOES(vao)"); >+ >+ shouldBeFalse("ext.isVertexArrayOES(null)"); >+ >+ ext.deleteVertexArrayOES(vao); >+ vao = null; >+} >+ >+function runAttributeTests() { >+ debug(""); >+ debug("Testing attributes work across bindings"); >+ >+ var states = []; >+ >+ var attrCount = gl.getParameter(gl.MAX_VERTEX_ATTRIBS); >+ for (var n = 0; n < attrCount; n++) { >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); >+ >+ var state = {}; >+ states.push(state); >+ >+ var vao = state.vao = ext.createVertexArrayOES(); >+ ext.bindVertexArrayOES(vao); >+ >+ var enableArray = (n % 2 == 0); >+ if (enableArray) { >+ gl.enableVertexAttribArray(n); >+ } else { >+ gl.disableVertexAttribArray(n); >+ } >+ >+ if (enableArray) { >+ var buffer = state.buffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buffer); >+ gl.bufferData(gl.ARRAY_BUFFER, 1024, gl.STATIC_DRAW); >+ >+ gl.vertexAttribPointer(n, 1 + n % 4, gl.FLOAT, true, n * 4, n * 4); >+ } >+ >+ if (enableArray) { >+ var elbuffer = state.elbuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, elbuffer); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, 1024, gl.STATIC_DRAW); >+ } >+ >+ ext.bindVertexArrayOES(null); >+ } >+ >+ var anyMismatch = false; >+ for (var n = 0; n < attrCount; n++) { >+ var state = states[n]; >+ >+ ext.bindVertexArrayOES(state.vao); >+ >+ var shouldBeEnabled = (n % 2 == 0); >+ var isEnabled = gl.getVertexAttrib(n, gl.VERTEX_ATTRIB_ARRAY_ENABLED); >+ if (shouldBeEnabled != isEnabled) { >+ testFailed("VERTEX_ATTRIB_ARRAY_ENABLED not preserved"); >+ anyMismatch = true; >+ } >+ >+ var buffer = gl.getVertexAttrib(n, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING); >+ if (shouldBeEnabled) { >+ if (buffer == state.buffer) { >+ // Matched >+ if ((gl.getVertexAttrib(n, gl.VERTEX_ATTRIB_ARRAY_SIZE) == 1 + n % 4) && >+ (gl.getVertexAttrib(n, gl.VERTEX_ATTRIB_ARRAY_TYPE) == gl.FLOAT) && >+ (gl.getVertexAttrib(n, gl.VERTEX_ATTRIB_ARRAY_NORMALIZED) == true) && >+ (gl.getVertexAttrib(n, gl.VERTEX_ATTRIB_ARRAY_STRIDE) == n * 4) && >+ (gl.getVertexAttribOffset(n, gl.VERTEX_ATTRIB_ARRAY_POINTER) == n * 4)) { >+ // Matched >+ } else { >+ testFailed("VERTEX_ATTRIB_ARRAY_* not preserved"); >+ anyMismatch = true; >+ } >+ } else { >+ testFailed("VERTEX_ATTRIB_ARRAY_BUFFER_BINDING not preserved"); >+ anyMismatch = true; >+ } >+ } else { >+ // GL_CURRENT_VERTEX_ATTRIB is not preserved >+ if (buffer) { >+ testFailed("VERTEX_ATTRIB_ARRAY_BUFFER_BINDING not preserved"); >+ anyMismatch = true; >+ } >+ } >+ >+ var elbuffer = gl.getParameter(gl.ELEMENT_ARRAY_BUFFER_BINDING); >+ if (shouldBeEnabled) { >+ if (elbuffer == state.elbuffer) { >+ // Matched >+ } else { >+ testFailed("ELEMENT_ARRAY_BUFFER_BINDING not preserved"); >+ anyMismatch = true; >+ } >+ } else { >+ if (elbuffer == null) { >+ // Matched >+ } else { >+ testFailed("ELEMENT_ARRAY_BUFFER_BINDING not preserved"); >+ anyMismatch = true; >+ } >+ } >+ } >+ ext.bindVertexArrayOES(null); >+ if (!anyMismatch) { >+ testPassed("All attributes preserved across bindings"); >+ } >+ >+ for (var n = 0; n < attrCount; n++) { >+ var state = states[n]; >+ ext.deleteVertexArrayOES(state.vao); >+ } >+} >+ >+function runAttributeValueTests() { >+ debug(""); >+ debug("Testing that attribute values are not attached to bindings"); >+ >+ var v; >+ var vao0 = ext.createVertexArrayOES(); >+ var anyFailed = false; >+ >+ ext.bindVertexArrayOES(null); >+ gl.vertexAttrib4f(0, 0, 1, 2, 3); >+ >+ v = gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB); >+ if (!(v[0] == 0 && v[1] == 1 && v[2] == 2 && v[3] == 3)) { >+ testFailed("Vertex attrib value not round-tripped?"); >+ anyFailed = true; >+ } >+ >+ ext.bindVertexArrayOES(vao0); >+ >+ v = gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB); >+ if (!(v[0] == 0 && v[1] == 1 && v[2] == 2 && v[3] == 3)) { >+ testFailed("Vertex attrib value reset across bindings"); >+ anyFailed = true; >+ } >+ >+ gl.vertexAttrib4f(0, 4, 5, 6, 7); >+ ext.bindVertexArrayOES(null); >+ >+ v = gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB); >+ if (!(v[0] == 4 && v[1] == 5 && v[2] == 6 && v[3] == 7)) { >+ testFailed("Vertex attrib value bound to buffer"); >+ anyFailed = true; >+ } >+ >+ if (!anyFailed) { >+ testPassed("Vertex attribute values are not attached to bindings") >+ } >+ >+ ext.bindVertexArrayOES(null); >+ ext.deleteVertexArrayOES(vao0); >+} >+ >+function runDrawTests() { >+ debug(""); >+ debug("Testing draws with various VAO bindings"); >+ >+ canvas.width = 50; canvas.height = 50; >+ gl.viewport(0, 0, canvas.width, canvas.height); >+ >+ var vao0 = ext.createVertexArrayOES(); >+ var vao1 = ext.createVertexArrayOES(); >+ var vao2 = ext.createVertexArrayOES(); >+ >+ var positionLocation = 0; >+ var colorLocation = 1; >+ >+ var program = wtu.setupSimpleVertexColorProgram(gl, positionLocation, colorLocation); >+ >+ function setupQuad(s, colorsInArray) { >+ var vertexObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ >+ 1.0 * s, 1.0 * s, 0.0, >+ -1.0 * s, 1.0 * s, 0.0, >+ -1.0 * s, -1.0 * s, 0.0, >+ 1.0 * s, 1.0 * s, 0.0, >+ -1.0 * s, -1.0 * s, 0.0, >+ 1.0 * s, -1.0 * s, 0.0]), gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(positionLocation); >+ gl.vertexAttribPointer(positionLocation, 3, gl.FLOAT, false, 0, 0); >+ >+ // Test switching between VAOs that have different number of enabled arrays >+ if (colorsInArray) { >+ var vertexObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ >+ 0.0, 0.0, 0.0, 1.0, >+ 0.0, 0.0, 0.0, 1.0, >+ 0.0, 0.0, 0.0, 1.0, >+ 0.0, 0.0, 0.0, 1.0, >+ 0.0, 0.0, 0.0, 1.0, >+ 0.0, 0.0, 0.0, 1.0]), gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(colorLocation); >+ gl.vertexAttribPointer(colorLocation, 4, gl.FLOAT, false, 0, 0); >+ } else { >+ gl.disableVertexAttribArray(colorLocation); >+ } >+ }; >+ >+ function verifyDiagonalPixels(s, expectedInside, drawDescription) { >+ // Tests pixels along a diagonal running from the center of the canvas to the (0, 0) corner. >+ // Values on the points list indicate relative position along this diagonal. >+ var points = [0.0, 0.2, 0.4, 0.6, 0.8, 1.0]; >+ for (var n = 0; n < points.length; n++) { >+ var expected = points[n] <= s ? expectedInside : 255; >+ var x = Math.round((1 - points[n]) * canvas.width / 2); >+ var y = Math.round((1 - points[n]) * canvas.height / 2); >+ wtu.checkCanvasRect(gl, x, y, 1, 1, [expected, expected, expected, 255], >+ "Drawing " + drawDescription + " should pass", 2); >+ } >+ }; >+ function verifyDraw(drawDescription, s, colorsInArray) { >+ wtu.clearAndDrawUnitQuad(gl); >+ var expectedInside = colorsInArray ? 0 : 128; >+ verifyDiagonalPixels(s, expectedInside, drawDescription); >+ }; >+ >+ // Setup all bindings >+ setupQuad(1, true); >+ ext.bindVertexArrayOES(vao0); >+ setupQuad(0.5, true); >+ ext.bindVertexArrayOES(vao1); >+ setupQuad(0.25, true); >+ ext.bindVertexArrayOES(vao2); >+ setupQuad(0.75, false); >+ >+ gl.vertexAttrib4f(colorLocation, 0.5, 0.5, 0.5, 1); >+ >+ // Verify drawing >+ ext.bindVertexArrayOES(null); >+ verifyDraw("with the default VAO", 1, true); >+ ext.bindVertexArrayOES(vao0); >+ verifyDraw("with VAO #0", 0.5, true); >+ ext.bindVertexArrayOES(vao1); >+ verifyDraw("with VAO #1", 0.25, true); >+ ext.bindVertexArrayOES(vao2); >+ verifyDraw("with VAO that has the color array disabled", 0.75, false); >+ >+ // Verify bound VAO after delete >+ ext.bindVertexArrayOES(vao1); >+ ext.deleteVertexArrayOES(vao0); >+ verifyDraw("after deleting another VAO", 0.25, true); >+ ext.deleteVertexArrayOES(vao1); >+ verifyDraw("after deleting the VAO that was bound", 1, true); >+ >+ // Disable global vertex attrib array >+ gl.disableVertexAttribArray(positionLocation); >+ gl.disableVertexAttribArray(colorLocation); >+ >+ // Check that constant values are treated correctly as not being part of VAO state. >+ var positionLoc = 0; >+ var colorLoc = 1; >+ var gridRes = 1; >+ wtu.setupIndexedQuad(gl, gridRes, positionLoc); >+ // Set the vertex color to red. >+ gl.vertexAttrib4f(colorLoc, 1, 0, 0, 1); >+ >+ var vao0 = ext.createVertexArrayOES(); >+ ext.bindVertexArrayOES(vao0); >+ var program = wtu.setupSimpleVertexColorProgram(gl, positionLoc, colorLoc); >+ wtu.setupIndexedQuad(gl, gridRes, positionLoc); >+ // Set the vertex color to green. >+ gl.vertexAttrib4f(colorLoc, 0, 1, 0, 1); >+ wtu.clearAndDrawIndexedQuad(gl, gridRes); >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "should be green"); >+ ext.deleteVertexArrayOES(vao0); >+ wtu.clearAndDrawIndexedQuad(gl, gridRes); >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "should be green"); >+} >+ >+function runUnboundDeleteTests() { >+ debug(""); >+ debug("Testing using buffers that are deleted when attached to unbound VAOs"); >+ >+ var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["a_position", "a_color"]); >+ gl.useProgram(program); >+ >+ var positionBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer); >+ gl.bufferData( >+ gl.ARRAY_BUFFER, >+ new Float32Array([ >+ 1.0, 1.0, >+ -1.0, 1.0, >+ -1.0, -1.0, >+ 1.0, -1.0]), >+ gl.STATIC_DRAW); >+ >+ var colors = [ >+ [255, 0, 0, 255], >+ [ 0, 255, 0, 255], >+ [ 0, 0, 255, 255], >+ [ 0, 255, 255, 255] >+ ]; >+ var colorBuffers = []; >+ var elementBuffers = []; >+ var vaos = []; >+ for (var ii = 0; ii < colors.length; ++ii) { >+ var vao = ext.createVertexArrayOES(); >+ vaos.push(vao); >+ ext.bindVertexArrayOES(vao); >+ // Set the position buffer >+ gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer); >+ gl.enableVertexAttribArray(0); >+ gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0); >+ >+ var elementBuffer = gl.createBuffer(); >+ elementBuffers.push(elementBuffer); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, elementBuffer); >+ gl.bufferData( >+ gl.ELEMENT_ARRAY_BUFFER, >+ new Uint8Array([0, 1, 2, 0, 2, 3]), >+ gl.STATIC_DRAW); >+ >+ // Setup the color attrib >+ var color = colors[ii]; >+ if (ii < 3) { >+ var colorBuffer = gl.createBuffer(); >+ colorBuffers.push(colorBuffer); >+ gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, new Uint8Array( >+ [ color[0], color[1], color[2], color[3], >+ color[0], color[1], color[2], color[3], >+ color[0], color[1], color[2], color[3], >+ color[0], color[1], color[2], color[3] >+ ]), gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(1); >+ gl.vertexAttribPointer(1, 4, gl.UNSIGNED_BYTE, true, 0, 0); >+ } else { >+ gl.vertexAttrib4f(1, color[0] / 255, color[1] / 255, color[2] / 255, color[3] / 255); >+ } >+ } >+ >+ // delete the color buffers AND the position buffer. >+ ext.bindVertexArrayOES(null); >+ for (var ii = 0; ii < colorBuffers.length; ++ii) { >+ gl.deleteBuffer(colorBuffers[ii]); >+ gl.deleteBuffer(elementBuffers[ii]); >+ ext.bindVertexArrayOES(vaos[ii]); >+ var boundBuffer = gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING); >+ // The buffers should still be valid at this point, since it was attached to the VAO >+ if(boundBuffer != colorBuffers[ii]) { >+ testFailed("buffer removed even though it is still attached to a VAO"); >+ } >+ } >+ >+ ext.bindVertexArrayOES(null); >+ gl.deleteBuffer(positionBuffer); >+ >+ // Render with the deleted buffers. As they are referenced by VAOs they >+ // must still be around. >+ for (var ii = 0; ii < colors.length; ++ii) { >+ var color = colors[ii]; >+ ext.bindVertexArrayOES(vaos[ii]); >+ gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_BYTE, 0); >+ wtu.checkCanvas(gl, color, "should be " + color); >+ } >+ >+ // Clean up. >+ for (var ii = 0; ii < colorBuffers.length; ++ii) { >+ ext.deleteVertexArrayOES(vaos[ii]); >+ } >+ >+ for (var ii = 0; ii < colorBuffers.length; ++ii) { >+ // The buffers should no longer be valid now that the VAOs are deleted >+ if(gl.isBuffer(colorBuffers[ii])) { >+ testFailed("buffer not properly cleaned up after VAO deletion"); >+ } >+ } >+} >+ >+function runBoundDeleteTests() { >+ debug("Testing using buffers that are deleted when attached to bound VAOs"); >+ >+ var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["a_position", "a_color"]); >+ gl.useProgram(program); >+ >+ var positionBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer); >+ gl.bufferData( >+ gl.ARRAY_BUFFER, >+ new Float32Array([ >+ 1.0, 1.0, >+ -1.0, 1.0, >+ -1.0, -1.0, >+ 1.0, -1.0]), >+ gl.STATIC_DRAW); >+ >+ // Setup the color attrib >+ var colorBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, new Uint8Array( >+ [ 255, 0, 0, 255, >+ 0, 255, 0, 255, >+ 0, 0, 255, 255, >+ 0, 255, 255, 255 >+ ]), gl.STATIC_DRAW); >+ >+ var vaos = []; >+ var elementBuffers = []; >+ for (var ii = 0; ii < 4; ++ii) { >+ var vao = ext.createVertexArrayOES(); >+ vaos.push(vao); >+ ext.bindVertexArrayOES(vao); >+ >+ gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer); >+ gl.enableVertexAttribArray(0); >+ gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0); >+ >+ var elementBuffer = gl.createBuffer(); >+ elementBuffers.push(elementBuffer); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, elementBuffer); >+ gl.bufferData( >+ gl.ELEMENT_ARRAY_BUFFER, >+ new Uint8Array([0, 1, 2, 0, 2, 3]), >+ gl.STATIC_DRAW); >+ >+ gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer); >+ gl.enableVertexAttribArray(1); >+ gl.vertexAttribPointer(1, 4, gl.UNSIGNED_BYTE, true, 0, 0); >+ } >+ >+ // delete the color buffers AND the position buffer, that are bound to the current VAO >+ for (var ii = 0; ii < vaos.length; ++ii) { >+ ext.bindVertexArrayOES(vaos[ii]); >+ >+ gl.deleteBuffer(colorBuffer); >+ gl.deleteBuffer(positionBuffer); >+ >+ // After the first iteration, deleteBuffer will be a no-op, and will not unbind its matching >+ // bind points on the now-bound VAO like it did on the first iteration. >+ var expectRetained = (ii != 0); >+ var shouldBeStr = (expectRetained ? "retained" : "cleared"); >+ >+ var boundPositionBuffer = gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING); >+ if (expectRetained != (boundPositionBuffer == positionBuffer)) { >+ testFailed("Position attrib stored buffer should be " + shouldBeStr + "."); >+ } >+ >+ var boundColorBuffer = gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING); >+ if (expectRetained != (boundColorBuffer == colorBuffer)) { >+ testFailed("Color attrib stored buffer should be " + shouldBeStr + "."); >+ } >+ >+ // If retained, everything should still work. If cleared, drawing should now fail. >+ gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_BYTE, 0); >+ var expectedError = (expectRetained ? gl.NO_ERROR : gl.INVALID_OPERATION); >+ wtu.glErrorShouldBe(gl, expectedError, >+ "Draw call should " + (expectRetained ? "not " : "") + "fail."); >+ >+ if (!gl.isBuffer(positionBuffer)) { >+ testFailed("References from unbound VAOs keep Position buffer alive."); >+ } >+ if (!gl.isBuffer(colorBuffer)) { >+ testFailed("References from unbound VAOs keep Color buffer alive"); >+ } >+ } >+} >+ >+function runArrayBufferBindTests() { >+ debug(""); >+ debug("Testing that buffer bindings on VAOs don't affect default VAO ARRAY_BUFFER binding."); >+ >+ ext.bindVertexArrayOES(null); >+ >+ var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["a_color", "a_position"]); >+ gl.useProgram(program); >+ >+ // create shared element buffer >+ var elementBuffer = gl.createBuffer(); >+ // bind to default >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, elementBuffer); >+ gl.bufferData( >+ gl.ELEMENT_ARRAY_BUFFER, >+ new Uint8Array([0, 1, 2, 0, 2, 3]), >+ gl.STATIC_DRAW); >+ >+ // first create the buffers for no VAO draw. >+ var nonVAOColorBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, nonVAOColorBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, new Uint8Array( >+ [ 0, 255, 0, 255, >+ 0, 255, 0, 255, >+ 0, 255, 0, 255, >+ 0, 255, 0, 255, >+ ]), gl.STATIC_DRAW); >+ >+ // shared position buffer. >+ var positionBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer); >+ gl.bufferData( >+ gl.ARRAY_BUFFER, >+ new Float32Array([ >+ 1.0, 1.0, >+ -1.0, 1.0, >+ -1.0, -1.0, >+ 1.0, -1.0]), >+ gl.STATIC_DRAW); >+ >+ // attach position buffer to default >+ gl.enableVertexAttribArray(1); >+ gl.vertexAttribPointer(1, 2, gl.FLOAT, false, 0, 0); >+ >+ // now create VAO >+ var vao = ext.createVertexArrayOES(); >+ ext.bindVertexArrayOES(vao); >+ >+ // attach the position buffer VAO >+ gl.enableVertexAttribArray(1); >+ gl.vertexAttribPointer(1, 2, gl.FLOAT, false, 0, 0); >+ >+ var vaoColorBuffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vaoColorBuffer); >+ gl.bufferData(gl.ARRAY_BUFFER, new Uint8Array( >+ [ 255, 0, 0, 255, >+ 255, 0, 0, 255, >+ 255, 0, 0, 255, >+ 255, 0, 0, 255, >+ ]), gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(0); >+ gl.vertexAttribPointer(0, 4, gl.UNSIGNED_BYTE, true, 0, 0); >+ >+ // now set the buffer back to the nonVAOColorBuffer >+ gl.bindBuffer(gl.ARRAY_BUFFER, nonVAOColorBuffer); >+ >+ // bind to VAO >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, elementBuffer); >+ gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_BYTE, 0); >+ wtu.checkCanvas(gl, [255, 0, 0, 255], "should be red"); >+ >+ // unbind VAO >+ ext.bindVertexArrayOES(null); >+ >+ // At this point the nonVAOColorBuffer should be still be bound. >+ // If the WebGL impl is emulating VAOs it must make sure >+ // it correctly restores this binding. >+ gl.enableVertexAttribArray(0); >+ gl.vertexAttribPointer(0, 4, gl.UNSIGNED_BYTE, true, 0, 0); >+ gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_BYTE, 0); >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "should be green"); >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-astc.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-astc.html >new file mode 100644 >index 00000000000..ccad0a6dd01 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-astc.html >@@ -0,0 +1,2078 @@ >+<!-- >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<title>WebGL WEBGL_compressed_texture_astc Conformance Tests</title> >+<style> >+img { >+ border: 1px solid black; >+ margin-right: 1em; >+} >+.testimages { >+} >+ >+.testimages br { >+ clear: both; >+} >+ >+.testimages > div { >+ float: left; >+ margin: 1em; >+} >+</style> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" width="8" height="8" style="width: 8px; height: 8px;"></canvas> >+<div id="console"></div> >+<script> >+"use strict"; >+description("This test verifies the functionality of the WEBGL_compressed_texture_astc extension, if it is available."); >+ >+debug(""); >+ >+// Compressed textures generated with ARM's ASTC encoder >+// https://github.com/ARM-software/astc-encoder >+ >+// The data below is printed directly from the astc file, >+// and the header has been left for clarity reasons. >+ >+// LDR encoded with the following command line: >+// 'astcenc -c source.png result.astc {blockSize} -medium' >+ >+// The image used for LDR compression can be found >+// at sdk/tests/resources/red-green-hard.png >+ >+var astc_4x4_argb_ldr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0x4, 0x4, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x42, 0x2, 0x1, 0x2, 0x2, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x42, 0x2, 0x1, 0x2, 0x2, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, >+ 0x42, 0x2, 0x1, 0x2, 0x2, 0x0, 0x0, 0x0, 0xff, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x42, 0x2, 0x1, 0x2, 0x2, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x42, 0x2, 0x1, 0x2, 0x2, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0xff, 0x0, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x42, 0x2, 0x1, 0x2, 0x2, 0x0, 0x0, 0x0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, >+]); >+var astc_5x4_argb_ldr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0x5, 0x4, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0xc1, 0x2, 0x1, 0x2, 0x1, 0x0, 0x0, 0x80, 0x48, 0x22, 0x89, 0x24, 0x92, 0x48, 0x22, 0x9, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xc1, 0x2, 0x1, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x20, 0x89, 0x24, 0x92, 0x48, 0x22, 0x89, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xc1, 0x2, 0x1, 0x2, 0x1, 0x0, 0x0, 0x80, 0x48, 0x22, 0x89, 0x24, 0x0, 0x40, 0x0, 0x80, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xc1, 0x2, 0x1, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x89, 0x24, 0x92, 0x48, 0x22, 0x89, >+]); >+var astc_5x5_argb_ldr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0x5, 0x5, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0xf3, 0x0, 0x81, 0xff, 0x7, 0x0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xf3, 0x0, 0x7f, 0x0, 0xf8, 0x1, 0xe0, 0xff, 0xf1, 0xff, 0xf8, 0x7f, 0x0, 0x0, 0x0, 0x0, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, >+]); >+var astc_6x5_argb_ldr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0x6, 0x5, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x63, 0x1, 0x81, 0x10, 0x0, 0x0, 0x48, 0x49, 0x29, 0x29, 0x25, 0xa5, 0xa4, 0x94, 0x94, 0x12, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x63, 0x1, 0x81, 0x10, 0x0, 0x0, 0x48, 0x0, 0x28, 0x0, 0x24, 0x0, 0xa4, 0x94, 0x94, 0x92, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x63, 0x1, 0x81, 0x10, 0x0, 0x0, 0x0, 0x48, 0x1, 0x28, 0x1, 0xa4, 0x0, 0x94, 0x0, 0x92, >+]); >+var astc_6x6_argb_ldr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0x6, 0x6, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x4, 0x1, 0x1, 0xfe, 0xff, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff, 0xff, 0xff, 0x7f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x4, 0x1, 0x1, 0xfe, 0xff, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff, 0xc3, 0x30, 0xfc, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x4, 0x1, 0x1, 0xfe, 0xff, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xe3, 0xf8, 0xff, 0xff, >+]); >+var astc_8x5_argb_ldr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0x8, 0x5, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x66, 0x0, 0xc1, 0xff, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x66, 0x0, 0xc1, 0xff, 0x0, 0x0, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, >+ 0x66, 0x0, 0xc1, 0xff, 0x0, 0x0, 0xff, 0xf, 0xff, 0xf, 0xff, 0xf, 0xff, 0xff, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x66, 0x0, 0x3f, 0x0, 0x1f, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, >+]); >+var astc_8x6_argb_ldr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0x8, 0x6, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x54, 0x1, 0x81, 0x20, 0x0, 0x0, 0x70, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x54, 0x1, 0x81, 0x20, 0x0, 0x0, 0x70, 0x7f, 0x7f, 0xf8, 0x7f, 0x56, 0x3f, 0x72, 0x7f, 0x7f, >+ 0x54, 0x1, 0x81, 0x20, 0x0, 0x0, 0x70, 0x7f, 0x7f, 0x7f, 0x3f, 0x72, 0x78, 0x7f, 0x70, 0x7f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x54, 0x1, 0x81, 0x20, 0x0, 0x0, 0x50, 0x7f, 0x72, 0xfe, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, >+]); >+var astc_8x8_argb_ldr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0x8, 0x8, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x44, 0x5, 0x1, 0x2, 0x2, 0x0, 0x0, 0x0, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, >+ 0x44, 0x5, 0x1, 0x2, 0x2, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, >+ 0x44, 0x5, 0x1, 0x2, 0x2, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, >+ 0x44, 0x5, 0x1, 0x2, 0x2, 0x0, 0x0, 0x0, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x3f, >+]); >+var astc_10x5_argb_ldr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0xa, 0x5, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x65, 0x1, 0x1, 0xfe, 0xff, 0x1, 0x0, 0x0, 0x0, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x65, 0x1, 0x1, 0xfe, 0xff, 0x1, 0x0, 0x0, 0x0, 0x0, 0xfc, 0xf0, 0xc3, 0xff, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x65, 0x1, 0xff, 0x1, 0x0, 0xfe, 0x1, 0x0, 0x0, 0xc0, 0x7, 0x1f, 0x7c, 0xf0, 0xc1, 0x7, >+]); >+var astc_10x6_argb_ldr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0xa, 0x6, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0xa4, 0x1, 0x1, 0xfe, 0xff, 0x1, 0x0, 0x0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xa4, 0x1, 0x1, 0xfe, 0xff, 0x1, 0x0, 0x0, 0xf0, 0xff, 0xff, 0xf0, 0xc3, 0xf, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xa4, 0x1, 0x1, 0xfe, 0xff, 0x1, 0x0, 0x0, 0x0, 0x3e, 0xf8, 0xe0, 0xff, 0xff, 0xff, 0xff, >+]); >+var astc_10x8_argb_ldr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0xa, 0x8, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x65, 0x9, 0x69, 0x35, 0x0, 0x8, 0x10, 0x2, 0x0, 0x0, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x7f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x6, 0x11, 0x69, 0x2d, 0x80, 0x40, 0x2, 0x80, 0x4, 0x0, 0x8, 0x0, 0xff, 0xf, 0xf0, 0xff, >+ 0x44, 0x5, 0x1, 0x2, 0x2, 0x0, 0x0, 0x0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, >+]); >+var astc_10x10_argb_ldr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0xa, 0xa, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0xa4, 0xc9, 0xc, 0x3, 0x22, 0x0, 0x8, 0x40, 0x8, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x7f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x45, 0x89, 0x7, 0x35, 0x0, 0x40, 0x10, 0x0, 0x20, 0x0, 0x0, 0x1f, 0x7c, 0xf0, 0xc1, 0xff, >+]); >+var astc_12x10_argb_ldr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0xc, 0xa, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x64, 0x8, 0x11, 0x3, 0x22, 0x0, 0x8, 0x40, 0x38, 0xfc, 0xc3, 0xff, 0xff, 0xff, 0xff, 0x7f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xe5, 0x10, 0x4a, 0x4d, 0x46, 0x7f, 0x0, 0xc0, 0xf, 0x40, 0xf8, 0x1, 0x39, 0xf1, 0x7, 0x0, >+]); >+var astc_12x12_argb_ldr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0xc, 0xc, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x64, 0xa8, 0x21, 0x3, 0x22, 0x0, 0x8, 0x40, 0x38, 0xfc, 0xc3, 0xff, 0xff, 0xff, 0xff, 0x7f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x84, 0xd8, 0xe9, 0x2e, 0x0, 0x0, 0x1, 0x0, 0x80, 0xc0, 0x80, 0x28, 0x2a, 0xab, 0x2a, 0xff, >+]); >+ >+// HDR encoded with the following command line: >+// 'astcenc -c source.hdr result.astc {blockSize} -medium' >+ >+// The image used for HDR compression can be found >+// at sdk/tests/resources/red-green-hard.hdr >+ >+var astc_4x4_argb_hdr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0x4, 0x4, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x42, 0x2, 0x1, 0x82, 0x82, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x42, 0x2, 0x81, 0x3, 0x82, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, >+ 0x42, 0x2, 0x81, 0x3, 0x82, 0x0, 0x0, 0x0, 0xff, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x42, 0x2, 0x83, 0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, >+ 0x42, 0x2, 0x83, 0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x42, 0x2, 0x1, 0x82, 0x82, 0x0, 0x0, 0x0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, >+]); >+var astc_5x4_argb_hdr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0x5, 0x4, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0xc1, 0x2, 0x1, 0x42, 0x21, 0x0, 0x0, 0x80, 0x48, 0x22, 0x89, 0x24, 0x92, 0x48, 0x22, 0x9, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xc1, 0x2, 0x1, 0x42, 0x21, 0x0, 0x0, 0x0, 0x0, 0x20, 0x89, 0x24, 0x92, 0x48, 0x22, 0x89, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xc1, 0x2, 0x1, 0x42, 0x21, 0x0, 0x0, 0x80, 0x48, 0x22, 0x89, 0x24, 0x0, 0x40, 0x0, 0x80, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xc1, 0x2, 0x1, 0x42, 0x21, 0x0, 0x0, 0x0, 0x0, 0x0, 0x89, 0x24, 0x92, 0x48, 0x22, 0x89, >+]); >+var astc_5x5_argb_hdr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0x5, 0x5, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0xf3, 0x0, 0x81, 0xff, 0x7, 0x0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xf3, 0x0, 0x81, 0xff, 0x7, 0x0, 0x0, 0x0, 0xe, 0x0, 0x7, 0x80, 0xff, 0xff, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, >+]); >+var astc_6x5_argb_hdr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0x6, 0x5, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x63, 0x1, 0x81, 0x10, 0x0, 0x0, 0x48, 0x49, 0x29, 0x29, 0x25, 0xa5, 0xa4, 0x94, 0x94, 0x12, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x63, 0x1, 0x81, 0x10, 0x0, 0x0, 0x48, 0x0, 0x28, 0x0, 0x24, 0x0, 0xa4, 0x94, 0x94, 0x92, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x63, 0x1, 0x81, 0x10, 0x0, 0x0, 0x0, 0x48, 0x1, 0x28, 0x1, 0xa4, 0x0, 0x94, 0x0, 0x92, >+]); >+var astc_6x6_argb_hdr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0x6, 0x6, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x4, 0x1, 0x1, 0xfc, 0xfd, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff, 0xff, 0xff, 0x7f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x4, 0x1, 0x1, 0xfc, 0xfd, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff, 0xc3, 0x30, 0xfc, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x4, 0x1, 0x1, 0xfc, 0xfd, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xe3, 0xf8, 0xff, 0xff, >+]); >+var astc_8x5_argb_hdr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0x8, 0x5, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x66, 0x0, 0xc1, 0xff, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x66, 0x0, 0xc1, 0xff, 0x0, 0x0, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, >+ 0x66, 0x0, 0xc1, 0xff, 0x0, 0x0, 0xff, 0xf, 0xff, 0xf, 0xff, 0xf, 0xff, 0xff, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x66, 0x0, 0xc1, 0xff, 0x0, 0x0, 0xfc, 0xff, 0xfc, 0xff, 0xfc, 0xff, 0xfc, 0xff, 0xfc, 0xff, >+]); >+var astc_8x6_argb_hdr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0x8, 0x6, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x54, 0x1, 0x81, 0x20, 0x0, 0x0, 0x70, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x54, 0x1, 0x81, 0x20, 0x0, 0x0, 0x70, 0x7f, 0x7f, 0xf8, 0x7f, 0x56, 0x3f, 0x72, 0x7f, 0x7f, >+ 0x54, 0x1, 0x81, 0x20, 0x0, 0x0, 0x70, 0x7f, 0x7f, 0x7f, 0x3f, 0x72, 0x78, 0x7f, 0x70, 0x7f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x54, 0x1, 0x81, 0x20, 0x0, 0x0, 0x50, 0x7f, 0x72, 0xfe, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, >+]); >+var astc_8x8_argb_hdr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0x8, 0x8, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x44, 0x5, 0x81, 0x3, 0x82, 0x0, 0x0, 0x0, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, >+ 0x44, 0x5, 0x81, 0x3, 0x82, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, >+ 0x44, 0x5, 0x1, 0x82, 0x82, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, >+ 0x44, 0x5, 0x1, 0x82, 0x82, 0x0, 0x0, 0x0, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x3f, >+]); >+var astc_10x5_argb_hdr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0xa, 0x5, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x65, 0x1, 0x1, 0xfc, 0xfd, 0x1, 0x0, 0x0, 0x0, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x65, 0x1, 0x1, 0xfc, 0xfd, 0x1, 0x0, 0x0, 0x0, 0x0, 0xfc, 0xf0, 0xc3, 0xff, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x65, 0x1, 0x1, 0xfc, 0xfd, 0x1, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xe0, 0x83, 0xf, 0x3e, 0xf8, >+]); >+var astc_10x6_argb_hdr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0xa, 0x6, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0xa4, 0x1, 0x1, 0xfc, 0xfd, 0x1, 0x0, 0x0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xa4, 0x1, 0x1, 0xfc, 0xfd, 0x1, 0x0, 0x0, 0xf0, 0xff, 0xff, 0xf0, 0xc3, 0xf, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xa4, 0x1, 0x1, 0xfc, 0xfd, 0x1, 0x0, 0x0, 0x0, 0x3e, 0xf8, 0xe0, 0xff, 0xff, 0xff, 0xff, >+]); >+var astc_10x8_argb_hdr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0xa, 0x8, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x65, 0x9, 0x69, 0x35, 0x0, 0x8, 0x10, 0x2, 0x0, 0x0, 0xfc, 0xe0, 0x3, 0x0, 0x0, 0x0, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x15, 0x11, 0x69, 0x25, 0x0, 0x84, 0x0, 0x10, 0x0, 0x2, 0x40, 0x88, 0x3f, 0x0, 0x3f, 0x0, >+ 0x44, 0x5, 0x1, 0x2, 0x2, 0x0, 0x0, 0x0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, >+]); >+var astc_10x10_argb_hdr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0xa, 0xa, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0xa4, 0xc9, 0xc, 0x3, 0x22, 0x0, 0x8, 0x40, 0x8, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x7f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x45, 0x89, 0x7, 0x35, 0x0, 0x40, 0x0, 0x82, 0x0, 0x0, 0x0, 0xe0, 0x83, 0xf, 0x3e, 0x0, >+]); >+var astc_12x10_argb_hdr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0xc, 0xa, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x64, 0x8, 0x11, 0x3, 0x22, 0x0, 0x8, 0x40, 0x38, 0xfc, 0xc3, 0xff, 0xff, 0xff, 0xff, 0x7f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x44, 0x10, 0x4a, 0x49, 0x46, 0xf, 0x1c, 0x3f, 0x0, 0x28, 0xff, 0x1, 0xc0, 0x3f, 0xc, 0x0, >+]); >+var astc_12x12_argb_hdr = new Uint8Array([ >+ //0x13, 0xab, 0xa1, 0x5c, 0xc, 0xc, 0x1, 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, HEADER >+ 0x64, 0xa8, 0x21, 0x3, 0x22, 0x0, 0x8, 0x40, 0x38, 0xfc, 0xc3, 0xff, 0xff, 0xff, 0xff, 0x7f, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, >+ 0x4, 0xd8, 0xe9, 0x2e, 0x0, 0x8, 0x1, 0x40, 0x80, 0xc0, 0x81, 0x28, 0x2a, 0x0, 0x0, 0x0, >+]); >+ >+// Decoded ASTC textures generated with ARM's ASTC encoder >+// https://github.com/ARM-software/astc-encoder >+ >+// As the original image is quite simple to compress, >+// several decoded images share the same data >+ >+// LDR decoded with the following command line: >+// 'astcenc -d source.astc result.tga' >+var decoded_4x4To10x6_argb_ldr = new Uint8Array([ >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+]); >+var decoded_10x8_argb_ldr = new Uint8Array([ >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xdf, 0x20, 0x0, 0xff, 0x20, 0xdf, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+]); >+var decoded_10x10_argb_ldr = new Uint8Array([ >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x20, 0xdf, 0x0, 0xff, 0x20, 0xdf, 0x0, 0xff, >+ 0x20, 0xdf, 0x0, 0xff, 0x20, 0xdf, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0x8f, 0x70, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+]); >+var decoded_12x10_argb_ldr = new Uint8Array([ >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xdf, 0x20, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0x70, 0x8f, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+]); >+var decoded_12x12_argb_ldr = new Uint8Array([ >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x10, 0xef, 0x0, 0xff, 0x10, 0xef, 0x0, 0xff, >+ 0x10, 0xef, 0x0, 0xff, 0x10, 0xef, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x70, 0x8f, 0x0, 0xff, 0x70, 0x8f, 0x0, 0xff, >+ 0x70, 0x8f, 0x0, 0xff, 0x70, 0x8f, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xcf, 0x30, 0x0, 0xff, 0xcf, 0x30, 0x0, 0xff, >+ 0xcf, 0x30, 0x0, 0xff, 0xcf, 0x30, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xbf, 0x40, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0x60, 0x9f, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+]); >+ >+// HDR decoded with the following command line: >+// 'astcenc -d source.astc result.tga' >+ >+var decoded_4x4_argb_hdr = new Uint8Array([ >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfd, 0x0, 0xff, 0x0, 0xfd, 0x0, 0xff, >+ 0x0, 0xfd, 0x0, 0xff, 0x0, 0xfd, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0x0, 0xfe, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+]); >+var decoded_5x4_argb_hdr = new Uint8Array([ >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0x0, 0xfe, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+]); >+var decoded_5x5_argb_hdr = new Uint8Array([ >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+]); >+var decoded_6x5_argb_hdr = new Uint8Array([ >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+]); >+var decoded_6x6_argb_hdr = new Uint8Array([ >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0x0, 0xfe, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+]); >+var decoded_8x5_argb_hdr = new Uint8Array([ >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+]); >+var decoded_8x6_argb_hdr = new Uint8Array([ >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+]); >+var decoded_8x8_argb_hdr = new Uint8Array([ >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfd, 0x0, 0xff, 0x0, 0xfd, 0x0, 0xff, >+ 0x0, 0xfd, 0x0, 0xff, 0x0, 0xfd, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0x0, 0xfd, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+]); >+ >+var decoded_10x5To10x6_argb_hdr = new Uint8Array([ >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0x0, 0xfe, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0x0, 0xfe, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+]); >+ >+var decoded_10x8_argb_hdr = new Uint8Array([ >+ 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xdf, 0x20, 0x0, 0xff, 0x20, 0xdf, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+]); >+var decoded_10x10_argb_hdr = new Uint8Array([ >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x20, 0xdf, 0x0, 0xff, 0x20, 0xdf, 0x0, 0xff, >+ 0x20, 0xdf, 0x0, 0xff, 0x20, 0xdf, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0x8f, 0x70, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+]); >+var decoded_12x10_argb_hdr = new Uint8Array([ >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xdf, 0x20, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0x70, 0x8f, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+]); >+var decoded_12x12_argb_hdr = new Uint8Array([ >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0x0, 0xfe, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x10, 0xef, 0x0, 0xff, 0x10, 0xef, 0x0, 0xff, >+ 0x10, 0xef, 0x0, 0xff, 0x10, 0xef, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0x70, 0x8f, 0x0, 0xff, 0x70, 0x8f, 0x0, 0xff, >+ 0x70, 0x8f, 0x0, 0xff, 0x70, 0x8f, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xcf, 0x30, 0x0, 0xff, 0xcf, 0x30, 0x0, 0xff, >+ 0xcf, 0x30, 0x0, 0xff, 0xcf, 0x30, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0xbf, 0x40, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0x60, 0x9f, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+ 0x0, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, >+ 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0xff, >+]); >+ >+var wtu = WebGLTestUtils; >+var contextVersion = wtu.getDefault3DContextVersion(); >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas, {antialias: false}); >+var program = wtu.setupTexturedQuad(gl); >+var extFlag = "WEBGL_compressed_texture_astc"; >+var ext = null; >+var vao = null; >+var validFormats = { >+ >+ COMPRESSED_RGBA_ASTC_4x4_KHR : 0x93B0, >+ COMPRESSED_RGBA_ASTC_5x4_KHR : 0x93B1, >+ COMPRESSED_RGBA_ASTC_5x5_KHR : 0x93B2, >+ COMPRESSED_RGBA_ASTC_6x5_KHR : 0x93B3, >+ COMPRESSED_RGBA_ASTC_6x6_KHR : 0x93B4, >+ COMPRESSED_RGBA_ASTC_8x5_KHR : 0x93B5, >+ COMPRESSED_RGBA_ASTC_8x6_KHR : 0x93B6, >+ COMPRESSED_RGBA_ASTC_8x8_KHR : 0x93B7, >+ COMPRESSED_RGBA_ASTC_10x5_KHR : 0x93B8, >+ COMPRESSED_RGBA_ASTC_10x6_KHR : 0x93B9, >+ COMPRESSED_RGBA_ASTC_10x8_KHR : 0x93BA, >+ COMPRESSED_RGBA_ASTC_10x10_KHR : 0x93BB, >+ COMPRESSED_RGBA_ASTC_12x10_KHR : 0x93BC, >+ COMPRESSED_RGBA_ASTC_12x12_KHR : 0x93BD, >+ COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR : 0x93D0, >+ COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR : 0x93D1, >+ COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR : 0x93D2, >+ COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR : 0x93D3, >+ COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR : 0x93D4, >+ COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR : 0x93D5, >+ COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR : 0x93D6, >+ COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR : 0x93D7, >+ COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR : 0x93D8, >+ COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR : 0x93D9, >+ COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR : 0x93DA, >+ COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR : 0x93DB, >+ COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR : 0x93DC, >+ COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR : 0x93DD >+ >+}; >+var name; >+var supportedFormats; >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ // Run tests with extension disabled >+ runTestDisabled(); >+ debug(""); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = wtu.getExtensionWithKnownPrefixes(gl, extFlag); >+ if (!ext) { >+ testPassed("No WEBGL_compressed_texture_astc support -- this is legal"); >+ runSupportedTest(false); >+ } else { >+ testPassed("Successfully enabled WEBGL_compressed_texture_astc extension"); >+ >+ debug(""); >+ runSupportedTest(true); >+ runTestExtension(); >+ } >+} >+ >+function runSupportedTest(extensionEnabled) { >+ var name = wtu.getSupportedExtensionWithKnownPrefixes(gl, extFlag); >+ if (name !== undefined) { >+ if (extensionEnabled) { >+ testPassed("WEBGL_compressed_texture_astc listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("WEBGL_compressed_texture_astc listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("WEBGL_compressed_texture_astc not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("WEBGL_compressed_texture_astc not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+ >+function runTestDisabled() { >+ debug("Testing binding enum with extension disabled"); >+ >+ supportedFormats = gl.getParameter(gl.COMPRESSED_TEXTURE_FORMATS); >+ shouldBe("supportedFormats", "[]"); >+} >+ >+function runTestExtension() { >+ debug(""); >+ debug("Testing " + extFlag); >+ >+ supportedFormats = gl.getParameter(gl.COMPRESSED_TEXTURE_FORMATS); >+ // There should be exactly 28 formats for both WebGL 1.0 and WebGL 2.0. >+ shouldBe("supportedFormats.length", "28"); >+ >+ console.log(wtu); >+ >+ // check that all 28 formats exist >+ testFormatsExist(supportedFormats); >+ // check that all format enums exist. >+ testCompressionFormatsValidity(); >+ // check that the specified restrictions fails with >+ // an INVALID_VALUE error when not respected >+ testASTCFormatsRestrictions(); >+ // Tests ASTC texture with every format >+ testLDRTextures(); >+ testHDRTextures(); >+} >+ >+function testFormatsExist(supportedFormats) { >+ debug(""); >+ debug("Testing every supported formats exist"); >+ >+ var failed; >+ for (var name in validFormats) { >+ var format = validFormats[name]; >+ failed = true; >+ for (var ii = 0; ii < supportedFormats.length; ++ii) { >+ if (format == supportedFormats[ii]) { >+ testPassed("supported format " + formatToString(format) + " exists"); >+ failed = false; >+ break; >+ } >+ } >+ if (failed) { >+ testFailed("supported format " + formatToString(format) + " does not exist"); >+ } >+ } >+} >+ >+function testCompressionFormatsValidity() { >+ debug(""); >+ debug("Testing every supported formats is valid"); >+ >+ for (name in validFormats) { >+ var expected = "0x" + validFormats[name].toString(16); >+ var actual = "ext['" + name + "']"; >+ shouldBe(actual, expected); >+ } >+} >+ >+function testASTCFormatsRestrictions() { >+ debug(""); >+ debug("Testing format restrictions on buffer size"); >+ >+ var data = new Uint8Array(17); >+ >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ for (var formatId in validFormats) { >+ var format = validFormats[formatId]; >+ var expectedSize = expectedByteLength(16, 16, format, data.length); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, 16, 16, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, >+ formatToString(format) + " expected size: " + expectedSize); >+ } >+} >+ >+function testLDRTextures() { >+ debug(""); >+ debug("Testing every LDR texture format compression"); >+ >+ var data = []; >+ var formats = []; >+ var raws = []; >+ >+ data.push(astc_4x4_argb_ldr, astc_5x4_argb_ldr, astc_5x5_argb_ldr, >+ astc_6x5_argb_ldr, astc_6x6_argb_ldr, astc_8x5_argb_ldr, >+ astc_8x6_argb_ldr, astc_8x8_argb_ldr, astc_10x5_argb_ldr, >+ astc_10x6_argb_ldr, astc_10x8_argb_ldr, astc_10x10_argb_ldr, >+ astc_12x10_argb_ldr, astc_12x12_argb_ldr); >+ >+ formats.push(ext.COMPRESSED_RGBA_ASTC_4x4_KHR, ext.COMPRESSED_RGBA_ASTC_5x4_KHR, >+ ext.COMPRESSED_RGBA_ASTC_5x5_KHR, ext.COMPRESSED_RGBA_ASTC_6x5_KHR, >+ ext.COMPRESSED_RGBA_ASTC_6x6_KHR, ext.COMPRESSED_RGBA_ASTC_8x5_KHR, >+ ext.COMPRESSED_RGBA_ASTC_8x6_KHR, ext.COMPRESSED_RGBA_ASTC_8x8_KHR, >+ ext.COMPRESSED_RGBA_ASTC_10x5_KHR, ext.COMPRESSED_RGBA_ASTC_10x6_KHR, >+ ext.COMPRESSED_RGBA_ASTC_10x8_KHR, ext.COMPRESSED_RGBA_ASTC_10x10_KHR, >+ ext.COMPRESSED_RGBA_ASTC_12x10_KHR, ext.COMPRESSED_RGBA_ASTC_12x12_KHR); >+ >+ // adds decoded image to use in the compare function >+ // certain block size share the same decoded data >+ // due to the fact that the test image is quite simple >+ for (var i = 0; i < 10; ++i) >+ raws.push(decoded_4x4To10x6_argb_ldr); >+ raws.push(decoded_10x8_argb_ldr, decoded_10x10_argb_ldr, decoded_12x10_argb_ldr, decoded_12x12_argb_ldr); >+ >+ testASTCTextures(buildTests(data, formats, raws, 'LDR')); >+} >+ >+function testHDRTextures() { >+ debug(""); >+ debug("Testing every HDR texture format compression"); >+ >+ >+ var data = []; >+ var formats = []; >+ var raws = []; >+ >+ data.push(astc_4x4_argb_hdr, astc_5x4_argb_hdr, astc_5x5_argb_hdr, >+ astc_6x5_argb_hdr, astc_6x6_argb_hdr, astc_8x5_argb_hdr, >+ astc_8x6_argb_hdr, astc_8x8_argb_hdr, astc_10x5_argb_hdr, >+ astc_10x6_argb_hdr, astc_10x8_argb_hdr, astc_10x10_argb_hdr, >+ astc_12x10_argb_hdr, astc_12x12_argb_hdr); >+ >+ formats.push(ext.COMPRESSED_RGBA_ASTC_4x4_KHR, ext.COMPRESSED_RGBA_ASTC_5x4_KHR, >+ ext.COMPRESSED_RGBA_ASTC_5x5_KHR, ext.COMPRESSED_RGBA_ASTC_6x5_KHR, >+ ext.COMPRESSED_RGBA_ASTC_6x6_KHR, ext.COMPRESSED_RGBA_ASTC_8x5_KHR, >+ ext.COMPRESSED_RGBA_ASTC_8x6_KHR, ext.COMPRESSED_RGBA_ASTC_8x8_KHR, >+ ext.COMPRESSED_RGBA_ASTC_10x5_KHR, ext.COMPRESSED_RGBA_ASTC_10x6_KHR, >+ ext.COMPRESSED_RGBA_ASTC_10x8_KHR, ext.COMPRESSED_RGBA_ASTC_10x10_KHR, >+ ext.COMPRESSED_RGBA_ASTC_12x10_KHR, ext.COMPRESSED_RGBA_ASTC_12x12_KHR); >+ >+ // adds decoded image to use in the compare function >+ // certain block size share the same decoded data >+ // due to the fact that the test image is quite simple >+ raws.push(decoded_4x4_argb_hdr, decoded_5x4_argb_hdr, decoded_5x5_argb_hdr, decoded_6x5_argb_hdr, >+ decoded_6x6_argb_hdr, decoded_8x5_argb_hdr, decoded_8x6_argb_hdr, decoded_8x8_argb_hdr, >+ decoded_10x5To10x6_argb_hdr, decoded_10x5To10x6_argb_hdr, decoded_10x8_argb_hdr, >+ decoded_10x10_argb_hdr, decoded_12x10_argb_hdr, decoded_12x12_argb_hdr); >+ >+ testASTCTextures(buildTests(data, formats, raws, 'HDR')); >+} >+ >+function testASTCTextures(tests) { >+ debug("<hr/>"); >+ for (var i = 0; i < tests.length; ++i) { >+ testASTCTexture(tests[i], false); >+ if (contextVersion >= 2) { >+ debug("<br/>"); >+ testASTCTexture(tests[i], true); >+ } >+ } >+} >+ >+function testASTCTexture(test, useTexStorage) { >+ var data = test.data; >+ var width = test.width; >+ var height = test.height; >+ var format = test.format; >+ var raw = test.raw; >+ >+ canvas.width = width; >+ canvas.height = height; >+ gl.viewport(0, 0, width, height); >+ debug(""); >+ debug("testing " + formatToString(format) + " " + width + "x" + height + " (" + test.mode + ")" + >+ (useTexStorage ? " via texStorage2D" : " via compressedTexImage2D")); >+ debug(""); >+ >+ // Texture upload >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+ if (useTexStorage) { >+ gl.texStorage2D(gl.TEXTURE_2D, 1, format, width, height); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "allocating compressed texture via texStorage2D"); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawing unit quad"); >+ var clearColor = [0, 0, 0, 0]; >+ wtu.checkCanvas(gl, clearColor, "texture should be initialized to black"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "uploading compressed texture data via compressedTexSubImage2D"); >+ } else { >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "uploading compressed texture"); >+ } >+ >+ wtu.clearAndDrawUnitQuad(gl); >+ >+ // Check that the decoded image is consistent with NEAREST filtering >+ compareRect(width, height, test.channels, width, height, raw, data, format, undefined, "NEAREST"); >+ >+ // Check that the decoded image is consistent with LINEAR filtering >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ wtu.clearAndDrawUnitQuad(gl); >+ compareRect(width, height, test.channels, width, height, raw, data, format, undefined, "LINEAR"); >+ >+ debug(""); >+ // Mipmaps handling >+ gl.generateMipmap(gl.TEXTURE_2D); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "trying to generate mipmaps from compressed texture"); >+ >+ if (!useTexStorage) { >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height, 1, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "non 0 border"); >+ } >+ >+ debug(""); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "compressedTexSubImage2D allowed for reloading of complete textures"); >+} >+ >+function compareRect( >+ actualWidth, actualHeight, actualChannels, >+ dataWidth, dataHeight, expectedData, >+ testData, testFormat, tolerance, filteringMode) { >+ >+ if(typeof(tolerance) == 'undefined') { tolerance = 5; } >+ var actual = new Uint8Array(actualWidth * actualHeight * 4); >+ gl.readPixels(0, 0, actualWidth, actualHeight, gl.RGBA, gl.UNSIGNED_BYTE, actual); >+ flipImage(actual, actualWidth, actualHeight); >+ >+ var div = document.createElement("div"); >+ div.className = "testimages"; >+ insertImg(div, "expected", makeImage( >+ actualWidth, actualHeight, dataWidth, expectedData, >+ actualChannels == 4)); >+ insertImg(div, "actual", makeImage( >+ actualWidth, actualHeight, actualWidth, actual, >+ actualChannels == 4)); >+ div.appendChild(document.createElement('br')); >+ document.getElementById("console").appendChild(div); >+ >+ var failed = false; >+ for (var yy = 0; yy < actualHeight; ++yy) { >+ for (var xx = 0; xx < actualWidth; ++xx) { >+ var actualOffset = (yy * actualWidth + xx) * 4; >+ var expectedOffset = (yy * dataWidth + xx) * 4; >+ var expected = [ >+ expectedData[expectedOffset + 0], >+ expectedData[expectedOffset + 1], >+ expectedData[expectedOffset + 2], >+ (actualChannels == 3 ? 255 : expectedData[expectedOffset + 3]) >+ ]; >+ for (var jj = 0; jj < 4; ++jj) { >+ if (Math.abs(actual[actualOffset + jj] - expected[jj]) > tolerance) { >+ failed = true; >+ var was = actual[actualOffset + 0].toString(); >+ for (var j = 1; j < 4; ++j) { >+ was += "," + actual[actualOffset + j]; >+ } >+ testFailed('at (' + xx + ', ' + yy + >+ ') expected: ' + expected + ' was ' + was); >+ } >+ } >+ } >+ } >+ if (!failed) { >+ testPassed("texture rendered correctly with " + filteringMode + " filtering"); >+ } >+} >+ >+// Builds several tests from two arrays >+// data gives each Uint8Array encoded data to use >+// formats the associate format to decode the data >+// raws gives each decoded Uint8Array data for texture comparison >+// mode 'LDR' or 'HDR' >+function buildTests(data, formats, raws, mode) { >+ >+ var tests = []; >+ for (var i = 0; i < data.length; ++i) { >+ var test = { >+ width: 16, >+ height: 16, >+ channels: 4, >+ data: data[i], >+ format: formats[i], >+ raw: raws[i], >+ mode: mode >+ }; >+ tests.push(test); >+ } >+ >+ return tests; >+} >+ >+function formatToString(format) { >+ for (var p in ext) { >+ if (ext[p] == format) { >+ return p; >+ } >+ } >+ return "0x" + format.toString(16); >+} >+ >+function expectedByteLength(w, h, format) { >+ >+ if (format == ext.COMPRESSED_RGBA_ASTC_4x4_KHR) >+ return Math.floor((w + 3) / 4) * Math.floor((h + 3) / 4) * 16; >+ else if (format == ext.COMPRESSED_RGBA_ASTC_5x4_KHR) >+ return Math.floor((w + 4) / 5) * Math.floor((h + 3) / 4) * 16; >+ else if (format == ext.COMPRESSED_RGBA_ASTC_5x5_KHR) >+ return Math.floor((w + 4) / 5) * Math.floor((h + 4) / 5) * 16; >+ else if (format == ext.COMPRESSED_RGBA_ASTC_6x5_KHR) >+ return Math.floor((w + 5) / 6) * Math.floor((h + 4) / 5) * 16; >+ else if (format == ext.COMPRESSED_RGBA_ASTC_6x6_KHR) >+ return Math.floor((w + 5) / 6) * Math.floor((h + 5) / 6) * 16; >+ else if (format == ext.COMPRESSED_RGBA_ASTC_8x5_KHR) >+ return Math.floor((w + 7) / 8) * Math.floor((h + 4) / 5) * 16; >+ else if (format == ext.COMPRESSED_RGBA_ASTC_8x6_KHR) >+ return Math.floor((w + 7) / 8) * Math.floor((h + 5) / 6) * 16; >+ else if (format == ext.COMPRESSED_RGBA_ASTC_8x8_KHR) >+ return Math.floor((w + 7) / 8) * Math.floor((h + 7) / 8) * 16; >+ else if (format == ext.COMPRESSED_RGBA_ASTC_10x5_KHR) >+ return Math.floor((w + 9) / 10) * Math.floor((h + 4) / 5) * 16; >+ else if (format == ext.COMPRESSED_RGBA_ASTC_10x6_KHR) >+ return Math.floor((w + 9) / 10) * Math.floor((h + 5) / 6) * 16; >+ else if (format == ext.COMPRESSED_RGBA_ASTC_10x8_KHR) >+ return Math.floor((w + 9) / 10) * Math.floor((h + 7) / 8) * 16; >+ else if (format == ext.COMPRESSED_RGBA_ASTC_10x10_KHR) >+ return Math.floor((w + 9) / 10) * Math.floor((h + 9) / 10) * 16; >+ else if (format == ext.COMPRESSED_RGBA_ASTC_12x10_KHR) >+ return Math.floor((w + 11) / 12) * Math.floor((h + 9) / 10) * 16; >+ >+ return Math.floor((w + 11) / 12) * Math.floor((h + 11) / 12) * 16; >+} >+ >+function insertImg(element, caption, img) { >+ var div = document.createElement("div"); >+ div.appendChild(img); >+ var label = document.createElement("div"); >+ label.appendChild(document.createTextNode(caption)); >+ div.appendChild(label); >+ element.appendChild(div); >+} >+ >+function makeImage(imageWidth, imageHeight, dataWidth, data, alpha) { >+ var scale = 8; >+ var c = document.createElement("canvas"); >+ c.width = imageWidth * scale; >+ c.height = imageHeight * scale; >+ var ctx = c.getContext("2d"); >+ for (var yy = 0; yy < imageHeight; ++yy) { >+ for (var xx = 0; xx < imageWidth; ++xx) { >+ var offset = (yy * dataWidth + xx) * 4; >+ ctx.fillStyle = "rgba(" + >+ data[offset + 0] + "," + >+ data[offset + 1] + "," + >+ data[offset + 2] + "," + >+ (alpha ? data[offset + 3] / 255 : 1) + ")"; >+ ctx.fillRect(xx * scale, yy * scale, scale, scale); >+ } >+ } >+ return wtu.makeImageFromCanvas(c); >+} >+ >+// Swaps two cells in an arraybuffer. >+// this function is used in the image flipping function >+function swapCell(array, i, j) { >+ var a = array[i]; >+ array[i] = array[j]; >+ array[j] = a; >+} >+ >+function flipImage(imgBuffer, w, h) { >+ var halfHeight = h / 2; >+ >+ for (var j = 0; j < halfHeight; j++) { >+ for (var i = 0; i < w; i++) { >+ var beginByte = (j * w + i) * 4; >+ var endByte = ((h - j - 1) * w + i) * 4; >+ >+ swapCell(imgBuffer, beginByte, endByte); >+ swapCell(imgBuffer, beginByte + 1, endByte + 1); >+ swapCell(imgBuffer, beginByte + 2, endByte + 2); >+ swapCell(imgBuffer, beginByte + 3, endByte + 3); >+ } >+ } >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-atc.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-atc.html >new file mode 100644 >index 00000000000..92122793778 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-atc.html >@@ -0,0 +1,427 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<title>WebGL WEBGL_compressed_texture_atc Conformance Tests</title> >+<style> >+img { >+ border: 1px solid black; >+ margin-right: 1em; >+} >+.testimages { >+} >+ >+.testimages br { >+ clear: both; >+} >+ >+.testimages > div { >+ float: left; >+ margin: 1em; >+} >+</style> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" width="8" height="8" style="width: 8px; height: 8px;"></canvas> >+<div id="console"></div> >+<script> >+"use strict"; >+description("This test verifies the functionality of the WEBGL_compressed_texture_atc extension, if it is available."); >+ >+debug(""); >+ >+// Compressed textures generated with AMD's Compressonator tool >+// http://developer.amd.com/resources/archive/archived-tools/gpu-tools-archive/the-compressonator/ >+var img_4x4_rgba_raw = new Uint8Array([ >+ 0xff,0x00,0x00,0x69,0x00,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff, >+ 0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff, >+ 0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff, >+ 0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff, >+]); >+var img_4x4_rgb_atc = new Uint8Array([ >+ 0x00,0x7c,0xe0,0x07,0xcc,0xcf,0xc0,0xff, >+]); >+var img_4x4_rgba_atc_explicit = new Uint8Array([ >+ 0xf6,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x7c,0xe0,0x07,0xcc,0xcf,0xc0,0xff, >+]); >+var img_4x4_rgba_atc_interpolated = new Uint8Array([ >+ 0xff,0x6a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xe0,0x07,0xcc,0xcf,0xc0,0xff, >+]); >+var img_8x8_rgba_raw = new Uint8Array([ >+ 0xff,0x00,0x00,0x69,0x00,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff, >+ 0xff,0xff,0x00,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0xff,0x00,0x00,0xff,0xff, >+ 0x00,0xff,0x00,0x69,0x00,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff, >+ 0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0xff,0x00,0x00,0xff,0xff, >+ 0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff, >+ 0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0x00,0x00,0xff,0xff, >+ 0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff, >+ 0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff, >+ 0x00,0xff,0x00,0xff,0xff,0x00,0xff,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0xff,0xff, >+ 0x00,0x00,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0xff,0xff,0xff, >+ 0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0xff,0xff, >+ 0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0xff,0xff,0xff, >+ 0x00,0xff,0x00,0x69,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0xff,0xff, >+ 0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0xff,0xff,0xff, >+ 0xff,0x00,0xff,0x69,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff, >+ 0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff, >+]); >+var img_8x8_rgb_atc = new Uint8Array([ >+ 0x00,0x7c,0xe0,0x07,0xcc,0xcf,0xc0,0xff,0x1f,0x00,0xe0,0xff,0x33,0x30,0x3f,0x00, >+ 0x1f,0x7c,0xe0,0x07,0x33,0x30,0x3f,0x00,0x1f,0x00,0xff,0x07,0xcc,0xcf,0xc0,0xff, >+]); >+var img_8x8_rgba_atc_explicit = new Uint8Array([ >+ 0xf6,0xff,0xf6,0xff,0xff,0xff,0xff,0xff,0x00,0x7c,0xe0,0x07,0xcc,0xcf,0xc0,0xff, >+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0xe0,0xff,0x33,0x30,0x3f,0x00, >+ 0xff,0xff,0xff,0xff,0xf6,0xff,0xf6,0xff,0x1f,0x7c,0xe0,0x07,0x33,0x30,0x3f,0x00, >+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0xff,0x07,0xcc,0xcf,0xc0,0xff, >+]); >+var img_8x8_rgba_atc_interpolated = new Uint8Array([ >+ 0xff,0x6a,0x01,0x10,0x00,0x00,0x00,0x00,0x00,0x7c,0xe0,0x07,0xcc,0xcf,0xc0,0xff, >+ 0x00,0xff,0x49,0x92,0x24,0x49,0x92,0x24,0x1f,0x00,0xe0,0xff,0x33,0x30,0x3f,0x00, >+ 0xff,0x69,0x00,0x00,0x00,0x01,0x10,0x00,0x1f,0x7c,0xe0,0x07,0x33,0x30,0x3f,0x00, >+ 0x00,0xff,0x49,0x92,0x24,0x49,0x92,0x24,0x1f,0x00,0xff,0x07,0xcc,0xcf,0xc0,0xff, >+]); >+ >+var wtu = WebGLTestUtils; >+var contextVersion = wtu.getDefault3DContextVersion(); >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas, {antialias: false}); >+var program = wtu.setupTexturedQuad(gl); >+var ext = null; >+var vao = null; >+var validFormats = { >+ COMPRESSED_RGB_ATC_WEBGL : 0x8C92, >+ COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL : 0x8C93, >+ COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL : 0x87EE, >+}; >+var name; >+var supportedFormats; >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ // Run tests with extension disabled >+ runTestDisabled(); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = wtu.getExtensionWithKnownPrefixes(gl, "WEBGL_compressed_texture_atc"); >+ if (!ext) { >+ testPassed("No WEBGL_compressed_texture_atc support -- this is legal"); >+ runSupportedTest(false); >+ } else { >+ testPassed("Successfully enabled WEBGL_compressed_texture_atc extension"); >+ >+ runSupportedTest(true); >+ runTestExtension(); >+ } >+} >+ >+function runSupportedTest(extensionEnabled) { >+ var name = wtu.getSupportedExtensionWithKnownPrefixes(gl, "WEBGL_compressed_texture_atc"); >+ if (name !== undefined) { >+ if (extensionEnabled) { >+ testPassed("WEBGL_compressed_texture_atc listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("WEBGL_compressed_texture_atc listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("WEBGL_compressed_texture_atc not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("WEBGL_compressed_texture_atc not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+ >+function runTestDisabled() { >+ debug("Testing binding enum with extension disabled"); >+ >+ supportedFormats = gl.getParameter(gl.COMPRESSED_TEXTURE_FORMATS); >+ shouldBe("supportedFormats", "[]"); >+} >+ >+function formatExists(format, supportedFormats) { >+ for (var ii = 0; ii < supportedFormats.length; ++ii) { >+ if (format == supportedFormats[ii]) { >+ testPassed("supported format " + formatToString(format) + " is exists"); >+ return; >+ } >+ } >+ testFailed("supported format " + formatToString(format) + " does not exist"); >+} >+ >+function formatToString(format) { >+ for (var p in ext) { >+ if (ext[p] == format) { >+ return p; >+ } >+ } >+ return "0x" + format.toString(16); >+} >+ >+function runTestExtension() { >+ debug("Testing WEBGL_compressed_texture_atc"); >+ >+ // check that all format enums exist. >+ for (name in validFormats) { >+ var expected = "0x" + validFormats[name].toString(16); >+ var actual = "ext['" + name + "']"; >+ shouldBe(actual, expected); >+ } >+ >+ supportedFormats = gl.getParameter(gl.COMPRESSED_TEXTURE_FORMATS); >+ // There should be exactly 3 formats for both WebGL 1.0 and WebGL 2.0. >+ shouldBe("supportedFormats.length", "3"); >+ >+ // check that all 3 formats exist >+ for (var name in validFormats.length) { >+ formatExists(validFormats[name], supportedFormats); >+ } >+ >+ // Test each format >+ testATC_RGB(); >+ testATC_RGBA_Explicit(); >+ testATC_RGBA_Interpolated(); >+} >+ >+function testATC_RGB() { >+ var tests = [ >+ { width: 4, >+ height: 4, >+ channels: 3, >+ data: img_4x4_rgb_atc, >+ raw: img_4x4_rgba_raw, >+ format: ext.COMPRESSED_RGB_ATC_WEBGL >+ }, >+ { width: 8, >+ height: 8, >+ channels: 3, >+ data: img_8x8_rgb_atc, >+ raw: img_8x8_rgba_raw, >+ format: ext.COMPRESSED_RGB_ATC_WEBGL >+ } >+ ]; >+ testACTTextures(tests); >+} >+ >+function testATC_RGBA_Explicit() { >+ var tests = [ >+ { width: 4, >+ height: 4, >+ channels: 4, >+ data: img_4x4_rgba_atc_explicit, >+ raw: img_4x4_rgba_raw, >+ format: ext.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL >+ }, >+ { width: 8, >+ height: 8, >+ channels: 4, >+ data: img_8x8_rgba_atc_explicit, >+ raw: img_8x8_rgba_raw, >+ format: ext.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL >+ } >+ ]; >+ testACTTextures(tests); >+} >+ >+function testATC_RGBA_Interpolated() { >+ var tests = [ >+ { width: 4, >+ height: 4, >+ channels: 4, >+ data: img_4x4_rgba_atc_interpolated, >+ raw: img_4x4_rgba_raw, >+ format: ext.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL >+ }, >+ { width: 8, >+ height: 8, >+ channels: 4, >+ data: img_8x8_rgba_atc_interpolated, >+ raw: img_8x8_rgba_raw, >+ format: ext.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL >+ } >+ ]; >+ testACTTextures(tests); >+} >+ >+function testACTTextures(tests) { >+ debug("<hr/>"); >+ for (var ii = 0; ii < tests.length; ++ii) { >+ testACTTexture(tests[ii]); >+ } >+} >+ >+function testACTTexture(test) { >+ var data = new Uint8Array(test.data); >+ var width = test.width; >+ var height = test.height; >+ var format = test.format; >+ var uncompressedData = test.raw; >+ >+ canvas.width = width; >+ canvas.height = height; >+ gl.viewport(0, 0, width, height); >+ debug("testing " + formatToString(format) + " " + width + "x" + height); >+ >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "uploading compressed texture"); >+ gl.generateMipmap(gl.TEXTURE_2D); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "trying to generate mipmaps from compressed texture"); >+ wtu.clearAndDrawUnitQuad(gl); >+ compareRect(width, height, test.channels, width, height, uncompressedData, data, format, undefined, "NEAREST"); >+ // Test again with linear filtering. >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ wtu.clearAndDrawUnitQuad(gl); >+ compareRect(width, height, test.channels, width, height, uncompressedData, data, format, undefined, "LINEAR"); >+ >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width + 4, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height + 4, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width - 4, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height - 4, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width - 1, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width - 2, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height - 1, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height - 2, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ >+ gl.compressedTexImage2D(gl.TEXTURE_2D, -1, format, 1, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "cannot specify negative mip level"); >+ >+ // ATC Does not allow use of CompressedTexSubImage >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "compressedTexSubImage2D not allowed"); >+} >+ >+function insertImg(element, caption, img) { >+ var div = document.createElement("div"); >+ div.appendChild(img); >+ var label = document.createElement("div"); >+ label.appendChild(document.createTextNode(caption)); >+ div.appendChild(label); >+ element.appendChild(div); >+} >+ >+function makeImage(imageWidth, imageHeight, dataWidth, data, alpha) { >+ var scale = 8; >+ var c = document.createElement("canvas"); >+ c.width = imageWidth * scale; >+ c.height = imageHeight * scale; >+ var ctx = c.getContext("2d"); >+ for (var yy = 0; yy < imageHeight; ++yy) { >+ for (var xx = 0; xx < imageWidth; ++xx) { >+ var offset = (yy * dataWidth + xx) * 4; >+ ctx.fillStyle = "rgba(" + >+ data[offset + 0] + "," + >+ data[offset + 1] + "," + >+ data[offset + 2] + "," + >+ (alpha ? data[offset + 3] / 255 : 1) + ")"; >+ ctx.fillRect(xx * scale, yy * scale, scale, scale); >+ } >+ } >+ return wtu.makeImageFromCanvas(c); >+} >+function compareRect( >+ actualWidth, actualHeight, actualChannels, >+ dataWidth, dataHeight, expectedData, >+ testData, testFormat, tolerance, filteringMode) { >+ if(typeof(tolerance) == 'undefined') { tolerance = 5; } >+ var actual = new Uint8Array(actualWidth * actualHeight * 4); >+ gl.readPixels( >+ 0, 0, actualWidth, actualHeight, gl.RGBA, gl.UNSIGNED_BYTE, actual); >+ >+ var div = document.createElement("div"); >+ div.className = "testimages"; >+ insertImg(div, "expected", makeImage( >+ actualWidth, actualHeight, dataWidth, expectedData, >+ actualChannels == 4)); >+ insertImg(div, "actual", makeImage( >+ actualWidth, actualHeight, actualWidth, actual, >+ actualChannels == 4)); >+ div.appendChild(document.createElement('br')); >+ document.getElementById("console").appendChild(div); >+ >+ var failed = false; >+ for (var yy = 0; yy < actualHeight; ++yy) { >+ for (var xx = 0; xx < actualWidth; ++xx) { >+ var actualOffset = (yy * actualWidth + xx) * 4; >+ var expectedOffset = (yy * dataWidth + xx) * 4; >+ var expected = [ >+ expectedData[expectedOffset + 0], >+ expectedData[expectedOffset + 1], >+ expectedData[expectedOffset + 2], >+ (actualChannels == 3 ? 255 : expectedData[expectedOffset + 3]) >+ ]; >+ for (var jj = 0; jj < 4; ++jj) { >+ if (Math.abs(actual[actualOffset + jj] - expected[jj]) > tolerance) { >+ failed = true; >+ var was = actual[actualOffset + 0].toString(); >+ for (j = 1; j < 4; ++j) { >+ was += "," + actual[actualOffset + j]; >+ } >+ testFailed('at (' + xx + ', ' + yy + >+ ') expected: ' + expected + ' was ' + was); >+ } >+ } >+ } >+ } >+ if (!failed) { >+ testPassed("texture rendered correctly with " + filteringMode + " filtering"); >+ } >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-etc.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-etc.html >new file mode 100644 >index 00000000000..6cb91122931 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-etc.html >@@ -0,0 +1,164 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015-2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL WEBGL_compressed_texture_etc Conformance Tests</title> >+<LINK rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description("This test verifies the functionality of the WEBGL_compressed_texture_etc extension, if it is available."); >+ >+debug(""); >+var COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0; >+var COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1; >+var COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2; >+var COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3; >+var COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00; >+var COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02; >+var ETC1_RGB8_OES = 0x8D64; >+var COMPRESSED_R11_EAC = 0x9270; >+var COMPRESSED_SIGNED_R11_EAC = 0x9271; >+var COMPRESSED_RG11_EAC = 0x9272; >+var COMPRESSED_SIGNED_RG11_EAC = 0x9273; >+var COMPRESSED_RGB8_ETC2 = 0x9274; >+var COMPRESSED_SRGB8_ETC2 = 0x9275; >+var COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276; >+var COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277; >+var COMPRESSED_RGBA8_ETC2_EAC = 0x9278; >+var COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279; >+ >+var wtu = WebGLTestUtils; >+var contextVersion = wtu.getDefault3DContextVersion(); >+var gl = wtu.create3DContext(); >+var WEBGL_compressed_texture_etc; >+ >+var formats = null; >+ >+function runTest() { >+ if (!gl) { >+ testFailed("context does not exist"); >+ } else { >+ testPassed("context exists"); >+ >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ >+ var haveExt = gl.getSupportedExtensions().indexOf("WEBGL_compressed_texture_etc") >= 0; >+ WEBGL_compressed_texture_etc = gl.getExtension("WEBGL_compressed_texture_etc"); >+ >+ var isPositive = true; >+ >+ if (haveExt) { >+ if (WEBGL_compressed_texture_etc !== null) { >+ testPassed("WEBGL_compressed_texture_etc listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("WEBGL_compressed_texture_etc listed as supported but getExtension failed"); >+ return; >+ } >+ } else { >+ if (WEBGL_compressed_texture_etc !== null) { >+ testFailed("WEBGL_compressed_texture_etc listed as unsupported but getExtension succeeded"); >+ return; >+ } else { >+ testPassed("No WEBGL_compressed_texture_etc support -- this is legal"); >+ isPositive = false; >+ } >+ } >+ >+ if (isPositive) { >+ shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_R11_EAC", "0x9270"); >+ shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_SIGNED_R11_EAC", "0x9271"); >+ shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_RG11_EAC", "0x9272"); >+ shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_SIGNED_RG11_EAC", "0x9273"); >+ shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_RGB8_ETC2", "0x9274"); >+ shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_SRGB8_ETC2", "0x9275"); >+ shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2", "0x9276"); >+ shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2", "0x9277"); >+ shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_RGBA8_ETC2_EAC", "0x9278"); >+ shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC", "0x9279"); >+ } >+ >+ wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGB_S3TC_DXT1_EXT, 4, 4, 0, new Uint8Array(8))"); >+ wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGBA_S3TC_DXT1_EXT, 4, 4, 0, new Uint8Array(8))"); >+ wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGBA_S3TC_DXT5_EXT, 4, 4, 0, new Uint8Array(16))"); >+ wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, ETC1_RGB8_OES, 4, 4, 0, new Uint8Array(8))"); >+ wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGB_PVRTC_4BPPV1_IMG, 8, 8, 0, new Uint8Array(8))"); >+ wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGBA_PVRTC_4BPPV1_IMG, 8, 8, 0, new Uint8Array(8))"); >+ wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.compressedTexImage2D(gl.TEXTURE_3D, 0, COMPRESSED_R11_EAC, 4, 4, 0, new Uint8Array(8))"); >+ wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.compressedTexSubImage2D(gl.TEXTURE_3D, 0, 0, 0, 4, 4, COMPRESSED_R11_EAC, new Uint8Array(8))"); >+ >+ var expected = isPositive ? gl.NO_ERROR : gl.INVALID_ENUM; >+ var expectedSub = isPositive ? gl.NO_ERROR : [gl.INVALID_ENUM, gl.INVALID_OPERATION]; >+ wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_R11_EAC, 4, 4, 0, new Uint8Array(8))"); >+ wtu.shouldGenerateGLError(gl, expectedSub, "gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 4, 4, COMPRESSED_R11_EAC, new Uint8Array(8))"); >+ wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_SIGNED_R11_EAC, 4, 4, 0, new Uint8Array(8))"); >+ wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RG11_EAC, 4, 4, 0, new Uint8Array(16))"); >+ wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_SIGNED_RG11_EAC, 4, 4, 0, new Uint8Array(16))"); >+ wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGB8_ETC2, 4, 4, 0, new Uint8Array(8))"); >+ wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_SRGB8_ETC2, 4, 4, 0, new Uint8Array(8))"); >+ wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, 4, 4, 0, new Uint8Array(8))"); >+ wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, 4, 4, 0, new Uint8Array(8))"); >+ wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGBA8_ETC2_EAC, 4, 4, 0, new Uint8Array(16))"); >+ wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, 4, 4, 0, new Uint8Array(16))"); >+ >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "formats = gl.getParameter(gl.COMPRESSED_TEXTURE_FORMATS)"); >+ shouldBeNonNull("formats"); >+ shouldBe("formats.length", isPositive ? "10" : "0"); >+ >+ debug(""); >+ if (contextVersion >= 2) { >+ var expectedError = isPositive ? gl.INVALID_OPERATION: [gl.INVALID_ENUM, gl.INVALID_OPERATION]; >+ // `null` coerces into `0` for the PBO entrypoint, yielding INVALID_OP due to no PBO bound. >+ wtu.shouldGenerateGLError(gl, expectedError, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_R11_EAC, 4, 4, 0, 0, null)"); >+ wtu.shouldGenerateGLError(gl, expectedError, "gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 0, 0, COMPRESSED_R11_EAC, 0, null)"); >+ wtu.shouldGenerateGLError(gl, expectedError, "gl.compressedTexImage3D(gl.TEXTURE_2D_ARRAY, 0, COMPRESSED_R11_EAC, 4, 4, 4, 0, 0, null)"); >+ wtu.shouldGenerateGLError(gl, expectedError, "gl.compressedTexSubImage3D(gl.TEXTURE_2D_ARRAY, 0, 0, 0, 0, 0, 0, 0, COMPRESSED_R11_EAC, 0, null)"); >+ } else { >+ shouldThrow("gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_R11_EAC, 4, 4, 0, null)"); >+ shouldThrow("gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 0, 0, COMPRESSED_R11_EAC, null)"); >+ shouldThrow("gl.compressedTexImage3D(gl.TEXTURE_2D_ARRAY, 0, COMPRESSED_R11_EAC, 4, 4, 4, 0, null)"); >+ shouldThrow("gl.compressedTexSubImage3D(gl.TEXTURE_2D_ARRAY, 0, 0, 0, 0, 0, 0, 0, COMPRESSED_R11_EAC, null)"); >+ } >+ } >+} >+ >+runTest(); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-pvrtc.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-pvrtc.html >new file mode 100644 >index 00000000000..bae1af67d12 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-pvrtc.html >@@ -0,0 +1,392 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<title>WebGL WEBGL_compressed_texture_pvrtc Conformance Tests</title> >+<style> >+img { >+ border: 1px solid black; >+ margin-right: 1em; >+} >+.testimages { >+} >+ >+.testimages br { >+ clear: both; >+} >+ >+.testimages > div { >+ float: left; >+ margin: 1em; >+} >+</style> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" width="8" height="8" style="width: 8px; height: 8px;"></canvas> >+<div id="console"></div> >+<script> >+"use strict"; >+description("This test verifies the functionality of the WEBGL_compressed_texture_pvrtc extension, if it is available."); >+ >+debug(""); >+ >+var pvrtc_4x4_2bpp = new Uint8Array([ >+ 0x77, 0x22, 0x77, 0x22, 0xbb, 0x2b, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, >+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, >+]); >+ >+var pvrtc_4x4_4bpp = new Uint8Array([ >+ 0x1b, 0x1b, 0x1b, 0x1b, 0xba, 0x2b, 0x00, 0x80, 0x1b, 0x1b, 0x1b, 0x1b, 0xba, 0x2b, 0x00, 0x80, >+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, >+]); >+ >+var pvrtc_4x4_rgba_decoded = new Uint8Array([ >+ 0x00, 0x00, 0x00, 0xff, 0x46, 0x46, 0x46, 0xb8, 0x76, 0x76, 0x71, 0x8a, 0xbd, 0xbd, 0xba, 0x44, >+ 0x00, 0x00, 0x00, 0xff, 0x46, 0x46, 0x43, 0xb8, 0x76, 0x76, 0x71, 0x8a, 0xbd, 0xbd, 0xb5, 0x44, >+ 0x00, 0x00, 0x00, 0xff, 0x46, 0x46, 0x43, 0xb8, 0x76, 0x76, 0x71, 0x8a, 0xbd, 0xbd, 0xb5, 0x44, >+ 0x00, 0x00, 0x00, 0xff, 0x46, 0x46, 0x46, 0xb8, 0x76, 0x76, 0x71, 0x8a, 0xbd, 0xbd, 0xb7, 0x44, >+]); >+ >+var pvrtc_4x4_rgb_decoded = new Uint8Array([ >+ 0x00, 0x00, 0x00, 0xff, 0x46, 0x46, 0x46, 0xff, 0x76, 0x76, 0x71, 0xff, 0xbd, 0xbd, 0xba, 0xff, >+ 0x00, 0x00, 0x00, 0xff, 0x46, 0x46, 0x43, 0xff, 0x76, 0x76, 0x71, 0xff, 0xbd, 0xbd, 0xb5, 0xff, >+ 0x00, 0x00, 0x00, 0xff, 0x46, 0x46, 0x43, 0xff, 0x76, 0x76, 0x71, 0xff, 0xbd, 0xbd, 0xb5, 0xff, >+ 0x00, 0x00, 0x00, 0xff, 0x46, 0x46, 0x46, 0xff, 0x76, 0x76, 0x71, 0xff, 0xbd, 0xbd, 0xb7, 0xff, >+]); >+ >+var wtu = WebGLTestUtils; >+var contextVersion = wtu.getDefault3DContextVersion(); >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas, {antialias: false}); >+var program = wtu.setupTexturedQuad(gl); >+var ext = null; >+var vao = null; >+var validFormats = { >+ COMPRESSED_RGB_PVRTC_4BPPV1_IMG : 0x8C00, >+ COMPRESSED_RGB_PVRTC_2BPPV1_IMG : 0x8C01, >+ COMPRESSED_RGBA_PVRTC_4BPPV1_IMG : 0x8C02, >+ COMPRESSED_RGBA_PVRTC_2BPPV1_IMG : 0x8C03, >+}; >+var name; >+var supportedFormats; >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ // Run tests with extension disabled >+ runTestDisabled(); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = wtu.getExtensionWithKnownPrefixes(gl, "WEBGL_compressed_texture_pvrtc"); >+ if (!ext) { >+ testPassed("No WEBGL_compressed_texture_pvrtc support -- this is legal"); >+ runSupportedTest(false); >+ } else { >+ testPassed("Successfully enabled WEBGL_compressed_texture_pvrtc extension"); >+ >+ runSupportedTest(true); >+ runTestExtension(); >+ } >+} >+ >+function runSupportedTest(extensionEnabled) { >+ var name = wtu.getSupportedExtensionWithKnownPrefixes(gl, "WEBGL_compressed_texture_pvrtc"); >+ if (name !== undefined) { >+ if (extensionEnabled) { >+ testPassed("WEBGL_compressed_texture_pvrtc listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("WEBGL_compressed_texture_pvrtc listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("WEBGL_compressed_texture_pvrtc not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("WEBGL_compressed_texture_pvrtc not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+ >+function runTestDisabled() { >+ debug("Testing binding enum with extension disabled"); >+ >+ supportedFormats = gl.getParameter(gl.COMPRESSED_TEXTURE_FORMATS); >+ shouldBe("supportedFormats", "[]"); >+} >+ >+function formatExists(format, supportedFormats) { >+ for (var ii = 0; ii < supportedFormats.length; ++ii) { >+ if (format == supportedFormats[ii]) { >+ testPassed("supported format " + formatToString(format) + " is exists"); >+ return; >+ } >+ } >+ testFailed("supported format " + formatToString(format) + " does not exist"); >+} >+ >+function formatToString(format) { >+ for (var p in ext) { >+ if (ext[p] == format) { >+ return p; >+ } >+ } >+ return "0x" + format.toString(16); >+} >+ >+function runTestExtension() { >+ debug("Testing WEBGL_compressed_texture_pvrtc"); >+ >+ // check that all format enums exist. >+ for (name in validFormats) { >+ var expected = "0x" + validFormats[name].toString(16); >+ var actual = "ext['" + name + "']"; >+ shouldBe(actual, expected); >+ } >+ >+ supportedFormats = gl.getParameter(gl.COMPRESSED_TEXTURE_FORMATS); >+ // There should be exactly 4 formats for both WebGL 1.0 and WebGL 2.0. >+ shouldBe("supportedFormats.length", "4"); >+ >+ // check that all 4 formats exist >+ for (var name in validFormats.length) { >+ formatExists(validFormats[name], supportedFormats); >+ } >+ >+ // Test each format >+ testPVRTC_RGBA_2BPP(); >+ testPVRTC_RGB_2BPP(); >+ testPVRTC_RGBA_4BPP(); >+ testPVRTC_RGB_4BPP(); >+} >+ >+function testPVRTC_RGBA_2BPP() { >+ var tests = [ >+ { width: 4, >+ height: 4, >+ channels: 4, >+ data: pvrtc_4x4_2bpp, >+ raw: pvrtc_4x4_rgba_decoded, >+ format: ext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG >+ } >+ ]; >+ testPVRTCTextures(tests); >+} >+ >+function testPVRTC_RGB_2BPP() { >+ var tests = [ >+ { width: 4, >+ height: 4, >+ channels: 4, >+ data: pvrtc_4x4_2bpp, >+ raw: pvrtc_4x4_rgb_decoded, >+ format: ext.COMPRESSED_RGB_PVRTC_2BPPV1_IMG >+ } >+ ]; >+ testPVRTCTextures(tests); >+} >+ >+function testPVRTC_RGBA_4BPP() { >+ var tests = [ >+ { width: 4, >+ height: 4, >+ channels: 4, >+ data: pvrtc_4x4_4bpp, >+ raw: pvrtc_4x4_rgba_decoded, >+ format: ext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG >+ } >+ ]; >+ testPVRTCTextures(tests); >+} >+ >+function testPVRTC_RGB_4BPP() { >+ var tests = [ >+ { width: 4, >+ height: 4, >+ channels: 4, >+ data: pvrtc_4x4_4bpp, >+ raw: pvrtc_4x4_rgb_decoded, >+ format: ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG >+ } >+ ]; >+ testPVRTCTextures(tests); >+} >+ >+function testPVRTCTextures(tests) { >+ debug("<hr/>"); >+ for (var ii = 0; ii < tests.length; ++ii) { >+ testPVRTCTexture(tests[ii]); >+ } >+} >+ >+function testPVRTCTexture(test) { >+ var data = new Uint8Array(test.data); >+ var width = test.width; >+ var height = test.height; >+ var format = test.format; >+ var uncompressedData = test.raw; >+ >+ canvas.width = width; >+ canvas.height = height; >+ gl.viewport(0, 0, width, height); >+ debug("testing " + formatToString(format) + " " + width + "x" + height); >+ >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "uploading compressed texture"); >+ gl.generateMipmap(gl.TEXTURE_2D); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "trying to generate mipmaps from compressed texture"); >+ wtu.drawQuad(gl); >+ compareRect(width, height, test.channels, width, height, uncompressedData, data, format, undefined, "NEAREST"); >+ // Test again with linear filtering. >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ wtu.clearAndDrawUnitQuad(gl); >+ compareRect(width, height, test.channels, width, height, uncompressedData, data, format, undefined, "LINEAR"); >+ >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height, 1, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "non 0 border"); >+ >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width - 1, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width - 2, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height - 1, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height - 2, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "compressedTexSubImage2D allowed for reloading of complete textures"); >+ >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width - 2, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "compressedTexSubImage2D not allowed for partial texture updates"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height - 2, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "compressedTexSubImage2D not allowed for partial texture updates"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 2, 0, width - 2, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "compressedTexSubImage2D not allowed for partial texture updates"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 2, width, height - 2, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "compressedTexSubImage2D not allowed for partial texture updates"); >+} >+ >+function insertImg(element, caption, img) { >+ var div = document.createElement("div"); >+ div.appendChild(img); >+ var label = document.createElement("div"); >+ label.appendChild(document.createTextNode(caption)); >+ div.appendChild(label); >+ element.appendChild(div); >+} >+ >+function makeImage(imageWidth, imageHeight, dataWidth, data, alpha) { >+ var scale = 8; >+ var c = document.createElement("canvas"); >+ c.width = imageWidth * scale; >+ c.height = imageHeight * scale; >+ var ctx = c.getContext("2d"); >+ for (var yy = 0; yy < imageHeight; ++yy) { >+ for (var xx = 0; xx < imageWidth; ++xx) { >+ var offset = (yy * dataWidth + xx) * 4; >+ ctx.fillStyle = "rgba(" + >+ data[offset + 0] + "," + >+ data[offset + 1] + "," + >+ data[offset + 2] + "," + >+ (alpha ? data[offset + 3] / 255 : 1) + ")"; >+ ctx.fillRect(xx * scale, yy * scale, scale, scale); >+ } >+ } >+ return wtu.makeImageFromCanvas(c); >+} >+function compareRect( >+ actualWidth, actualHeight, actualChannels, >+ dataWidth, dataHeight, expectedData, >+ testData, testFormat, tolerance, filteringMode) { >+ if(typeof(tolerance) == 'undefined') { tolerance = 5; } >+ var actual = new Uint8Array(actualWidth * actualHeight * 4); >+ gl.readPixels( >+ 0, 0, actualWidth, actualHeight, gl.RGBA, gl.UNSIGNED_BYTE, actual); >+ >+ var div = document.createElement("div"); >+ div.className = "testimages"; >+ insertImg(div, "expected", makeImage( >+ actualWidth, actualHeight, dataWidth, expectedData, >+ actualChannels == 4)); >+ insertImg(div, "actual", makeImage( >+ actualWidth, actualHeight, actualWidth, actual, >+ actualChannels == 4)); >+ div.appendChild(document.createElement('br')); >+ document.getElementById("console").appendChild(div); >+ >+ var failed = false; >+ for (var yy = 0; yy < actualHeight; ++yy) { >+ for (var xx = 0; xx < actualWidth; ++xx) { >+ var actualOffset = (yy * actualWidth + xx) * 4; >+ var expectedOffset = (yy * dataWidth + xx) * 4; >+ var expected = [ >+ expectedData[expectedOffset + 0], >+ expectedData[expectedOffset + 1], >+ expectedData[expectedOffset + 2], >+ (actualChannels == 3 ? 255 : expectedData[expectedOffset + 3]) >+ ]; >+ for (var jj = 0; jj < 4; ++jj) { >+ if (Math.abs(actual[actualOffset + jj] - expected[jj]) > tolerance) { >+ failed = true; >+ var was = actual[actualOffset + 0].toString(); >+ for (var j = 1; j < 4; ++j) { >+ was += "," + actual[actualOffset + j]; >+ } >+ testFailed('at (' + xx + ', ' + yy + >+ ') expected: ' + expected + ' was ' + was); >+ } >+ } >+ } >+ } >+ if (!failed) { >+ testPassed("texture rendered correctly with " + filteringMode + " filtering"); >+ } >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html >new file mode 100644 >index 00000000000..9bcf41e147c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html >@@ -0,0 +1,711 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012-2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<title>WebGL WEBGL_compressed_texture_s3tc_srgb Conformance Tests</title> >+<style> >+img { >+ border: 1px solid black; >+ margin-right: 1em; >+} >+.testimages { >+} >+ >+.testimages br { >+ clear: both; >+} >+ >+.testimages > div { >+ float: left; >+ margin: 1em; >+} >+</style> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" width="8" height="8" style="width: 8px; height: 8px;"></canvas> >+<div id="console"></div> >+<script> >+"use strict"; >+description("This test verifies the functionality of the WEBGL_compressed_texture_s3tc_srgb extension, if it is available."); >+ >+debug(""); >+ >+// This is the original image from webgl-compressed-texture-s3tc.html but >+// scaled to 0x40..0xbf inclusive and alpha changed from 0x69 to 0x7f. >+var img_4x4_rgba_raw = new Uint8Array([ >+ 0xbf,0x40,0x40,0x7f,0x40,0xbf,0x40,0xff,0xbf,0x40,0x40,0xff,0x40,0xbf,0x40,0xff, >+ 0x40,0xbf,0x40,0xff,0x40,0xbf,0x40,0xff,0xbf,0x40,0x40,0xff,0x40,0xbf,0x40,0xff, >+ 0xbf,0x40,0x40,0xff,0xbf,0x40,0x40,0xff,0xbf,0x40,0x40,0xff,0x40,0xbf,0x40,0xff, >+ 0x40,0xbf,0x40,0xff,0x40,0xbf,0x40,0xff,0x40,0xbf,0x40,0xff,0x40,0xbf,0x40,0xff, >+]); >+var img_4x4_rgb_dxt1 = new Uint8Array([ >+ 0x08,0xba,0xe8,0x45,0x44,0x45,0x40,0x55, >+]); >+var img_4x4_rgba_dxt1 = new Uint8Array([ >+ 0xa8,0x4d,0x48,0xb2,0x13,0x10,0x15,0x00, >+]); >+var img_4x4_rgba_dxt3 = new Uint8Array([ >+ 0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x08,0xba,0xe8,0x45,0x44,0x45,0x40,0x55, >+]); >+var img_4x4_rgba_dxt5 = new Uint8Array([ >+ 0xff,0x7f,0x01,0x00,0x00,0x00,0x00,0x00,0x08,0xba,0xe8,0x45,0x44,0x45,0x40,0x55, >+]); >+var img_8x8_rgba_raw = new Uint8Array([ >+ 0xdf,0xa0,0xa0,0x7f,0x40,0xbf,0x40,0xff,0xbf,0x40,0x40,0xff,0x40,0xbf,0x40,0xff,0xbf,0xbf,0x40,0xff,0x40,0x40,0xbf,0xff,0xbf,0xbf,0x40,0xff,0x40,0x40,0xbf,0xff, >+ 0x40,0xbf,0x40,0x7f,0x40,0xbf,0x40,0xff,0xbf,0x40,0x40,0xff,0x40,0xbf,0x40,0xff,0x40,0x40,0xbf,0xff,0x40,0x40,0xbf,0xff,0xbf,0xbf,0x40,0xff,0x40,0x40,0xbf,0xff, >+ 0xbf,0x40,0x40,0xff,0xbf,0x40,0x40,0xff,0xbf,0x40,0x40,0xff,0x40,0xbf,0x40,0xff,0xbf,0xbf,0x40,0xff,0xbf,0xbf,0x40,0xff,0xbf,0xbf,0x40,0xff,0x40,0x40,0xbf,0xff, >+ 0x40,0xbf,0x40,0xff,0x40,0xbf,0x40,0xff,0x40,0xbf,0x40,0xff,0x40,0xbf,0x40,0xff,0x40,0x40,0xbf,0xff,0x40,0x40,0xbf,0xff,0x40,0x40,0xbf,0xff,0x40,0x40,0xbf,0xff, >+ 0x40,0xbf,0x40,0xff,0xbf,0x40,0xbf,0xff,0x40,0xbf,0x40,0xff,0xbf,0x40,0xbf,0xff,0x40,0x40,0xbf,0xff,0x40,0xbf,0xbf,0xff,0x40,0x40,0xbf,0xff,0x40,0xbf,0xbf,0xff, >+ 0xbf,0x40,0xbf,0xff,0xbf,0x40,0xbf,0xff,0x40,0xbf,0x40,0xff,0xbf,0x40,0xbf,0xff,0x40,0xbf,0xbf,0xff,0x40,0xbf,0xbf,0xff,0x40,0x40,0xbf,0xff,0x40,0xbf,0xbf,0xff, >+ 0x40,0xbf,0x40,0x7f,0x40,0xbf,0x40,0xff,0x40,0xbf,0x40,0xff,0xbf,0x40,0xbf,0xff,0x40,0x40,0xbf,0xff,0x40,0x40,0xbf,0xff,0x40,0x40,0xbf,0xff,0x40,0xbf,0xbf,0xff, >+ 0xbf,0x40,0xbf,0x7f,0xbf,0x40,0xbf,0xff,0xbf,0x40,0xbf,0xff,0xbf,0x40,0xbf,0xff,0x40,0xbf,0xbf,0xff,0x40,0xbf,0xbf,0xff,0x40,0xbf,0xbf,0xff,0x40,0xbf,0xbf,0xff, >+]); >+var img_8x8_rgb_dxt1 = new Uint8Array([ >+ 0x08,0xba,0xe8,0x45,0x44,0x45,0x40,0x55,0xe8,0xbd,0x17,0x42,0x44,0x45,0x40,0x55,0x17,0xba,0xe8,0x45,0x11,0x10,0x15,0x00,0xf7,0x45,0x17,0x42,0x11,0x10,0x15,0x00, >+]); >+var img_8x8_rgba_dxt1 = new Uint8Array([ >+ 0xa8,0x4d,0x48,0xb2,0x13,0x10,0x15,0x00,0xe8,0xbd,0x17,0x42,0x44,0x45,0x40,0x55,0x17,0xba,0xe8,0x45,0x11,0x10,0x15,0x00,0xf7,0x45,0x17,0x42,0x11,0x10,0x15,0x00, >+]); >+var img_8x8_rgba_dxt3 = new Uint8Array([ >+ 0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x08,0xba,0xe8,0x45,0x44,0x45,0x40,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe8,0xbd,0x17,0x42,0x44,0x45,0x40,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x17,0xba,0xe8,0x45,0x11,0x10,0x15,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0x45,0x17,0x42,0x11,0x10,0x15,0x00, >+]); >+var img_8x8_rgba_dxt5 = new Uint8Array([ >+ 0xff,0x7f,0x01,0x00,0x00,0x00,0x00,0x00,0x08,0xba,0xe8,0x45,0x44,0x45,0x40,0x55,0xff,0xff,0x49,0x92,0x24,0x49,0x92,0x24,0xe8,0xbd,0x17,0x42,0x44,0x45,0x40,0x55,0xff,0xff,0x49,0x92,0x24,0x49,0x92,0x24,0x17,0xba,0xe8,0x45,0x11,0x10,0x15,0x00,0xff,0xff,0x49,0x92,0x24,0x49,0x92,0x24,0xf7,0x45,0x17,0x42,0x11,0x10,0x15,0x00, >+]); >+ >+var wtu = WebGLTestUtils; >+var contextVersion = wtu.getDefault3DContextVersion(); >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas, {antialias: false}); >+var program = wtu.setupTexturedQuad(gl); >+var ext = null; >+var vao = null; >+var validFormats = { >+ COMPRESSED_SRGB_S3TC_DXT1_EXT : 0x8C4C, >+ COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT : 0x8C4D, >+ COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT : 0x8C4E, >+ COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT : 0x8C4F, >+}; >+var name; >+var supportedFormats; >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ // Run tests with extension disabled >+ runTestDisabled(); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = wtu.getExtensionWithKnownPrefixes(gl, "WEBGL_compressed_texture_s3tc_srgb"); >+ if (!ext) { >+ testPassed("No WEBGL_compressed_texture_s3tc_srgb support -- this is legal"); >+ runSupportedTest(false); >+ } else { >+ testPassed("Successfully enabled WEBGL_compressed_texture_s3tc_srgb extension"); >+ >+ runSupportedTest(true); >+ runTestExtension(); >+ } >+} >+ >+function runSupportedTest(extensionEnabled) { >+ var name = wtu.getSupportedExtensionWithKnownPrefixes(gl, "WEBGL_compressed_texture_s3tc_srgb"); >+ if (name !== undefined) { >+ if (extensionEnabled) { >+ testPassed("WEBGL_compressed_texture_s3tc_srgb listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("WEBGL_compressed_texture_s3tc_srgb listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("WEBGL_compressed_texture_s3tc_srgb not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("WEBGL_compressed_texture_s3tc_srgb not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+ >+function runTestDisabled() { >+ debug("Testing binding enum with extension disabled"); >+ >+ supportedFormats = gl.getParameter(gl.COMPRESSED_TEXTURE_FORMATS); >+ shouldBe("supportedFormats", "[]"); >+} >+ >+function formatExists(format, supportedFormats) { >+ for (var ii = 0; ii < supportedFormats.length; ++ii) { >+ if (format == supportedFormats[ii]) { >+ testPassed("supported format " + formatToString(format) + " is exists"); >+ return; >+ } >+ } >+ testFailed("supported format " + formatToString(format) + " does not exist"); >+} >+ >+function formatToString(format) { >+ for (var p in ext) { >+ if (ext[p] == format) { >+ return p; >+ } >+ } >+ return "0x" + format.toString(16); >+} >+ >+function runTestExtension() { >+ debug("Testing WEBGL_compressed_texture_s3tc_srgb"); >+ >+ // check that all format enums exist. >+ for (name in validFormats) { >+ var expected = "0x" + validFormats[name].toString(16); >+ var actual = "ext['" + name + "']"; >+ shouldBe(actual, expected); >+ } >+ >+ supportedFormats = gl.getParameter(gl.COMPRESSED_TEXTURE_FORMATS); >+ // There should be exactly 4 formats for both WebGL 1.0 and WebGL 2.0. >+ shouldBe("supportedFormats.length", "4"); >+ >+ // check that all 4 formats exist >+ for (var name in validFormats.length) { >+ formatExists(validFormats[name], supportedFormats); >+ } >+ >+ // Test each format >+ testDXT1_SRGB(); >+ testDXT1_SRGB_ALPHA(); >+ testDXT3_SRGB_ALPHA(); >+ testDXT5_SRGB_ALPHA(); >+} >+ >+function testDXT1_SRGB() { >+ var tests = [ >+ { width: 4, >+ height: 4, >+ channels: 3, >+ data: img_4x4_rgb_dxt1, >+ format: ext.COMPRESSED_SRGB_S3TC_DXT1_EXT, >+ hasAlpha: false, >+ }, >+ { width: 8, >+ height: 8, >+ channels: 3, >+ data: img_8x8_rgb_dxt1, >+ format: ext.COMPRESSED_SRGB_S3TC_DXT1_EXT, >+ hasAlpha: false, >+ } >+ ]; >+ testDXTTextures(tests); >+} >+ >+function testDXT1_SRGB_ALPHA() { >+ var tests = [ >+ { width: 4, >+ height: 4, >+ channels: 4, >+ data: img_4x4_rgba_dxt1, >+ format: ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, >+ // This is a special case -- the texture is still opaque >+ // though it's RGBA. >+ hasAlpha: false, >+ }, >+ { width: 8, >+ height: 8, >+ channels: 4, >+ data: img_8x8_rgba_dxt1, >+ format: ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, >+ // This is a special case -- the texture is still opaque >+ // though it's RGBA. >+ hasAlpha: false, >+ } >+ ]; >+ testDXTTextures(tests); >+} >+ >+function testDXT3_SRGB_ALPHA() { >+ var tests = [ >+ { width: 4, >+ height: 4, >+ channels: 4, >+ data: img_4x4_rgba_dxt3, >+ format: ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT, >+ hasAlpha: true, >+ }, >+ { width: 8, >+ height: 8, >+ channels: 4, >+ data: img_8x8_rgba_dxt3, >+ format: ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT, >+ hasAlpha: true, >+ } >+ ]; >+ testDXTTextures(tests); >+} >+ >+function testDXT5_SRGB_ALPHA() { >+ var tests = [ >+ { width: 4, >+ height: 4, >+ channels: 4, >+ data: img_4x4_rgba_dxt5, >+ format: ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, >+ hasAlpha: true, >+ }, >+ { width: 8, >+ height: 8, >+ channels: 4, >+ data: img_8x8_rgba_dxt5, >+ format: ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, >+ hasAlpha: true, >+ } >+ ]; >+ testDXTTextures(tests); >+} >+ >+function testDXTTextures(tests) { >+ debug("<hr/>"); >+ for (var ii = 0; ii < tests.length; ++ii) { >+ testDXTTexture(tests[ii], false); >+ if (contextVersion >= 2) { >+ debug("<br/>"); >+ testDXTTexture(tests[ii], true); >+ } >+ } >+} >+ >+function uncompressDXTBlockSRGB( >+ destBuffer, destX, destY, destWidth, src, srcOffset, format) { >+ function make565(src, offset) { >+ return src[offset + 0] + src[offset + 1] * 256; >+ } >+ function make8888From565(c) { >+ return [ >+ Math.floor(((c >> 11) & 0x1F) * 255 / 31), >+ Math.floor(((c >> 5) & 0x3F) * 255 / 63), >+ Math.floor(((c >> 0) & 0x1F) * 255 / 31), >+ 255 >+ ]; >+ } >+ function mix(mult, c0, c1, div) { >+ var r = []; >+ for (var ii = 0; ii < c0.length; ++ii) { >+ r[ii] = Math.floor((c0[ii] * mult + c1[ii]) / div); >+ } >+ return r; >+ } >+ var isDXT1 = format == ext.COMPRESSED_SRGB_S3TC_DXT1_EXT || >+ format == ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT; >+ var colorOffset = srcOffset + (isDXT1 ? 0 : 8); >+ var color0 = make565(src, colorOffset + 0); >+ var color1 = make565(src, colorOffset + 2); >+ var c0gtc1 = color0 > color1 || !isDXT1; >+ var rgba0 = make8888From565(color0); >+ var rgba1 = make8888From565(color1); >+ var colors = [ >+ rgba0, >+ rgba1, >+ c0gtc1 ? mix(2, rgba0, rgba1, 3) : mix(1, rgba0, rgba1, 2), >+ c0gtc1 ? mix(2, rgba1, rgba0, 3) : [0, 0, 0, 255] >+ ]; >+ >+ // yea I know there is a lot of math in this inner loop. >+ // so sue me. >+ for (var yy = 0; yy < 4; ++yy) { >+ var pixels = src[colorOffset + 4 + yy]; >+ for (var xx = 0; xx < 4; ++xx) { >+ var dstOff = ((destY + yy) * destWidth + destX + xx) * 4; >+ var code = (pixels >> (xx * 2)) & 0x3; >+ var srcColor = colors[code]; >+ var alpha; >+ switch (format) { >+ case ext.COMPRESSED_SRGB_S3TC_DXT1_EXT: >+ alpha = 255; >+ break; >+ case ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: >+ alpha = (code == 3 && !c0gtc1) ? 0 : 255; >+ break; >+ case ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: >+ { >+ var alpha0 = src[srcOffset + yy * 2 + Math.floor(xx / 2)]; >+ var alpha1 = (alpha0 >> ((xx % 2) * 4)) & 0xF; >+ alpha = alpha1 | (alpha1 << 4); >+ } >+ break; >+ case ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: >+ { >+ var alpha0 = src[srcOffset + 0]; >+ var alpha1 = src[srcOffset + 1]; >+ var alphaOff = Math.floor(yy / 2) * 3 + 2; >+ var alphaBits = >+ src[srcOffset + alphaOff + 0] + >+ src[srcOffset + alphaOff + 1] * 256 + >+ src[srcOffset + alphaOff + 2] * 65536; >+ var alphaShift = (yy % 2) * 12 + xx * 3; >+ var alphaCode = (alphaBits >> alphaShift) & 0x7; >+ if (alpha0 > alpha1) { >+ switch (alphaCode) { >+ case 0: >+ alpha = alpha0; >+ break; >+ case 1: >+ alpha = alpha1; >+ break; >+ default: >+ alpha = ((8 - alphaCode) * alpha0 + (alphaCode - 1) * alpha1) / 7; >+ break; >+ } >+ } else { >+ switch (alphaCode) { >+ case 0: >+ alpha = alpha0; >+ break; >+ case 1: >+ alpha = alpha1; >+ break; >+ case 6: >+ alpha = 0; >+ break; >+ case 7: >+ alpha = 255; >+ break; >+ default: >+ alpha = ((6 - alphaCode) * alpha0 + (alphaCode - 1) * alpha1) / 5; >+ break; >+ } >+ } >+ } >+ break; >+ default: >+ throw "bad format"; >+ } >+ destBuffer[dstOff + 0] = sRGBChannelToLinear(srcColor[0]); >+ destBuffer[dstOff + 1] = sRGBChannelToLinear(srcColor[1]); >+ destBuffer[dstOff + 2] = sRGBChannelToLinear(srcColor[2]); >+ destBuffer[dstOff + 3] = alpha; >+ } >+ } >+} >+ >+function getBlockSize(format) { >+ var isDXT1 = format == ext.COMPRESSED_SRGB_S3TC_DXT1_EXT || >+ format == ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT; >+ return isDXT1 ? 8 : 16; >+} >+ >+function uncompressDXTSRGB(width, height, data, format) { >+ if (width % 4 || height % 4) throw "bad width or height"; >+ >+ var dest = new Uint8Array(width * height * 4); >+ var blocksAcross = width / 4; >+ var blocksDown = height / 4; >+ var blockSize = getBlockSize(format); >+ for (var yy = 0; yy < blocksDown; ++yy) { >+ for (var xx = 0; xx < blocksAcross; ++xx) { >+ uncompressDXTBlockSRGB( >+ dest, xx * 4, yy * 4, width, data, >+ (yy * blocksAcross + xx) * blockSize, format); >+ } >+ } >+ return dest; >+} >+ >+function copyRect(data, srcX, srcY, dstX, dstY, width, height, stride) { >+ var bytesPerLine = width * 4; >+ var srcOffset = srcX * 4 + srcY * stride; >+ var dstOffset = dstX * 4 + dstY * stride; >+ for (; height > 0; --height) { >+ for (var ii = 0; ii < bytesPerLine; ++ii) { >+ data[dstOffset + ii] = data[srcOffset + ii]; >+ } >+ srcOffset += stride; >+ dstOffset += stride; >+ } >+} >+ >+function testDXTTexture(test, useTexStorage) { >+ var data = new Uint8Array(test.data); >+ var width = test.width; >+ var height = test.height; >+ var format = test.format; >+ >+ var uncompressedData = uncompressDXTSRGB(width, height, data, format); >+ >+ canvas.width = width; >+ canvas.height = height; >+ gl.viewport(0, 0, width, height); >+ debug("testing " + formatToString(format) + " " + width + "x" + height + >+ (useTexStorage ? " via texStorage2D" : " via compressedTexImage2D")); >+ >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+ if (useTexStorage) { >+ gl.texStorage2D(gl.TEXTURE_2D, 1, format, width, height); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "allocating compressed texture via texStorage2D"); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawing unit quad"); >+ var clearColor = (test.hasAlpha ? [0, 0, 0, 0] : [0, 0, 0, 255]); >+ wtu.checkCanvas(gl, clearColor, "texture should be initialized to black"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "uploading compressed texture data via compressedTexSubImage2D"); >+ } else { >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "uploading compressed texture"); >+ } >+ gl.generateMipmap(gl.TEXTURE_2D); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "trying to generate mipmaps from compressed texture"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "after clearing generateMipmap error"); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawing unit quad 1"); >+ compareRect(width, height, test.channels, width, height, uncompressedData, data, format, "NEAREST"); >+ // Test again with linear filtering. >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawing unit quad 2"); >+ compareRect(width, height, test.channels, width, height, uncompressedData, data, format, "LINEAR"); >+ >+ if (!useTexStorage) { >+ // It's not allowed to redefine textures defined via texStorage2D. >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height, 1, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "non 0 border"); >+ >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width + 4, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height + 4, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width - 4, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height - 4, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width - 1, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width - 2, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height - 1, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height - 2, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ >+ if (width == 4) { >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 1, format, 1, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "valid dimensions for level > 0"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 1, format, 2, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "valid dimensions for level > 0"); >+ } >+ if (height == 4) { >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 1, format, width, 1, 0, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "valid dimensions for level > 0"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 1, format, width, 2, 0, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "valid dimensions for level > 0"); >+ } >+ } >+ >+ // pick a wrong format that uses the same amount of data. >+ var wrongFormat; >+ switch (format) { >+ case ext.COMPRESSED_SRGB_S3TC_DXT1_EXT: >+ wrongFormat = ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT; >+ break; >+ case ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: >+ wrongFormat = ext.COMPRESSED_SRGB_S3TC_DXT1_EXT; >+ break; >+ case ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: >+ wrongFormat = ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT; >+ break; >+ case ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: >+ wrongFormat = ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT; >+ break; >+ } >+ >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height, wrongFormat, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "format does not match"); >+ >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 4, 0, width, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "dimension out of range"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 4, width, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "dimension out of range"); >+ >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width + 4, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height + 4, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width - 4, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height - 4, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width - 1, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width - 2, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height - 1, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height - 2, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ >+ var subData = new Uint8Array(data.buffer, 0, getBlockSize(format)); >+ >+ if (width == 8 && height == 8) { >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 1, 0, 4, 4, format, subData); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid offset"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 1, 4, 4, format, subData); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid offset"); >+ } >+ >+ var stride = width * 4; >+ for (var yoff = 0; yoff < height; yoff += 4) { >+ for (var xoff = 0; xoff < width; xoff += 4) { >+ copyRect(uncompressedData, 0, 0, xoff, yoff, 4, 4, stride); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, xoff, yoff, 4, 4, format, subData); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "uploading compressed texture"); >+ // First test NEAREST filtering. >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+ wtu.clearAndDrawUnitQuad(gl); >+ compareRect(width, height, test.channels, width, height, uncompressedData, data, format, "NEAREST"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawing unit quad"); >+ // Next test LINEAR filtering. >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawing unit quad"); >+ compareRect(width, height, test.channels, width, height, uncompressedData, data, format, "LINEAR"); >+ } >+ } >+} >+ >+function insertImg(element, caption, img) { >+ var div = document.createElement("div"); >+ div.appendChild(img); >+ var label = document.createElement("div"); >+ label.appendChild(document.createTextNode(caption)); >+ div.appendChild(label); >+ element.appendChild(div); >+} >+ >+function makeImage(imageWidth, imageHeight, dataWidth, data, alpha) { >+ var scale = 8; >+ var c = document.createElement("canvas"); >+ c.width = imageWidth * scale; >+ c.height = imageHeight * scale; >+ var ctx = c.getContext("2d"); >+ for (var yy = 0; yy < imageHeight; ++yy) { >+ for (var xx = 0; xx < imageWidth; ++xx) { >+ var offset = (yy * dataWidth + xx) * 4; >+ ctx.fillStyle = "rgba(" + >+ data[offset + 0] + "," + >+ data[offset + 1] + "," + >+ data[offset + 2] + "," + >+ (alpha ? data[offset + 3] / 255 : 1) + ")"; >+ ctx.fillRect(xx * scale, yy * scale, scale, scale); >+ } >+ } >+ return wtu.makeImageFromCanvas(c); >+} >+ >+// See EXT_texture_sRGB, Section 3.8.x, sRGB Texture Color Conversion. >+function sRGBChannelToLinear(value) { >+ value = value / 255; >+ if (value <= 0.04045) { >+ value = value / 12.92; >+ } else { >+ value = Math.pow((value + 0.055) / 1.055, 2.4); >+ } >+ return Math.trunc(value * 255 + 0.5); >+} >+ >+function compareRect( >+ actualWidth, actualHeight, actualChannels, >+ dataWidth, dataHeight, expectedData, >+ testData, testFormat, filteringMode) { >+ var actual = new Uint8Array(actualWidth * actualHeight * 4); >+ gl.readPixels( >+ 0, 0, actualWidth, actualHeight, gl.RGBA, gl.UNSIGNED_BYTE, actual); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "reading back pixels"); >+ >+ var div = document.createElement("div"); >+ div.className = "testimages"; >+ insertImg(div, "expected", makeImage( >+ actualWidth, actualHeight, dataWidth, expectedData, >+ actualChannels == 4)); >+ insertImg(div, "actual", makeImage( >+ actualWidth, actualHeight, actualWidth, actual, >+ actualChannels == 4)); >+ div.appendChild(document.createElement('br')); >+ document.getElementById("console").appendChild(div); >+ >+ // This threshold is required because the values we get back from the >+ // implementation don't exactly match our javascript implementation. >+ // This is probably due to allowances in the way sRGB interacts with S3TC. >+ var threshold = 2; >+ var failed = false; >+ for (var yy = 0; yy < actualHeight; ++yy) { >+ for (var xx = 0; xx < actualWidth; ++xx) { >+ var actualOffset = (yy * actualWidth + xx) * 4; >+ var expectedOffset = (yy * dataWidth + xx) * 4; >+ var expected = [ >+ expectedData[expectedOffset + 0], >+ expectedData[expectedOffset + 1], >+ expectedData[expectedOffset + 2], >+ (actualChannels == 3 ? 255 : expectedData[expectedOffset + 3]) >+ ]; >+ for (var jj = 0; jj < 4; ++jj) { >+ if (Math.abs(actual[actualOffset + jj] - expected[jj]) > threshold) { >+ failed = true; >+ var was = actual.slice(actualOffset, actualOffset + 4); >+ testFailed('at (' + xx + ', ' + yy + ') expected: ' >+ + expected + ' ± ' + threshold + '; was ' + was); >+ } >+ } >+ } >+ } >+ if (!failed) { >+ testPassed("texture rendered correctly with " + filteringMode + " filtering"); >+ } >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc.html >new file mode 100644 >index 00000000000..677f1eae8c4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc.html >@@ -0,0 +1,736 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<title>WebGL WEBGL_compressed_texture_s3tc Conformance Tests</title> >+<style> >+img { >+ border: 1px solid black; >+ margin-right: 1em; >+} >+.testimages { >+} >+ >+.testimages br { >+ clear: both; >+} >+ >+.testimages > div { >+ float: left; >+ margin: 1em; >+} >+</style> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" width="8" height="8" style="width: 8px; height: 8px;"></canvas> >+<div id="console"></div> >+<script> >+"use strict"; >+description("This test verifies the functionality of the WEBGL_compressed_texture_s3tc extension, if it is available."); >+ >+debug(""); >+ >+var img_4x4_rgba_raw = new Uint8Array([ >+ 0xff,0x00,0x00,0x69,0x00,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff, >+]); >+var img_4x4_rgb_dxt1 = new Uint8Array([ >+ 0xe0,0x07,0x00,0xf8,0x11,0x10,0x15,0x00, >+]); >+var img_4x4_rgba_dxt1 = new Uint8Array([ >+ 0xe0,0x07,0x00,0xf8,0x13,0x10,0x15,0x00, >+]); >+var img_4x4_rgba_dxt3 = new Uint8Array([ >+ 0xf6,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf8,0xe0,0x07,0x44,0x45,0x40,0x55, >+]); >+var img_4x4_rgba_dxt5 = new Uint8Array([ >+ 0xf6,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf8,0xe0,0x07,0x44,0x45,0x40,0x55, >+]); >+var img_8x8_rgba_raw = new Uint8Array([ >+ 0xff,0x00,0x00,0x69,0x00,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0xff,0x00,0x00,0xff,0xff,0x00,0xff,0x00,0x69,0x00,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0xff,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0x00,0x00,0xff,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0xff,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0x00,0x69,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0x00,0xff,0x69,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff, >+]); >+var img_8x8_rgb_dxt1 = new Uint8Array([ >+ 0xe0,0x07,0x00,0xf8,0x11,0x10,0x15,0x00,0x1f,0x00,0xe0,0xff,0x11,0x10,0x15,0x00,0xe0,0x07,0x1f,0xf8,0x44,0x45,0x40,0x55,0x1f,0x00,0xff,0x07,0x44,0x45,0x40,0x55, >+]); >+var img_8x8_rgba_dxt1 = new Uint8Array([ >+ 0xe0,0x07,0x00,0xf8,0x13,0x13,0x15,0x00,0x1f,0x00,0xe0,0xff,0x11,0x10,0x15,0x00,0xe0,0x07,0x1f,0xf8,0x44,0x45,0x43,0x57,0x1f,0x00,0xff,0x07,0x44,0x45,0x40,0x55, >+]); >+var img_8x8_rgba_dxt3 = new Uint8Array([ >+ 0xf6,0xff,0xf6,0xff,0xff,0xff,0xff,0xff,0x00,0xf8,0xe0,0x07,0x44,0x45,0x40,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0xff,0x1f,0x00,0x44,0x45,0x40,0x55,0xff,0xff,0xff,0xff,0xf6,0xff,0xf6,0xff,0x1f,0xf8,0xe0,0x07,0x11,0x10,0x15,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x1f,0x00,0x11,0x10,0x15,0x00, >+]); >+var img_8x8_rgba_dxt5 = new Uint8Array([ >+ 0xff,0x69,0x01,0x10,0x00,0x00,0x00,0x00,0x00,0xf8,0xe0,0x07,0x44,0x45,0x40,0x55,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0x1f,0x00,0x44,0x45,0x40,0x55,0xff,0x69,0x00,0x00,0x00,0x01,0x10,0x00,0x1f,0xf8,0xe0,0x07,0x11,0x10,0x15,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x07,0x1f,0x00,0x11,0x10,0x15,0x00, >+]); >+ >+var wtu = WebGLTestUtils; >+var contextVersion = wtu.getDefault3DContextVersion(); >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas, {antialias: false}); >+var program = wtu.setupTexturedQuad(gl); >+var ext = null; >+var vao = null; >+var validFormats = { >+ COMPRESSED_RGB_S3TC_DXT1_EXT : 0x83F0, >+ COMPRESSED_RGBA_S3TC_DXT1_EXT : 0x83F1, >+ COMPRESSED_RGBA_S3TC_DXT3_EXT : 0x83F2, >+ COMPRESSED_RGBA_S3TC_DXT5_EXT : 0x83F3, >+}; >+var name; >+var supportedFormats; >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ // Run tests with extension disabled >+ runTestDisabled(); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = wtu.getExtensionWithKnownPrefixes(gl, "WEBGL_compressed_texture_s3tc"); >+ if (!ext) { >+ testPassed("No WEBGL_compressed_texture_s3tc support -- this is legal"); >+ runSupportedTest(false); >+ } else { >+ testPassed("Successfully enabled WEBGL_compressed_texture_s3tc extension"); >+ >+ runSupportedTest(true); >+ runTestExtension(); >+ } >+} >+ >+function runSupportedTest(extensionEnabled) { >+ var name = wtu.getSupportedExtensionWithKnownPrefixes(gl, "WEBGL_compressed_texture_s3tc"); >+ if (name !== undefined) { >+ if (extensionEnabled) { >+ testPassed("WEBGL_compressed_texture_s3tc listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("WEBGL_compressed_texture_s3tc listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("WEBGL_compressed_texture_s3tc not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("WEBGL_compressed_texture_s3tc not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+ >+function runTestDisabled() { >+ debug("Testing binding enum with extension disabled"); >+ >+ supportedFormats = gl.getParameter(gl.COMPRESSED_TEXTURE_FORMATS); >+ shouldBe("supportedFormats", "[]"); >+} >+ >+function formatExists(format, supportedFormats) { >+ for (var ii = 0; ii < supportedFormats.length; ++ii) { >+ if (format == supportedFormats[ii]) { >+ testPassed("supported format " + formatToString(format) + " is exists"); >+ return; >+ } >+ } >+ testFailed("supported format " + formatToString(format) + " does not exist"); >+} >+ >+function formatToString(format) { >+ for (var p in ext) { >+ if (ext[p] == format) { >+ return p; >+ } >+ } >+ return "0x" + format.toString(16); >+} >+ >+function runTestExtension() { >+ debug("Testing WEBGL_compressed_texture_s3tc"); >+ >+ // check that all format enums exist. >+ for (name in validFormats) { >+ var expected = "0x" + validFormats[name].toString(16); >+ var actual = "ext['" + name + "']"; >+ shouldBe(actual, expected); >+ } >+ >+ supportedFormats = gl.getParameter(gl.COMPRESSED_TEXTURE_FORMATS); >+ // There should be exactly 4 formats for both WebGL 1.0 and WebGL 2.0. >+ shouldBe("supportedFormats.length", "4"); >+ >+ // check that all 4 formats exist >+ for (var name in validFormats.length) { >+ formatExists(validFormats[name], supportedFormats); >+ } >+ >+ // Test each format >+ testDXT1_RGB(); >+ testDXT1_RGBA(); >+ testDXT3_RGBA(); >+ testDXT5_RGBA(); >+} >+ >+function testDXT1_RGB() { >+ var tests = [ >+ { width: 4, >+ height: 4, >+ channels: 3, >+ data: img_4x4_rgb_dxt1, >+ format: ext.COMPRESSED_RGB_S3TC_DXT1_EXT, >+ hasAlpha: false, >+ }, >+ { width: 8, >+ height: 8, >+ channels: 3, >+ data: img_8x8_rgb_dxt1, >+ format: ext.COMPRESSED_RGB_S3TC_DXT1_EXT, >+ hasAlpha: false, >+ subX0: 0, >+ subY0: 0, >+ subWidth: 4, >+ subHeight: 4, >+ subData: img_4x4_rgb_dxt1 >+ } >+ ]; >+ testDXTTextures(tests); >+} >+ >+function testDXT1_RGBA() { >+ var tests = [ >+ { width: 4, >+ height: 4, >+ channels: 4, >+ data: img_4x4_rgba_dxt1, >+ format: ext.COMPRESSED_RGBA_S3TC_DXT1_EXT, >+ // This is a special case -- the texture is still opaque >+ // though it's RGBA. >+ hasAlpha: false, >+ }, >+ { width: 8, >+ height: 8, >+ channels: 4, >+ data: img_8x8_rgba_dxt1, >+ format: ext.COMPRESSED_RGBA_S3TC_DXT1_EXT, >+ // This is a special case -- the texture is still opaque >+ // though it's RGBA. >+ } >+ ]; >+ testDXTTextures(tests); >+} >+ >+function testDXT3_RGBA() { >+ var tests = [ >+ { width: 4, >+ height: 4, >+ channels: 4, >+ data: img_4x4_rgba_dxt3, >+ format: ext.COMPRESSED_RGBA_S3TC_DXT3_EXT, >+ hasAlpha: true, >+ }, >+ { width: 8, >+ height: 8, >+ channels: 4, >+ data: img_8x8_rgba_dxt3, >+ format: ext.COMPRESSED_RGBA_S3TC_DXT3_EXT, >+ hasAlpha: true, >+ subX0: 0, >+ subY0: 0, >+ subWidth: 4, >+ subHeight: 4, >+ subData: img_4x4_rgba_dxt3 >+ } >+ ]; >+ testDXTTextures(tests); >+} >+ >+function testDXT5_RGBA() { >+ var tests = [ >+ { width: 4, >+ height: 4, >+ channels: 4, >+ data: img_4x4_rgba_dxt5, >+ format: ext.COMPRESSED_RGBA_S3TC_DXT5_EXT, >+ hasAlpha: true, >+ }, >+ { width: 8, >+ height: 8, >+ channels: 4, >+ data: img_8x8_rgba_dxt5, >+ format: ext.COMPRESSED_RGBA_S3TC_DXT5_EXT, >+ hasAlpha: true, >+ subX0: 0, >+ subY0: 0, >+ subWidth: 4, >+ subHeight: 4, >+ subData: img_4x4_rgba_dxt5 >+ } >+ ]; >+ testDXTTextures(tests); >+} >+ >+function testDXTTextures(tests) { >+ debug("<hr/>"); >+ for (var ii = 0; ii < tests.length; ++ii) { >+ testDXTTexture(tests[ii], false); >+ if (contextVersion >= 2) { >+ debug("<br/>"); >+ testDXTTexture(tests[ii], true); >+ } >+ } >+} >+ >+function uncompressDXTBlock( >+ destBuffer, destX, destY, destWidth, src, srcOffset, format) { >+ function make565(src, offset) { >+ return src[offset + 0] + src[offset + 1] * 256; >+ } >+ function make8888From565(c) { >+ return [ >+ Math.floor(((c >> 11) & 0x1F) * 255 / 31), >+ Math.floor(((c >> 5) & 0x3F) * 255 / 63), >+ Math.floor(((c >> 0) & 0x1F) * 255 / 31), >+ 255 >+ ]; >+ } >+ function mix(mult, c0, c1, div) { >+ var r = []; >+ for (var ii = 0; ii < c0.length; ++ii) { >+ r[ii] = Math.floor((c0[ii] * mult + c1[ii]) / div); >+ } >+ return r; >+ } >+ var isDXT1 = format == ext.COMPRESSED_RGB_S3TC_DXT1_EXT || >+ format == ext.COMPRESSED_RGBA_S3TC_DXT1_EXT; >+ var colorOffset = srcOffset + (isDXT1 ? 0 : 8); >+ var color0 = make565(src, colorOffset + 0); >+ var color1 = make565(src, colorOffset + 2); >+ var c0gtc1 = color0 > color1 || !isDXT1; >+ var rgba0 = make8888From565(color0); >+ var rgba1 = make8888From565(color1); >+ var colors = [ >+ rgba0, >+ rgba1, >+ c0gtc1 ? mix(2, rgba0, rgba1, 3) : mix(1, rgba0, rgba1, 2), >+ c0gtc1 ? mix(2, rgba1, rgba0, 3) : [0, 0, 0, 255] >+ ]; >+ >+ // yea I know there is a lot of math in this inner loop. >+ // so sue me. >+ for (var yy = 0; yy < 4; ++yy) { >+ var pixels = src[colorOffset + 4 + yy]; >+ for (var xx = 0; xx < 4; ++xx) { >+ var dstOff = ((destY + yy) * destWidth + destX + xx) * 4; >+ var code = (pixels >> (xx * 2)) & 0x3; >+ var srcColor = colors[code]; >+ var alpha; >+ switch (format) { >+ case ext.COMPRESSED_RGB_S3TC_DXT1_EXT: >+ alpha = 255; >+ break; >+ case ext.COMPRESSED_RGBA_S3TC_DXT1_EXT: >+ alpha = (code == 3 && !c0gtc1) ? 0 : 255; >+ break; >+ case ext.COMPRESSED_RGBA_S3TC_DXT3_EXT: >+ { >+ var alpha0 = src[srcOffset + yy * 2 + Math.floor(xx / 2)]; >+ var alpha1 = (alpha0 >> ((xx % 2) * 4)) & 0xF; >+ alpha = alpha1 | (alpha1 << 4); >+ } >+ break; >+ case ext.COMPRESSED_RGBA_S3TC_DXT5_EXT: >+ { >+ var alpha0 = src[srcOffset + 0]; >+ var alpha1 = src[srcOffset + 1]; >+ var alphaOff = Math.floor(yy / 2) * 3 + 2; >+ var alphaBits = >+ src[srcOffset + alphaOff + 0] + >+ src[srcOffset + alphaOff + 1] * 256 + >+ src[srcOffset + alphaOff + 2] * 65536; >+ var alphaShift = (yy % 2) * 12 + xx * 3; >+ var alphaCode = (alphaBits >> alphaShift) & 0x7; >+ if (alpha0 > alpha1) { >+ switch (alphaCode) { >+ case 0: >+ alpha = alpha0; >+ break; >+ case 1: >+ alpha = alpha1; >+ break; >+ default: >+ alpha = ((8 - alphaCode) * alpha0 + (alphaCode - 1) * alpha1) / 7; >+ break; >+ } >+ } else { >+ switch (alphaCode) { >+ case 0: >+ alpha = alpha0; >+ break; >+ case 1: >+ alpha = alpha1; >+ break; >+ case 6: >+ alpha = 0; >+ break; >+ case 7: >+ alpha = 255; >+ break; >+ default: >+ alpha = ((6 - alphaCode) * alpha0 + (alphaCode - 1) * alpha1) / 5; >+ break; >+ } >+ } >+ } >+ break; >+ default: >+ throw "bad format"; >+ } >+ destBuffer[dstOff + 0] = srcColor[0]; >+ destBuffer[dstOff + 1] = srcColor[1]; >+ destBuffer[dstOff + 2] = srcColor[2]; >+ destBuffer[dstOff + 3] = alpha; >+ } >+ } >+} >+ >+function getBlockSize(format) { >+ var isDXT1 = format == ext.COMPRESSED_RGB_S3TC_DXT1_EXT || >+ format == ext.COMPRESSED_RGBA_S3TC_DXT1_EXT; >+ return isDXT1 ? 8 : 16; >+} >+ >+function uncompressDXT(width, height, data, format) { >+ if (width % 4 || height % 4) throw "bad width or height"; >+ >+ var dest = new Uint8Array(width * height * 4); >+ var blocksAcross = width / 4; >+ var blocksDown = height / 4; >+ var blockSize = getBlockSize(format); >+ for (var yy = 0; yy < blocksDown; ++yy) { >+ for (var xx = 0; xx < blocksAcross; ++xx) { >+ uncompressDXTBlock( >+ dest, xx * 4, yy * 4, width, data, >+ (yy * blocksAcross + xx) * blockSize, format); >+ } >+ } >+ return dest; >+} >+ >+function uncompressDXTIntoSubRegion(width, height, subX0, subY0, subWidth, subHeight, data, format) >+{ >+ if (width % 4 || height % 4 || subX0 % 4 || subY0 % 4 || subWidth % 4 || subHeight % 4) >+ throw "bad dimension"; >+ >+ var dest = new Uint8Array(width * height * 4); >+ var blocksAcross = subWidth / 4; >+ var blocksDown = subHeight / 4; >+ var blockSize = getBlockSize(format); >+ for (var yy = 0; yy < blocksDown; ++yy) { >+ for (var xx = 0; xx < blocksAcross; ++xx) { >+ uncompressDXTBlock( >+ dest, subX0 + xx * 4, subY0 + yy * 4, width, data, >+ (yy * blocksAcross + xx) * blockSize, format); >+ } >+ } >+ return dest; >+} >+ >+function copyRect(data, srcX, srcY, dstX, dstY, width, height, stride) { >+ var bytesPerLine = width * 4; >+ var srcOffset = srcX * 4 + srcY * stride; >+ var dstOffset = dstX * 4 + dstY * stride; >+ for (; height > 0; --height) { >+ for (var ii = 0; ii < bytesPerLine; ++ii) { >+ data[dstOffset + ii] = data[srcOffset + ii]; >+ } >+ srcOffset += stride; >+ dstOffset += stride; >+ } >+} >+ >+function testDXTTexture(test, useTexStorage) { >+ var data = new Uint8Array(test.data); >+ var width = test.width; >+ var height = test.height; >+ var format = test.format; >+ >+ var uncompressedData = uncompressDXT(width, height, data, format); >+ >+ canvas.width = width; >+ canvas.height = height; >+ gl.viewport(0, 0, width, height); >+ debug("testing " + formatToString(format) + " " + width + "x" + height + >+ (useTexStorage ? " via texStorage2D" : " via compressedTexImage2D")); >+ >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+ if (useTexStorage) { >+ if (test.subData) { >+ var uncompressedDataSub = uncompressDXTIntoSubRegion( >+ width, height, test.subX0, test.subY0, test.subWidth, test.subHeight, test.subData, format); >+ var tex1 = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex1); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+ >+ gl.texStorage2D(gl.TEXTURE_2D, 1, format, width, height); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "allocating compressed texture via texStorage2D"); >+ gl.compressedTexSubImage2D( >+ gl.TEXTURE_2D, 0, test.subX0, test.subY0, test.subWidth, test.subHeight, format, test.subData); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "uploading compressed texture data via compressedTexSubImage2D"); >+ >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawing unit quad 1"); >+ compareRect(width, height, test.channels, uncompressedDataSub, "NEAREST"); >+ >+ // Clean up and recover >+ gl.deleteTexture(tex1); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ } >+ >+ gl.texStorage2D(gl.TEXTURE_2D, 1, format, width, height); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "allocating compressed texture via texStorage2D"); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawing unit quad"); >+ var clearColor = (test.hasAlpha ? [0, 0, 0, 0] : [0, 0, 0, 255]); >+ wtu.checkCanvas(gl, clearColor, "texture should be initialized to black"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "uploading compressed texture data via compressedTexSubImage2D"); >+ } else { >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "uploading compressed texture"); >+ } >+ gl.generateMipmap(gl.TEXTURE_2D); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "trying to generate mipmaps from compressed texture"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "after clearing generateMipmap error"); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawing unit quad 1"); >+ compareRect(width, height, test.channels, uncompressedData, "NEAREST"); >+ // Test again with linear filtering. >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawing unit quad 2"); >+ compareRect(width, height, test.channels, uncompressedData, "LINEAR"); >+ >+ if (!useTexStorage) { >+ // It's not allowed to redefine textures defined via texStorage2D. >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height, 1, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "non 0 border"); >+ >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width + 4, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height + 4, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width - 4, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height - 4, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width - 1, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width - 2, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height - 1, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, width, height - 2, 0, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ >+ if (width == 4) { >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 1, format, 1, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "valid dimensions for level > 0"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 1, format, 2, height, 0, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "valid dimensions for level > 0"); >+ } >+ if (height == 4) { >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 1, format, width, 1, 0, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "valid dimensions for level > 0"); >+ gl.compressedTexImage2D(gl.TEXTURE_2D, 1, format, width, 2, 0, data); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "valid dimensions for level > 0"); >+ } >+ } >+ >+ // pick a wrong format that uses the same amount of data. >+ var wrongFormat; >+ switch (format) { >+ case ext.COMPRESSED_RGB_S3TC_DXT1_EXT: >+ wrongFormat = ext.COMPRESSED_RGBA_S3TC_DXT1_EXT; >+ break; >+ case ext.COMPRESSED_RGBA_S3TC_DXT1_EXT: >+ wrongFormat = ext.COMPRESSED_RGB_S3TC_DXT1_EXT; >+ break; >+ case ext.COMPRESSED_RGBA_S3TC_DXT3_EXT: >+ wrongFormat = ext.COMPRESSED_RGBA_S3TC_DXT5_EXT; >+ break; >+ case ext.COMPRESSED_RGBA_S3TC_DXT5_EXT: >+ wrongFormat = ext.COMPRESSED_RGBA_S3TC_DXT3_EXT; >+ break; >+ } >+ >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height, wrongFormat, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "format does not match"); >+ >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 4, 0, width, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "dimension out of range"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 4, width, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "dimension out of range"); >+ >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width + 4, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height + 4, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width - 4, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height - 4, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "data size does not match dimensions"); >+ >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width - 1, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width - 2, height, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height - 1, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height - 2, format, data); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid dimensions"); >+ >+ var subData = new Uint8Array(data.buffer, 0, getBlockSize(format)); >+ >+ if (width == 8 && height == 8) { >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 1, 0, 4, 4, format, subData); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid offset"); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 1, 4, 4, format, subData); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "invalid offset"); >+ } >+ >+ var stride = width * 4; >+ for (var yoff = 0; yoff < height; yoff += 4) { >+ for (var xoff = 0; xoff < width; xoff += 4) { >+ copyRect(uncompressedData, 0, 0, xoff, yoff, 4, 4, stride); >+ gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, xoff, yoff, 4, 4, format, subData); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "uploading compressed texture"); >+ // First test NEAREST filtering. >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+ wtu.clearAndDrawUnitQuad(gl); >+ compareRect(width, height, test.channels, uncompressedData, "NEAREST"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawing unit quad"); >+ // Next test LINEAR filtering. >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "drawing unit quad"); >+ compareRect(width, height, test.channels, uncompressedData, "LINEAR"); >+ } >+ } >+} >+ >+function insertImg(element, caption, img) { >+ var div = document.createElement("div"); >+ div.appendChild(img); >+ var label = document.createElement("div"); >+ label.appendChild(document.createTextNode(caption)); >+ div.appendChild(label); >+ element.appendChild(div); >+} >+ >+function makeImage(imageWidth, imageHeight, data, alpha) { >+ var scale = 8; >+ var c = document.createElement("canvas"); >+ c.width = imageWidth * scale; >+ c.height = imageHeight * scale; >+ var ctx = c.getContext("2d"); >+ for (var yy = 0; yy < imageHeight; ++yy) { >+ for (var xx = 0; xx < imageWidth; ++xx) { >+ var offset = (yy * imageWidth + xx) * 4; >+ ctx.fillStyle = "rgba(" + >+ data[offset + 0] + "," + >+ data[offset + 1] + "," + >+ data[offset + 2] + "," + >+ (alpha ? data[offset + 3] / 255 : 1) + ")"; >+ ctx.fillRect(xx * scale, yy * scale, scale, scale); >+ } >+ } >+ return wtu.makeImageFromCanvas(c); >+} >+ >+function compareRect(width, height, channels, expectedData, filteringMode) { >+ var actual = new Uint8Array(width * height * 4); >+ gl.readPixels(0, 0, width, height, gl.RGBA, gl.UNSIGNED_BYTE, actual); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "reading back pixels"); >+ >+ var div = document.createElement("div"); >+ div.className = "testimages"; >+ insertImg(div, "expected", makeImage(width, height, expectedData, channels == 4)); >+ insertImg(div, "actual", makeImage(width, height, actual, channels == 4)); >+ div.appendChild(document.createElement('br')); >+ document.getElementById("console").appendChild(div); >+ >+ var failed = false; >+ for (var yy = 0; yy < height; ++yy) { >+ for (var xx = 0; xx < width; ++xx) { >+ var offset = (yy * width + xx) * 4; >+ var expected = [ >+ expectedData[offset + 0], >+ expectedData[offset + 1], >+ expectedData[offset + 2], >+ (channels == 3 ? 255 : expectedData[offset + 3]) >+ ]; >+ for (var jj = 0; jj < 4; ++jj) { >+ if (actual[offset + jj] != expected[jj]) { >+ failed = true; >+ var was = actual[offset + 0].toString(); >+ for (var j = 1; j < 4; ++j) { >+ was += "," + actual[offset + j]; >+ } >+ testFailed('at (' + xx + ', ' + yy + >+ ') expected: ' + expected + ' was ' + was); >+ } >+ } >+ } >+ } >+ if (!failed) { >+ testPassed("texture rendered correctly with " + filteringMode + " filtering"); >+ } >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-size-limit.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-size-limit.html >new file mode 100644 >index 00000000000..138a4251489 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-size-limit.html >@@ -0,0 +1,56 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL compressed texture size limit conformance test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/webgl-compressed-texture-size-limit.js"></script> >+</head> >+<body> >+<canvas id="example" width="32" height="32" style="width: 40px; height: 40px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+enableJSTestPreVerboseLogging(); >+description("Checks size limit of the webgl compressed textures") >+ >+// ArrayBuffers can be at most 4GB (minus 1 byte), but any allocations larger than 1 GB are unreliable in practice. So limit allocations to 1 GB. >+// Textures that are wide in just one dimension can still be used to test max TEXTURE_2D size limit even if we can't allocate space for huge square textures. >+// Use a fairly conservative limit for positive test cube map size so OOM is avoided. >+runCompressedTextureSizeLimitTest(Math.pow(2, 30), 2048); >+ >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-debug-renderer-info.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-debug-renderer-info.html >new file mode 100644 >index 00000000000..a85c81cfe95 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-debug-renderer-info.html >@@ -0,0 +1,125 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL WebGL_debug_renderer_info Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" style="width: 1px; height: 1px;"> </canvas> >+<div id="console"></div> >+<!-- Shaders for testing standard derivatives --> >+ >+<script> >+"use strict"; >+description("This test verifies the functionality of the WEBGL_debug_renderer_info extension, if it is available."); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("canvas"); >+var ext = null; >+var vao = null; >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ // Run tests with extension disabled >+ runTestDisabled(); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = gl.getExtension("WEBGL_debug_renderer_info"); >+ if (!ext) { >+ testPassed("No WEBGL_debug_renderer_info support -- this is legal"); >+ >+ runSupportedTest(false); >+ } else { >+ testPassed("Successfully enabled WEBGL_debug_renderer_info extension"); >+ >+ runSupportedTest(true); >+ runTestEnabled(); >+ } >+} >+ >+function runSupportedTest(extensionEnabled) { >+ var supported = gl.getSupportedExtensions(); >+ if (supported.indexOf("WEBGL_debug_renderer_info") >= 0) { >+ if (extensionEnabled) { >+ testPassed("WEBGL_debug_renderer_info listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("WEBGL_debug_renderer_info listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("WEBGL_debug_renderer_info not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("WEBGL_debug_renderer_info not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+function runTestDisabled() { >+ debug("Testing enums with extension disabled"); >+ >+ // Use the constants directly as we don't have the extension >+ >+ var UNMASKED_VENDOR_WEBGL = 0x9245; >+ gl.getParameter(UNMASKED_VENDOR_WEBGL); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "UNMASKED_VENDOR_WEBGL should not be queryable if extension is disabled"); >+ >+ var UNMASKED_RENDERER_WEBGL = 0x9246; >+ gl.getParameter(UNMASKED_RENDERER_WEBGL); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "UNMASKED_RENDERER_WEBGL should not be queryable if extension is disabled"); >+} >+ >+function runTestEnabled() { >+ debug("Testing enums with extension enabled"); >+ >+ shouldBe("ext.UNMASKED_VENDOR_WEBGL", "0x9245"); >+ gl.getParameter(ext.UNMASKED_VENDOR_WEBGL); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "UNMASKED_VENDOR_WEBGL query should succeed if extension is enable"); >+ >+ shouldBe("ext.UNMASKED_RENDERER_WEBGL", "0x9246"); >+ gl.getParameter(ext.UNMASKED_RENDERER_WEBGL); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "UNMASKED_RENDERER_WEBGL query should succeed if extension is enable"); >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-debug-shaders.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-debug-shaders.html >new file mode 100644 >index 00000000000..c0c396c0075 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-debug-shaders.html >@@ -0,0 +1,165 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL WebGL_debug_shaders Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" style="width: 1px; height: 1px;"> </canvas> >+<div id="console"></div> >+<!-- Shaders for testing standard derivatives --> >+ >+<script> >+"use strict"; >+description("This test verifies the functionality of the WEBGL_debug_shaders extension, if it is available."); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("canvas"); >+var ext = null; >+var shader = null; >+var program = null; >+var info = null; >+var translatedSource; >+var newTranslatedSource; >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = gl.getExtension("WEBGL_debug_shaders"); >+ if (!ext) { >+ testPassed("No WEBGL_debug_shaders support -- this is legal"); >+ >+ runSupportedTest(false); >+ } else { >+ testPassed("Successfully enabled WEBGL_debug_shaders extension"); >+ >+ runSupportedTest(true); >+ runTestEnabled(); >+ } >+} >+ >+function runSupportedTest(extensionEnabled) { >+ var supported = gl.getSupportedExtensions(); >+ if (supported.indexOf("WEBGL_debug_shaders") >= 0) { >+ if (extensionEnabled) { >+ testPassed("WEBGL_debug_shaders listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("WEBGL_debug_shaders listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("WEBGL_debug_shaders not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("WEBGL_debug_shaders not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+function runTestEnabled() { >+ debug("Testing function with extension enabled"); >+ >+ var shaderInfos = [ >+ { >+ source: "void main() { gl_Position = vec4(1.0, 0.0, 0.0, 1.0); }", >+ type: gl.VERTEX_SHADER >+ }, >+ { >+ source: "void main() { gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); }", >+ type: gl.FRAGMENT_SHADER >+ } >+ ]; >+ >+ // Do this twice to test for caching issues. >+ for (var jj = 0; jj < 2; ++jj) { >+ debug("pass:" + (jj + 1)); >+ program = gl.createProgram(); >+ for (var ii = 0; ii < shaderInfos.length; ++ii) { >+ info = shaderInfos[ii]; >+ >+ shader = gl.createShader(info.type); >+ >+ // if no source has been defined or compileShader() has not been called, >+ // getTranslatedShaderSource() should return an empty string. >+ shouldBe("ext.getTranslatedShaderSource(shader)", '""'); >+ gl.shaderSource(shader, info.source); >+ shouldBe("ext.getTranslatedShaderSource(shader)", '""'); >+ gl.compileShader(shader); >+ shouldBeTrue("gl.getShaderParameter(shader, gl.COMPILE_STATUS)"); >+ translatedSource = ext.getTranslatedShaderSource(shader); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "No gl error should occur"); >+ if (translatedSource && translatedSource.length > 0) { >+ testPassed("Successfully called getTranslatedShaderSource()"); >+ } else { >+ testFailed("Calling getTranslatedShaderSource() failed"); >+ } >+ gl.attachShader(program, shader); >+ } >+ gl.linkProgram(program); >+ shouldBeTrue("gl.getProgramParameter(program, gl.LINK_STATUS)"); >+ } >+ >+ // Test changing the source. Make sure we get the correct source each time. >+ debug("test changing source"); >+ shader = gl.createShader(gl.FRAGMENT_SHADER); >+ gl.shaderSource(shader, "void main() { gl_FragColor = vec4(gl_FragCoord.x, 0.0, 0.0, 1.0); }"); >+ gl.compileShader(shader); >+ shouldBeTrue("gl.getShaderParameter(shader, gl.COMPILE_STATUS)"); >+ shouldThrow("ext.getTranslatedShaderSource(null)"); >+ translatedSource = ext.getTranslatedShaderSource(shader); >+ shouldBeTrue('translatedSource && translatedSource.indexOf("gl_FragCoord") >= 0'); >+ // change the source but don't compile. >+ gl.shaderSource(shader, "void main() { gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); }"); >+ // the source should NOT change. It should be the same as the old source. >+ newTranslatedSource = ext.getTranslatedShaderSource(shader); >+ shouldBe('newTranslatedSource', 'translatedSource'); >+ // now compile. >+ gl.compileShader(shader); >+ shouldBeTrue("gl.getShaderParameter(shader, gl.COMPILE_STATUS)"); >+ // the source should have change. >+ newTranslatedSource = ext.getTranslatedShaderSource(shader); >+ shouldNotBe('newTranslatedSource', 'translatedSource'); >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-depth-texture.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-depth-texture.html >new file mode 100644 >index 00000000000..688d348b9f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-depth-texture.html >@@ -0,0 +1,355 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<title>WebGL WEBGL_depth_texture Conformance Tests</title> >+</head> >+<body> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+void main() >+{ >+ gl_Position = a_position; >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+uniform sampler2D u_texture; >+uniform vec2 u_resolution; >+void main() >+{ >+ vec2 texcoord = gl_FragCoord.xy / u_resolution; >+ gl_FragColor = texture2D(u_texture, texcoord); >+} >+</script> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" width="8" height="8" style="width: 8px; height: 8px;"></canvas> >+<script> >+"use strict"; >+description("This test verifies the functionality of the WEBGL_depth_texture extension, if it is available."); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas, {antialias: false}); >+var program = wtu.setupTexturedQuad(gl); >+var ext = null; >+var vao = null; >+var tex; >+var name; >+var supportedFormats; >+var canvas2; >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ // Run tests with extension disabled >+ runTestDisabled(); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = wtu.getExtensionWithKnownPrefixes(gl, "WEBGL_depth_texture"); >+ if (!ext) { >+ testPassed("No WEBGL_depth_texture support -- this is legal"); >+ runSupportedTest(false); >+ } else { >+ testPassed("Successfully enabled WEBGL_depth_texture extension"); >+ >+ runSupportedTest(true); >+ runTestExtension(true); >+ runTestExtension(false); >+ } >+} >+ >+function runSupportedTest(extensionEnabled) { >+ var name = wtu.getSupportedExtensionWithKnownPrefixes(gl, "WEBGL_depth_texture"); >+ if (name !== undefined) { >+ if (extensionEnabled) { >+ testPassed("WEBGL_depth_texture listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("WEBGL_depth_texture listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("WEBGL_depth_texture not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("WEBGL_depth_texture not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+ >+function runTestDisabled() { >+ debug("Testing binding enum with extension disabled"); >+ >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ wtu.shouldGenerateGLError(gl, [gl.INVALID_ENUM, gl.INVALID_VALUE], >+ 'gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_COMPONENT, 1, 1, 0, gl.DEPTH_COMPONENT, gl.UNSIGNED_SHORT, null)'); >+ wtu.shouldGenerateGLError(gl, [gl.INVALID_ENUM, gl.INVALID_VALUE], >+ 'gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_COMPONENT, 1, 1, 0, gl.DEPTH_COMPONENT, gl.UNSIGNED_INT, null)'); >+} >+ >+ >+function dumpIt(gl, res, msg) { >+ return; // comment out to debug >+ debug(msg); >+ var actualPixels = new Uint8Array(res * res * 4); >+ gl.readPixels(0, 0, res, res, gl.RGBA, gl.UNSIGNED_BYTE, actualPixels); >+ >+ for (var yy = 0; yy < res; ++yy) { >+ var strs = []; >+ for (var xx = 0; xx < res; ++xx) { >+ var actual = (yy * res + xx) * 4; >+ strs.push("(" + actualPixels[actual] + "," + actualPixels[actual+1] + "," + actualPixels[actual + 2] + "," + actualPixels[actual + 3] + ")"); >+ } >+ debug(strs.join(" ")); >+ } >+} >+function runTestExtension(unpackFlipY) { >+ debug("Testing WEBGL_depth_texture. UNPACK_FLIP_Y_WEBGL: " + unpackFlipY); >+ >+ var res = 8; >+ >+ // make canvas for testing. >+ canvas2 = document.createElement("canvas"); >+ canvas2.width = res; >+ canvas2.height = res; >+ var ctx = canvas2.getContext("2d"); >+ ctx.fillStyle = "blue"; >+ ctx.fillRect(0, 0, canvas2.width, canvas2.height); >+ >+ var program = wtu.setupProgram(gl, ['vshader', 'fshader'], ['a_position']); >+ gl.useProgram(program); >+ gl.uniform2f(gl.getUniformLocation(program, "u_resolution"), res, res); >+ >+ var buffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buffer); >+ gl.bufferData( >+ gl.ARRAY_BUFFER, >+ new Float32Array( >+ [ 1, 1, 1, >+ -1, 1, 0, >+ -1, -1, -1, >+ 1, 1, 1, >+ -1, -1, -1, >+ 1, -1, 0, >+ ]), >+ gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(0); >+ gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+ >+ gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, unpackFlipY); >+ >+ var types = [ >+ {obj: 'gl', attachment: 'DEPTH_ATTACHMENT', format: 'DEPTH_COMPONENT', type: 'UNSIGNED_SHORT', data: 'new Uint16Array(1)', depthBits: "16"}, >+ {obj: 'gl', attachment: 'DEPTH_ATTACHMENT', format: 'DEPTH_COMPONENT', type: 'UNSIGNED_INT', data: 'new Uint32Array(1)', depthBits: "16"}, >+ {obj: 'ext', attachment: 'DEPTH_STENCIL_ATTACHMENT', format: 'DEPTH_STENCIL', type: 'UNSIGNED_INT_24_8_WEBGL', data: 'new Uint32Array(1)', depthBits: "24", stencilBits: "8"} >+ ]; >+ >+ for (var ii = 0; ii < types.length; ++ii) { >+ var typeInfo = types[ii]; >+ var type = typeInfo.type; >+ var typeStr = typeInfo.obj + '.' + type; >+ >+ debug(""); >+ debug("testing: " + type); >+ >+ // check that cubemaps are not allowed. >+ var cubeTex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_CUBE_MAP, cubeTex); >+ var targets = [ >+ 'TEXTURE_CUBE_MAP_POSITIVE_X', >+ 'TEXTURE_CUBE_MAP_NEGATIVE_X', >+ 'TEXTURE_CUBE_MAP_POSITIVE_Y', >+ 'TEXTURE_CUBE_MAP_NEGATIVE_Y', >+ 'TEXTURE_CUBE_MAP_POSITIVE_Z', >+ 'TEXTURE_CUBE_MAP_NEGATIVE_Z' >+ ]; >+ for (var tt = 0; tt < targets.length; ++tt) { >+ wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, 'gl.texImage2D(gl.' + targets[ii] + ', 0, gl.' + typeInfo.format + ', 1, 1, 0, gl.' + typeInfo.format + ', ' + typeStr + ', null)'); >+ } >+ >+ // The WebGL_depth_texture extension supports both NEAREST and >+ // LINEAR filtering for depth textures, even though LINEAR >+ // doesn't have much meaning, and isn't supported in WebGL >+ // 2.0. Still, test both. >+ var filterModes = [ >+ 'LINEAR', >+ 'NEAREST' >+ ]; >+ >+ for (var jj = 0; jj < filterModes.length; ++jj) { >+ debug('testing ' + filterModes[jj] + ' filtering'); >+ var filterMode = gl[filterModes[jj]]; >+ >+ // check 2d textures. >+ tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, filterMode); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, filterMode); >+ >+ // test level > 0 >+ wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, 'gl.texImage2D(gl.TEXTURE_2D, 1, gl.' + typeInfo.format + ', 1, 1, 0, gl.' + typeInfo.format + ', ' + typeStr + ', null)'); >+ >+ // test with data >+ wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, 'gl.texImage2D(gl.TEXTURE_2D, 0, gl.' + typeInfo.format + ', 1, 1, 0, gl.' + typeInfo.format + ', ' + typeStr + ', ' + typeInfo.data + ')'); >+ >+ // test with canvas >+ wtu.shouldGenerateGLError(gl, [gl.INVALID_VALUE, gl.INVALID_ENUM, gl.INVALID_OPERATION], 'gl.texImage2D(gl.TEXTURE_2D, 0, gl.' + typeInfo.format + ', gl.' + typeInfo.format + ', ' + typeStr + ', canvas2)'); >+ >+ // test copyTexImage2D >+ wtu.shouldGenerateGLError(gl, [gl.INVALID_ENUM, gl.INVALID_OPERATION], 'gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.' + typeInfo.format + ', 0, 0, 1, 1, 0)'); >+ >+ // test real thing >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, 'gl.texImage2D(gl.TEXTURE_2D, 0, gl.' + typeInfo.format + ', ' + res + ', ' + res + ', 0, gl.' + typeInfo.format + ', ' + typeStr + ', null)'); >+ >+ // test texSubImage2D >+ wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, 'gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 1, 1, gl.' + typeInfo.format + ', ' + typeStr + ', ' + typeInfo.data + ')'); >+ >+ // test copyTexSubImage2D >+ wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, 'gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 0, 0, 1, 1)'); >+ >+ // test generateMipmap >+ wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, 'gl.generateMipmap(gl.TEXTURE_2D)'); >+ >+ var fbo = gl.createFramebuffer(); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl[typeInfo.attachment], gl.TEXTURE_2D, tex, 0); >+ >+ // Ensure DEPTH_BITS returns >= 16 bits for UNSIGNED_SHORT and UNSIGNED_INT, >= 24 UNSIGNED_INT_24_8_WEBGL. >+ // If there is stencil, ensure STENCIL_BITS reports >= 8 for UNSIGNED_INT_24_8_WEBGL. >+ shouldBeGreaterThanOrEqual('gl.getParameter(gl.DEPTH_BITS)', typeInfo.depthBits); >+ if (typeInfo.stencilBits === undefined) { >+ shouldBe('gl.getParameter(gl.STENCIL_BITS)', '0'); >+ } else { >+ shouldBeGreaterThanOrEqual('gl.getParameter(gl.STENCIL_BITS)', typeInfo.stencilBits); >+ } >+ >+ // TODO: remove this check if the spec is updated to require these combinations to work. >+ if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE) >+ { >+ // try adding a color buffer. >+ var colorTex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, colorTex); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, res, res, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, colorTex, 0); >+ } >+ >+ shouldBe('gl.checkFramebufferStatus(gl.FRAMEBUFFER)', 'gl.FRAMEBUFFER_COMPLETE'); >+ >+ // use the default texture to render with while we return to the depth texture. >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ >+ // render the z-quad >+ gl.enable(gl.DEPTH_TEST); >+ gl.clearColor(1, 0, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ gl.drawArrays(gl.TRIANGLES, 0, 6); >+ >+ dumpIt(gl, res, "--first--"); >+ >+ // render the depth texture. >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.clearColor(0, 0, 1, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ gl.drawArrays(gl.TRIANGLES, 0, 6); >+ >+ var actualPixels = new Uint8Array(res * res * 4); >+ gl.readPixels(0, 0, res, res, gl.RGBA, gl.UNSIGNED_BYTE, actualPixels); >+ >+ dumpIt(gl, res, "--depth--"); >+ >+ // Check that each pixel's R value is less than that of the previous pixel >+ // in either direction. Basically verify we have a gradient. >+ var success = true; >+ for (var yy = 0; yy < res; ++yy) { >+ for (var xx = 0; xx < res; ++xx) { >+ var actual = (yy * res + xx) * 4; >+ var left = actual - 4; >+ var down = actual - res * 4; >+ >+ if (xx > 0) { >+ if (actualPixels[actual] <= actualPixels[left]) { >+ testFailed("actual(" + actualPixels[actual] + ") < left(" + actualPixels[left] + ")"); >+ success = false; >+ } >+ } >+ if (yy > 0) { >+ if (actualPixels[actual] <= actualPixels[down]) { >+ testFailed("actual(" + actualPixels[actual] + ") < down(" + actualPixels[down] + ")"); >+ success = false; >+ } >+ } >+ } >+ } >+ >+ // Check that bottom left corner is vastly different thatn top right. >+ if (actualPixels[(res * res - 1) * 4] - actualPixels[0] < 0xC0) { >+ testFailed("corners are not different enough"); >+ success = false; >+ } >+ >+ if (success) { >+ testPassed("depth texture rendered correctly."); >+ } >+ >+ // check limitations >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl[typeInfo.attachment], gl.TEXTURE_2D, null, 0); >+ var badAttachment = typeInfo.attachment == 'DEPTH_ATTACHMENT' ? 'DEPTH_STENCIL_ATTACHMENT' : 'DEPTH_ATTACHMENT'; >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, 'gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.' + badAttachment + ', gl.TEXTURE_2D, tex, 0)'); >+ shouldNotBe('gl.checkFramebufferStatus(gl.FRAMEBUFFER)', 'gl.FRAMEBUFFER_COMPLETE'); >+ wtu.shouldGenerateGLError(gl, gl.INVALID_FRAMEBUFFER_OPERATION, 'gl.clear(gl.DEPTH_BUFFER_BIT)'); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ shouldBe('gl.getError()', 'gl.NO_ERROR'); >+ } >+ } >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-broadcast-return.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-broadcast-return.html >new file mode 100644 >index 00000000000..41098926085 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-broadcast-return.html >@@ -0,0 +1,159 @@ >+<!-- >+ >+/* >+** Copyright (c) 2017 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL WEBGL_draw_buffers Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/webgl-draw-buffers-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" width="64" height="64"> </canvas> >+<div id="console"></div> >+<script id="fshaderRedWithReturn" type="x-shader/x-fragment"> >+#extension GL_EXT_draw_buffers : require >+precision mediump float; >+uniform float u_zero; >+void main() { >+ gl_FragColor = vec4(1,0,0,1); >+ if (u_zero < 1.0) { >+ return; >+ } >+ gl_FragColor = vec4(0,0,1,1); >+} >+</script> >+<script id="fshaderWithDiscard" type="x-shader/x-fragment"> >+#extension GL_EXT_draw_buffers : require >+precision mediump float; >+uniform float u_zero; >+void main() { >+ gl_FragColor = vec4(1,0,0,1); >+ if (u_zero < 1.0) { >+ discard; >+ } >+ gl_FragColor = vec4(0,0,1,1); >+} >+</script> >+<script> >+"use strict"; >+description("This test verifies gl_FragColor being broadcasted when using WEBGL_draw_buffers extension, if it is available."); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas); >+var ext = null; >+var drawBuffersUtils; >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = gl.getExtension("WEBGL_draw_buffers"); >+ if (!ext) { >+ testPassed("No WEBGL_draw_buffers support -- this is legal"); >+ } else { >+ testPassed("Successfully enabled WEBGL_draw_buffers extension"); >+ drawBuffersUtils = WebGLDrawBuffersUtils(gl, ext); >+ runDrawTests(); >+ } >+} >+ >+function runDrawTests() { >+ debug(""); >+ var fb = gl.createFramebuffer(); >+ >+ var maxUsable = drawBuffersUtils.getMaxUsableColorAttachments(); >+ var bufs = drawBuffersUtils.makeColorAttachmentArray(maxUsable); >+ >+ var width = 64; >+ var height = 64; >+ var attachments = []; >+ for (var ii = 0; ii < maxUsable; ++ii) { >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + ii, gl.TEXTURE_2D, tex, 0); >+ attachments.push({ >+ texture: tex >+ }); >+ } >+ >+ debug("test that gl_FragColor broadcasts if extension is enabled in fragment shader and fragment shader main returns in the middle"); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ ext.drawBuffersWEBGL(bufs); >+ var redProgramWithReturn = wtu.setupProgram(gl, [wtu.simpleVertexShader, "fshaderRedWithReturn"], ["vPosition"], undefined, true); >+ shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ gl.clearColor(0, 0, 0, 0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ gl.useProgram(redProgramWithReturn); >+ wtu.drawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "after draw"); >+ >+ drawBuffersUtils.checkAttachmentsForColor(attachments, [255, 0, 0, 255]); >+ >+ debug("test that none of the attachments are written in case the fragment shader discards"); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ ext.drawBuffersWEBGL(bufs); >+ var programWithDiscard = wtu.setupProgram(gl, [wtu.simpleVertexShader, "fshaderWithDiscard"], ["vPosition"], undefined, true); >+ gl.clearColor(0, 0, 0, 0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ gl.useProgram(programWithDiscard); >+ wtu.drawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "after draw"); >+ >+ drawBuffersUtils.checkAttachmentsForColor(attachments, [0, 0, 0, 0]); >+ >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ gl.deleteFramebuffer(fb); >+ attachments.forEach(function(attachment) { >+ gl.deleteTexture(attachment.texture); >+ }); >+ gl.deleteProgram(redProgramWithReturn); >+ gl.deleteProgram(programWithDiscard); >+} >+ >+var successfullyParsed = true; >+ >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-feedback-loop.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-feedback-loop.html >new file mode 100644 >index 00000000000..0dd7935f729 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-feedback-loop.html >@@ -0,0 +1,161 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Rendering and Sampling Feedback Loop Tests For WEBGL_draw_buffers Extension</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="8" height="8"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 aPosition; >+attribute vec2 aTexCoord; >+varying vec2 texCoord; >+void main() { >+ gl_Position = aPosition; >+ texCoord = aTexCoord; >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+#extension GL_EXT_draw_buffers : require >+precision mediump float; >+uniform sampler2D tex; >+varying vec2 texCoord; >+void main() { >+ gl_FragData[0] = texture2D(tex, texCoord); >+ gl_FragData[1] = texture2D(tex, texCoord); >+} >+</script> >+ >+<script> >+"use strict"; >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("example"); >+description("This test verifies the functionality of rendering to the same texture where it samples from."); >+ >+var gl = wtu.create3DContext(canvas); >+ >+var width = 8; >+var height = 8; >+var tex0; >+var tex1; >+var fbo; >+var ext; >+var program; >+var positionLoc; >+var texCoordLoc; >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ ext = gl.getExtension("WEBGL_draw_buffers"); >+ if (!ext) { >+ testPassed("No WEBGL_draw_buffers support -- this is legal"); >+ >+ finishTest(); >+ } else { >+ testPassed("Successfully enabled WEBGL_draw_buffers extension"); >+ >+ init(); >+ >+ // The sampling texture is bound to COLOR_ATTACHMENT1 during resource allocation >+ allocate_resource(); >+ >+ rendering_sampling_feedback_loop([gl.NONE, ext.COLOR_ATTACHMENT1_WEBGL], gl.INVALID_OPERATION); >+ rendering_sampling_feedback_loop([gl.COLOR_ATTACHMENT0, ext.COLOR_ATTACHMENT1_WEBGL], gl.INVALID_OPERATION); >+ rendering_sampling_feedback_loop([gl.COLOR_ATTACHMENT0, gl.NONE], gl.NO_ERROR); >+ } >+} >+ >+function init() { >+ program = wtu.setupProgram(gl, ['vshader', 'fshader'], ['aPosition', 'aTexCoord'], [0, 1]); >+ positionLoc = gl.getAttribLocation(program, "aPosition"); >+ texCoordLoc = gl.getAttribLocation(program, "aTexCoord"); >+ if (!program || positionLoc < 0 || texCoordLoc < 0) { >+ testFailed("Set up program failed"); >+ return; >+ } >+ testPassed("Set up program succeeded"); >+ >+ wtu.setupUnitQuad(gl, 0, 1); >+ gl.viewport(0, 0, width, height); >+} >+ >+function allocate_resource() { >+ tex0 = gl.createTexture(); >+ tex1 = gl.createTexture(); >+ fbo = gl.createFramebuffer(); >+ wtu.fillTexture(gl, tex0, width, height, [0xff, 0x0, 0x0, 0xff], 0, gl.RGBA, gl.UNSIGNED_BYTE, gl.RGBA); >+ wtu.fillTexture(gl, tex1, width, height, [0x0, 0xff, 0x0, 0xff], 0, gl.RGBA, gl.UNSIGNED_BYTE, gl.RGBA); >+ >+ gl.bindTexture(gl.TEXTURE_2D, tex1); >+ var texLoc = gl.getUniformLocation(program, "tex"); >+ gl.uniform1i(texLoc, 0); >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex0, 0); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, ext.COLOR_ATTACHMENT1_WEBGL, gl.TEXTURE_2D, tex1, 0); >+} >+ >+function rendering_sampling_feedback_loop(draw_buffers, error) { >+ // gl.drawBuffers(draw_buffers); >+ ext.drawBuffersWEBGL(draw_buffers); >+ >+ // Make sure framebuffer is complete before feedback loop detection >+ if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE) { >+ testFailed("Framebuffer incomplete."); >+ return; >+ } >+ >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, error, "Rendering to a texture where it samples from should geneates INVALID_OPERATION. Otherwise, it should be NO_ERROR"); >+} >+ >+gl.bindTexture(gl.TEXTURE_2D, null); >+gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+gl.deleteTexture(tex0); >+gl.deleteTexture(tex1); >+gl.deleteFramebuffer(fbo); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-framebuffer-unsupported.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-framebuffer-unsupported.html >new file mode 100644 >index 00000000000..3f5c3a08971 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-framebuffer-unsupported.html >@@ -0,0 +1,147 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL WEBGL_draw_buffers FRAMEBUFFER_UNSUPPORTED Test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" width="2" height="2"> </canvas> >+ >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+var gl; >+var canvas = document.getElementById("canvas"); >+var fb1 = null; >+var fb2 = null; >+ >+function checkFramebuffer(expected) { >+ var actual = gl.checkFramebufferStatus(gl.FRAMEBUFFER); >+ if (expected.indexOf(actual) < 0) { >+ var msg = "checkFramebufferStatus expects ["; >+ for (var index = 0; index < expected.length; ++index) { >+ msg += wtu.glEnumToString(gl, expected[index]); >+ if (index + 1 < expected.length) >+ msg += ", "; >+ } >+ msg += "], was " + wtu.glEnumToString(gl, actual); >+ testFailed(msg); >+ } else { >+ var msg = "checkFramebufferStatus got " + wtu.glEnumToString(gl, actual) + >+ " as expected"; >+ testPassed(msg); >+ } >+} >+ >+function testImageAttachedTwoPoints() { >+ debug(""); >+ debug("Checking an image is attached to more than one color attachment in a framebuffer."); >+ >+ var tex1 = gl.createTexture(); >+ var tex2 = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex1); >+ gl.texImage2D(gl.TEXTURE_2D, >+ 0, // level >+ gl.RGBA, // internalFormat >+ 1, // width >+ 1, // height >+ 0, // border >+ gl.RGBA, // format >+ gl.UNSIGNED_BYTE, // type >+ new Uint8Array(4)); // data >+ gl.bindTexture(gl.TEXTURE_2D, tex2); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(4)); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Texture creation should succeed."); >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb1); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, ext.COLOR_ATTACHMENT0_WEBGL, gl.TEXTURE_2D, tex1, 0); >+ checkFramebuffer([gl.FRAMEBUFFER_COMPLETE]); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, ext.COLOR_ATTACHMENT1_WEBGL, gl.TEXTURE_2D, tex2, 0); >+ checkFramebuffer([gl.FRAMEBUFFER_COMPLETE]); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, ext.COLOR_ATTACHMENT2_WEBGL, gl.TEXTURE_2D, tex1, 0); >+ checkFramebuffer([gl.FRAMEBUFFER_UNSUPPORTED]); >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb2); >+ var texCube = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_CUBE_MAP, texCube); >+ for (var target = gl.TEXTURE_CUBE_MAP_POSITIVE_X; target < gl.TEXTURE_CUBE_MAP_POSITIVE_X + 6; target++) { >+ gl.texImage2D(target, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(4)); >+ } >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, ext.COLOR_ATTACHMENT0_WEBGL, gl.TEXTURE_CUBE_MAP_POSITIVE_X, texCube, 0); >+ checkFramebuffer([gl.FRAMEBUFFER_COMPLETE]); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, ext.COLOR_ATTACHMENT1_WEBGL, gl.TEXTURE_CUBE_MAP_POSITIVE_Y, texCube, 0); >+ checkFramebuffer([gl.FRAMEBUFFER_COMPLETE]); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, ext.COLOR_ATTACHMENT2_WEBGL, gl.TEXTURE_CUBE_MAP_POSITIVE_X, texCube, 0); >+ checkFramebuffer([gl.FRAMEBUFFER_UNSUPPORTED]); >+ >+ // Clean up >+ gl.deleteTexture(tex1); >+ gl.deleteTexture(tex2); >+ gl.deleteTexture(texCube); >+} >+ >+description("This tests FRAMEBUFFER_UNSUPPORTED."); >+ >+shouldBeNonNull("gl = wtu.create3DContext(undefined, undefined, 1)"); >+fb1 = gl.createFramebuffer(); >+fb2 = gl.createFramebuffer(); >+ >+var ext = gl.getExtension("WEBGL_draw_buffers"); >+if (!ext) { >+ testPassed("No WEBGL_draw_buffers support -- this is legal"); >+} else { >+ var bufs = [ext.COLOR_ATTACHMENT0_WEBGL, ext.COLOR_ATTACHMENT1_WEBGL, ext.COLOR_ATTACHMENT2_WEBGL]; >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb1); >+ ext.drawBuffersWEBGL(bufs); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "should be able to call drawBuffersWEBGL successfully"); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb2); >+ ext.drawBuffersWEBGL(bufs); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "should be able to call drawBuffersWEBGL successfully"); >+ >+ testPassed("Successfully enabled WEBGL_draw_buffers extension"); >+ testImageAttachedTwoPoints(); >+ >+ gl.deleteFramebuffer(fb1); >+ gl.deleteFramebuffer(fb2); >+} >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-max-draw-buffers.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-max-draw-buffers.html >new file mode 100644 >index 00000000000..3ad6a918099 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-draw-buffers-max-draw-buffers.html >@@ -0,0 +1,139 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL WEBGL_draw_buffers gl_FragData[gl_MaxDrawBuffers] Conformance Test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" width="64" height="64"> </canvas> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+void main() { >+ gl_Position = a_position; >+} >+</script> >+<script id="fshader" type="x-shader/x-fragment"> >+#extension GL_EXT_draw_buffers : require >+precision mediump float; >+void main() { >+ gl_FragData[gl_MaxDrawBuffers] = vec4(0.0); >+} >+</script> >+<script id="fshaderConstantIndex" type="x-shader/x-fragment"> >+#extension GL_EXT_draw_buffers : require >+precision mediump float; >+void main() { >+ gl_FragData[$(gl_MaxDrawBuffers)] = vec4(0.0); >+} >+</script> >+<script id="fshaderTestMaxDrawBuffersValue" type="x-shader/x-fragment"> >+#extension GL_EXT_draw_buffers : require >+precision mediump float; >+void main() { >+ gl_FragColor = ($(gl_MaxDrawBuffers) == gl_MaxDrawBuffers) ? vec4(0, 1, 0, 1) : vec4(1, 0, 0, 1); >+} >+</script> >+<script> >+"use strict"; >+description("This test verifies that compiling the same shader using GL_EXT_draw_buffers twice will have similar results on both rounds."); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas); >+var ext = null; >+var maxDrawBuffers; >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ ext = gl.getExtension("WEBGL_draw_buffers"); >+ if (!ext) { >+ testPassed("No WEBGL_draw_buffers support -- this is legal"); >+ finishTest(); >+ } else { >+ testPassed("Successfully enabled WEBGL_draw_buffers extension"); >+ maxDrawBuffers = gl.getParameter(ext.MAX_DRAW_BUFFERS_WEBGL); >+ runShadersTest(); >+ finishTest(); >+ } >+} >+ >+function testValueOfMaxDrawBuffers() { >+ debug("Test the value of gl_MaxDrawBuffers in a shader"); >+ var fshader = wtu.replaceParams(wtu.getScript("fshaderTestMaxDrawBuffersValue"), {"gl_MaxDrawBuffers": maxDrawBuffers}); >+ var program = wtu.setupProgram(gl, ["vshader", fshader], ["a_position"], undefined, true); >+ expectTrue(program != null, "Test program should compile"); >+ wtu.setupUnitQuad(gl); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "should be green to indicate that gl_MaxDrawBuffers had the right value"); >+ gl.deleteProgram(program); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+} >+ >+function runSingleTest(shaders, indexMsg) { >+ var program = wtu.setupProgram(gl, shaders, ["a_position"], undefined, true); >+ var programLinkedSuccessfully = (program != null); >+ expectTrue(!programLinkedSuccessfully, "Program where gl_FragData is indexed by " + indexMsg + " should fail compilation."); >+ gl.deleteProgram(program); >+} >+ >+function runShadersTest() { >+ debug("MAX_DRAW_BUFFERS_WEBGL is: " + maxDrawBuffers); >+ >+ // For reference, use a constant out-of-range parameter to test: >+ debug("Test indexing gl_FragData with value of MAX_DRAW_BUFFERS_WEBGL"); >+ var fshader = wtu.replaceParams(wtu.getScript("fshaderConstantIndex"), {"gl_MaxDrawBuffers": maxDrawBuffers}); >+ runSingleTest(["vshader", fshader], maxDrawBuffers + " (value of MAX_DRAW_BUFFERS_WEBGL)"); >+ >+ debug(""); >+ >+ debug("Test indexing gl_FragData with gl_MaxDrawBuffers"); >+ debug("Repeat this test twice as that has revealed a bug."); >+ for (var i = 0; i < 2; ++i) { >+ runSingleTest(["vshader", "fshader"], "gl_MaxDrawBuffers"); >+ } >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+ >+ debug(""); >+ >+ testValueOfMaxDrawBuffers(); >+} >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-draw-buffers.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-draw-buffers.html >new file mode 100644 >index 00000000000..29b12c01608 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-draw-buffers.html >@@ -0,0 +1,805 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL WEBGL_draw_buffers Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/webgl-draw-buffers-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<canvas id="canvas" width="64" height="64"> </canvas> >+<div id="console"></div> >+<script id="fshader" type="x-shader/x-fragment"> >+#extension GL_EXT_draw_buffers : require >+precision mediump float; >+uniform vec4 u_colors[$(numDrawingBuffers)]; >+void main() { >+ for (int i = 0; i < $(numDrawingBuffers); ++i) { >+ gl_FragData[i] = u_colors[i]; >+ } >+} >+</script> >+<script id="fshaderNoWrite" type="x-shader/x-fragment"> >+#extension GL_EXT_draw_buffers : require >+void main() { >+} >+</script> >+<script id="fshaderRed" type="x-shader/x-fragment"> >+precision mediump float; >+void main() { >+ gl_FragColor = vec4(1,0,0,1); >+} >+</script> >+<script id="fshaderRedWithExtension" type="x-shader/x-fragment"> >+#extension GL_EXT_draw_buffers : require >+precision mediump float; >+void main() { >+ gl_FragColor = vec4(1,0,0,1); >+} >+</script> >+<script id="fshaderMacroDisabled" type="x-shader/x-fragment"> >+#ifdef GL_EXT_draw_buffers >+ bad code here >+#endif >+precision mediump float; >+void main() { >+ gl_FragColor = vec4(0,0,0,0); >+} >+</script> >+<script id="fshaderMacroEnabled" type="x-shader/x-fragment"> >+#ifdef GL_EXT_draw_buffers >+ #if GL_EXT_draw_buffers == 1 >+ #define CODE >+ #else >+ #define CODE this_code_is_bad_it_should_have_compiled >+ #endif >+#else >+ #define CODE this_code_is_bad_it_should_have_compiled >+#endif >+CODE >+precision mediump float; >+void main() { >+ gl_FragColor = vec4(0,0,0,0); >+} >+</script> >+<script id="fshaderBuiltInConstEnabled" type="x-shader/x-fragment"> >+precision mediump float; >+void main() { >+ gl_FragColor = (gl_MaxDrawBuffers == $(numDrawingBuffers)) ? vec4(0,1,0,1) : vec4(1,0,0,1); >+} >+</script> >+<script> >+"use strict"; >+description("This test verifies the functionality of the WEBGL_draw_buffers extension, if it is available."); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas); >+var ext = null; >+var programWithMaxDrawBuffersEqualOne = null; >+var drawBuffersUtils; >+ >+var extensionConstants = [ >+ { name: "MAX_COLOR_ATTACHMENTS_WEBGL", enum: 0x8CDF, expectedFn: function(v) { return v >= 4; }, passMsg: " should be >= 4"}, >+ { name: "MAX_DRAW_BUFFERS_WEBGL", enum: 0x8824, expectedFn: function(v) { return v > 0; }, passMsg: " should be > 0"}, >+ >+ { name: "COLOR_ATTACHMENT0_WEBGL", enum: 0x8CE0, }, >+ { name: "COLOR_ATTACHMENT1_WEBGL", enum: 0x8CE1, }, >+ { name: "COLOR_ATTACHMENT2_WEBGL", enum: 0x8CE2, }, >+ { name: "COLOR_ATTACHMENT3_WEBGL", enum: 0x8CE3, }, >+ { name: "COLOR_ATTACHMENT4_WEBGL", enum: 0x8CE4, }, >+ { name: "COLOR_ATTACHMENT5_WEBGL", enum: 0x8CE5, }, >+ { name: "COLOR_ATTACHMENT6_WEBGL", enum: 0x8CE6, }, >+ { name: "COLOR_ATTACHMENT7_WEBGL", enum: 0x8CE7, }, >+ { name: "COLOR_ATTACHMENT8_WEBGL", enum: 0x8CE8, }, >+ { name: "COLOR_ATTACHMENT9_WEBGL", enum: 0x8CE9, }, >+ { name: "COLOR_ATTACHMENT10_WEBGL", enum: 0x8CEA, }, >+ { name: "COLOR_ATTACHMENT11_WEBGL", enum: 0x8CEB, }, >+ { name: "COLOR_ATTACHMENT12_WEBGL", enum: 0x8CEC, }, >+ { name: "COLOR_ATTACHMENT13_WEBGL", enum: 0x8CED, }, >+ { name: "COLOR_ATTACHMENT14_WEBGL", enum: 0x8CEE, }, >+ { name: "COLOR_ATTACHMENT15_WEBGL", enum: 0x8CEF, }, >+ >+ { name: "DRAW_BUFFER0_WEBGL", enum: 0x8825, }, >+ { name: "DRAW_BUFFER1_WEBGL", enum: 0x8826, }, >+ { name: "DRAW_BUFFER2_WEBGL", enum: 0x8827, }, >+ { name: "DRAW_BUFFER3_WEBGL", enum: 0x8828, }, >+ { name: "DRAW_BUFFER4_WEBGL", enum: 0x8829, }, >+ { name: "DRAW_BUFFER5_WEBGL", enum: 0x882A, }, >+ { name: "DRAW_BUFFER6_WEBGL", enum: 0x882B, }, >+ { name: "DRAW_BUFFER7_WEBGL", enum: 0x882C, }, >+ { name: "DRAW_BUFFER8_WEBGL", enum: 0x882D, }, >+ { name: "DRAW_BUFFER9_WEBGL", enum: 0x882E, }, >+ { name: "DRAW_BUFFER10_WEBGL", enum: 0x882F, }, >+ { name: "DRAW_BUFFER11_WEBGL", enum: 0x8830, }, >+ { name: "DRAW_BUFFER12_WEBGL", enum: 0x8831, }, >+ { name: "DRAW_BUFFER13_WEBGL", enum: 0x8832, }, >+ { name: "DRAW_BUFFER14_WEBGL", enum: 0x8833, }, >+ { name: "DRAW_BUFFER15_WEBGL", enum: 0x8834, }, >+]; >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ >+ // Run tests with extension disabled >+ runEnumTestDisabled(); >+ runShadersTestDisabled(); >+ runAttachmentTestDisabled(); >+ >+ debug(""); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = gl.getExtension("WEBGL_draw_buffers"); >+ if (!ext) { >+ testPassed("No WEBGL_draw_buffers support -- this is legal"); >+ >+ runSupportedTest(false); >+ finishTest(); >+ } else { >+ testPassed("Successfully enabled WEBGL_draw_buffers extension"); >+ >+ drawBuffersUtils = WebGLDrawBuffersUtils(gl, ext); >+ runSupportedTest(true); >+ runEnumTestEnabled(); >+ runShadersTestEnabled(); >+ runAttachmentTestEnabled(); >+ runDrawTests(); >+ runPreserveTests(); >+ } >+} >+ >+function createExtDrawBuffersProgram(scriptId, sub) { >+ var fsource = wtu.getScript(scriptId); >+ fsource = wtu.replaceParams(fsource, sub); >+ return wtu.setupProgram(gl, [wtu.simpleVertexShader, fsource], ["vPosition"], undefined, true); >+} >+ >+function runSupportedTest(extensionEnabled) { >+ var supported = gl.getSupportedExtensions(); >+ if (supported.indexOf("WEBGL_draw_buffers") >= 0) { >+ if (extensionEnabled) { >+ testPassed("WEBGL_draw_buffers listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("WEBGL_draw_buffers listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("WEBGL_draw_buffers not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("WEBGL_draw_buffers not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+function runEnumTestDisabled() { >+ debug(""); >+ debug("Testing binding enum with extension disabled"); >+ >+ // Use the constant directly as we don't have the extension >+ extensionConstants.forEach(function(c) { >+ if (c.expectedFn) { >+ gl.getParameter(c.enum); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, c.name + " should not be queryable if extension is disabled"); >+ } >+ }); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+} >+ >+function runEnumTestEnabled() { >+ debug(""); >+ debug("Testing enums with extension enabled"); >+ >+ extensionConstants.forEach(function(c) { >+ shouldBe("ext." + c.name, "0x" + c.enum.toString(16)); >+ if (c.expectedFn) { >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "before getParameter"); >+ debug(c.name + ": 0x" + ext[c.name].toString(16)); >+ expectTrue(c.expectedFn(gl.getParameter(ext[c.name])), "gl.getParameter(ext." + c.name + ")" + c.passMsg); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, c.name + " query should succeed if extension is enabled"); >+ } >+ }); >+ >+ shouldBeTrue("gl.getParameter(ext.MAX_COLOR_ATTACHMENTS_WEBGL) >= gl.getParameter(ext.MAX_DRAW_BUFFERS_WEBGL)"); >+ >+ debug("Testing drawBuffersWEBGL with default drawing buffer"); >+ shouldBe("gl.getParameter(ext.DRAW_BUFFER0_WEBGL)", "gl.BACK"); >+ wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "ext.drawBuffersWEBGL([])"); >+ wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "ext.drawBuffersWEBGL([gl.NONE, gl.NONE])"); >+ wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "ext.drawBuffersWEBGL([ext.COLOR_ATTACHMENT0_WEBGL])"); >+ shouldBe("gl.getParameter(ext.DRAW_BUFFER0_WEBGL)", "gl.BACK"); >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "ext.drawBuffersWEBGL([gl.NONE])"); >+ shouldBe("gl.getParameter(ext.DRAW_BUFFER0_WEBGL)", "gl.NONE"); >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "ext.drawBuffersWEBGL([gl.BACK])"); >+ shouldBe("gl.getParameter(ext.DRAW_BUFFER0_WEBGL)", "gl.BACK"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+} >+ >+function testShaders(tests, sub) { >+ tests.forEach(function(test) { >+ var shaders = [wtu.simpleVertexShader, wtu.replaceParams(wtu.getScript(test.fragmentShaderTemplate), sub)]; >+ var program = wtu.setupProgram(gl, shaders, ["vPosition"], undefined, true); >+ var programLinkedSuccessfully = (program != null); >+ var expectedProgramToLinkSuccessfully = (test.expectFailure == true); >+ expectTrue(programLinkedSuccessfully != expectedProgramToLinkSuccessfully, test.msg); >+ gl.deleteProgram(program); >+ }); >+} >+ >+function runShadersTestDisabled() { >+ debug(""); >+ debug("test shaders disabled"); >+ >+ var sub = {numDrawingBuffers: 1}; >+ testShaders([ >+ { fragmentShaderTemplate: "fshaderMacroDisabled", >+ msg: "GL_EXT_draw_buffers should not be defined in GLSL", >+ }, >+ { fragmentShaderTemplate: "fshader", >+ msg: "#extension GL_EXT_draw_buffers should not be allowed in GLSL", >+ expectFailure: true, >+ }, >+ ], sub); >+ >+ programWithMaxDrawBuffersEqualOne = createExtDrawBuffersProgram("fshaderBuiltInConstEnabled", sub); >+ wtu.setupUnitQuad(gl); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "should be green"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+} >+ >+function runShadersTestEnabled() { >+ debug(""); >+ debug("test shaders enabled"); >+ >+ var sub = {numDrawingBuffers: gl.getParameter(ext.MAX_DRAW_BUFFERS_WEBGL)}; >+ testShaders([ >+ { fragmentShaderTemplate: "fshaderMacroEnabled", >+ msg: "GL_EXT_draw_buffers should be defined as 1 in GLSL", >+ }, >+ { fragmentShaderTemplate: "fshader", >+ msg: "fragment shader containing the #extension directive should compile", >+ }, >+ ], sub); >+ >+ var program = createExtDrawBuffersProgram("fshaderBuiltInConstEnabled", sub); >+ wtu.setupUnitQuad(gl); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "should be green"); >+ gl.deleteProgram(program); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+ >+ debug(""); >+ debug("test that gl_MaxDrawBuffers is frozen at link time and enabling the extension won't change it."); >+ gl.useProgram(programWithMaxDrawBuffersEqualOne); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "should be green"); >+ gl.deleteProgram(programWithMaxDrawBuffersEqualOne); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+} >+ >+function runAttachmentTestDisabled() { >+ debug(""); >+ debug("test attachment disabled"); >+ var tex = gl.createTexture(); >+ var fb = gl.createFramebuffer(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + 1, gl.TEXTURE_2D, tex, 0); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "should not be able to attach to gl.COLOR_ATTACHMENT1"); >+ gl.deleteFramebuffer(fb); >+ gl.deleteTexture(tex); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+} >+ >+function makeArray(size, value) { >+ var array = [] >+ for (var ii = 0; ii < size; ++ii) { >+ array.push(value); >+ } >+ return array; >+} >+ >+function runAttachmentTestEnabled() { >+ debug(""); >+ debug("test attachment enabled"); >+ >+ var maxDrawingBuffers = gl.getParameter(ext.MAX_DRAW_BUFFERS_WEBGL); >+ var maxColorAttachments = gl.getParameter(ext.MAX_COLOR_ATTACHMENTS_WEBGL); >+ >+ var tex = gl.createTexture(); >+ var fb = gl.createFramebuffer(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + maxColorAttachments, gl.TEXTURE_2D, tex, 0); >+ wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "should not be able to attach pass the max attachment point: gl.COLOR_ATTACHMENT0 + " + maxColorAttachments); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + maxColorAttachments - 1, gl.TEXTURE_2D, tex, 0); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "should be able to attach to the max attachment point: gl.COLOR_ATTACHMENT0 + " + (maxColorAttachments - 1)); >+ ext.drawBuffersWEBGL(makeArray(maxDrawingBuffers, gl.NONE)); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "should be able to call drawBuffersWEBGL with array NONE of size " + maxColorAttachments); >+ var bufs = drawBuffersUtils.makeColorAttachmentArray(maxDrawingBuffers); >+ ext.drawBuffersWEBGL(bufs); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "should be able to call drawBuffersWEBGL with array attachments of size " + maxColorAttachments); >+ bufs[0] = gl.NONE; >+ ext.drawBuffersWEBGL(bufs); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "should be able to call drawBuffersWEBGL with mixed array attachments of size " + maxColorAttachments); >+ if (maxDrawingBuffers > 1) { >+ bufs[0] = ext.COLOR_ATTACHMENT1_WEBGL; >+ bufs[1] = ext.COLOR_ATTACHMENT0_WEBGL; >+ ext.drawBuffersWEBGL(bufs); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "should not be able to call drawBuffersWEBGL with out of order attachments of size " + maxColorAttachments); >+ var bufs = drawBuffersUtils.makeColorAttachmentArray(Math.floor(maxDrawingBuffers / 2)); >+ ext.drawBuffersWEBGL(bufs); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "should be able to call drawBuffersWEBGL with short array of attachments of size " + bufs.length); >+ } >+ >+ gl.deleteFramebuffer(fb); >+ gl.deleteTexture(tex); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+} >+ >+function makeColorByIndex(index) { >+ var low = (index - 1) % 15 + 1; >+ var high = (index - 1) / 15; >+ >+ var zeroOrOne = function(v) { >+ return v ? 1 : 0; >+ }; >+ >+ var oneOrTwo = function(v) { >+ return v ? 2 : 1; >+ } >+ >+ var makeComponent = function(b0, b1, b2) { >+ return Math.floor(255 * zeroOrOne(b0) / oneOrTwo(b1) / oneOrTwo(b2)); >+ }; >+ return [ >+ makeComponent(low & (1 << 0), high & (1 << 0), high & (1 << 4)), >+ makeComponent(low & (1 << 1), high & (1 << 1), high & (1 << 5)), >+ makeComponent(low & (1 << 2), high & (1 << 2), high & (1 << 6)), >+ makeComponent(low & (1 << 3), high & (1 << 3), high & (1 << 7)), >+ ]; >+} >+ >+function runDrawTests() { >+ debug(""); >+ debug("--------- draw tests -----------"); >+ var fb = gl.createFramebuffer(); >+ var fb2 = gl.createFramebuffer(); >+ var halfFB1 = gl.createFramebuffer(); >+ var halfFB2 = gl.createFramebuffer(); >+ var endsFB = gl.createFramebuffer(); >+ var middleFB = gl.createFramebuffer(); >+ >+ var maxDrawingBuffers = gl.getParameter(ext.MAX_DRAW_BUFFERS_WEBGL); >+ var maxUsable = drawBuffersUtils.getMaxUsableColorAttachments(); >+ var half = Math.floor(maxUsable / 2); >+ var bufs = drawBuffersUtils.makeColorAttachmentArray(maxUsable); >+ var nones = makeArray(maxUsable, gl.NONE); >+ >+ [fb, fb2, halfFB1, halfFB2, endsFB, middleFB].forEach(function(fbo) { >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ ext.drawBuffersWEBGL(bufs); >+ }); >+ >+ var checkProgram = wtu.setupTexturedQuad(gl); >+ var redProgram = wtu.setupProgram(gl, [wtu.simpleVertexShader, "fshaderRed"], ["vPosition"]); >+ var redProgramWithExtension = wtu.setupProgram(gl, [wtu.simpleVertexShader, "fshaderRedWithExtension"], ["vPosition"]); >+ var drawProgram = createExtDrawBuffersProgram("fshader", {numDrawingBuffers: maxDrawingBuffers}); >+ var width = 64; >+ var height = 64; >+ var attachments = []; >+ // Makes 6 framebuffers. >+ // fb and fb2 have all the attachments. >+ // halfFB1 has the first half of the attachments >+ // halfFB2 has the second half of the attachments >+ // endsFB has the first and last attachments >+ // middleFB has all but the first and last attachments >+ for (var ii = 0; ii < maxUsable; ++ii) { >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + ii, gl.TEXTURE_2D, tex, 0); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb2); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + ii, gl.TEXTURE_2D, tex, 0); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, ii < half ? halfFB1 : halfFB2); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + ii, gl.TEXTURE_2D, tex, 0); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, (ii == 0 || ii == (maxUsable - 1)) ? endsFB : middleFB); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + ii, gl.TEXTURE_2D, tex, 0); >+ var location = gl.getUniformLocation(drawProgram, "u_colors[" + ii + "]"); >+ var color = makeColorByIndex(ii + 1); >+ var floatColor = [color[0] / 255, color[1] / 255, color[2] / 255, color[3] / 255]; >+ gl.uniform4fv(location, floatColor); >+ attachments.push({ >+ texture: tex, >+ color: color >+ }); >+ } >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb2); >+ shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ >+ var drawAndCheckAttachments = function(testFB, msg, testFn) { >+ debug("test clearing " + msg); >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, testFB); >+ >+ attachments.forEach(function(attachment, index) { >+ debug("attachment: " + index + " = " + wtu.glEnumToString(gl, gl.getParameter(ext.DRAW_BUFFER0_WEBGL + index)) + >+ ", " + wtu.glEnumToString(gl, gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + index, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE))); >+ }); >+ >+ if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE) { >+ debug("framebuffer not complete"); >+ debug(""); >+ return; >+ } >+ >+ // Clear all the attachments >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb2); >+ gl.clearColor(0, 0, 0, 0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ //drawBuffersUtils.checkAttachmentsForColorFn(attachments, function(attachment, index) { >+ // return [0, 0, 0, 0]; >+ //}); >+ //debug("--"); >+ >+ // Clear some attachments using testFB >+ gl.bindFramebuffer(gl.FRAMEBUFFER, testFB); >+ >+ gl.clearColor(0, 1, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ drawBuffersUtils.checkAttachmentsForColorFn(attachments, function(attachment, index) { >+ return testFn(attachment, index) ? [0, 255, 0, 255] : [0, 0, 0, 0]; >+ }); >+ >+ debug("test drawing to " + msg); >+ >+ // Draw to some attachments using testFB >+ gl.useProgram(drawProgram); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, testFB); >+ wtu.drawUnitQuad(gl); >+ >+ drawBuffersUtils.checkAttachmentsForColorFn(attachments, function(attachment, index) { >+ return testFn(attachment, index) ? attachment.color : [0, 0, 0, 0]; >+ }); >+ }; >+ >+ gl.useProgram(drawProgram); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb2); >+ ext.drawBuffersWEBGL(bufs); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ ext.drawBuffersWEBGL(bufs); >+ >+ wtu.drawUnitQuad(gl); >+ >+ debug("test that each texture got the correct color."); >+ >+ drawBuffersUtils.checkAttachmentsForColor(attachments); >+ >+ debug("test clearing clears all the textures"); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ gl.clearColor(0, 1, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ drawBuffersUtils.checkAttachmentsForColor(attachments, [0, 255, 0, 255]); >+ >+ debug("test a fragment shader writing to neither gl_FragColor nor gl_FragData does not touch attachments"); >+ var noWriteProgram = wtu.setupProgram(gl, [wtu.simpleVertexShader, "fshaderNoWrite"], ["vPosition"]); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no GL error setting up the program"); >+ if (!noWriteProgram) { >+ testFailed("Setup a program where fragment shader writes nothing failed"); >+ } else { >+ gl.useProgram(noWriteProgram); >+ wtu.drawUnitQuad(gl); >+ >+ drawBuffersUtils.checkAttachmentsForColor(attachments, [0, 255, 0, 255]); >+ gl.deleteProgram(noWriteProgram); >+ } >+ >+ debug("test that NONE draws nothing"); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ ext.drawBuffersWEBGL(nones); >+ gl.useProgram(redProgram); >+ wtu.clearAndDrawUnitQuad(gl); >+ >+ drawBuffersUtils.checkAttachmentsForColor(attachments, [0, 255, 0, 255]); >+ >+ debug("test that gl_FragColor does not broadcast unless extension is enabled in fragment shader"); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ ext.drawBuffersWEBGL(bufs); >+ gl.useProgram(redProgram); >+ wtu.drawUnitQuad(gl); >+ >+ drawBuffersUtils.checkAttachmentsForColorFn(attachments, function(attachment, index) { >+ return (index == 0) ? [255, 0, 0, 255] : [0, 255, 0, 255]; >+ }); >+ >+ debug("test that gl_FragColor broadcasts if extension is enabled in fragment shader"); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ ext.drawBuffersWEBGL(bufs); >+ gl.useProgram(redProgramWithExtension); >+ wtu.drawUnitQuad(gl); >+ >+ drawBuffersUtils.checkAttachmentsForColor(attachments, [255, 0, 0, 255]); >+ >+ if (maxUsable > 1) { >+ // First half of color buffers disable. >+ var bufs1 = drawBuffersUtils.makeColorAttachmentArray(maxUsable); >+ // Second half of color buffers disable. >+ var bufs2 = drawBuffersUtils.makeColorAttachmentArray(maxUsable); >+ // Color buffers with even indices disabled. >+ var bufs3 = drawBuffersUtils.makeColorAttachmentArray(maxUsable); >+ // Color buffers with odd indices disabled. >+ var bufs4 = drawBuffersUtils.makeColorAttachmentArray(maxUsable); >+ for (var ii = 0; ii < maxUsable; ++ii) { >+ if (ii < half) { >+ bufs1[ii] = gl.NONE; >+ } else { >+ bufs2[ii] = gl.NONE; >+ } >+ if (ii % 2) { >+ bufs3[ii] = gl.NONE; >+ } else { >+ bufs4[ii] = gl.NONE; >+ } >+ } >+ >+ debug("test setting first half to NONE and clearing"); >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ // We should clear all buffers rather than depending on the previous >+ // gl_FragColor broadcasts test to succeed and setting the colors. >+ ext.drawBuffersWEBGL(bufs); >+ gl.clearColor(1, 0, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ ext.drawBuffersWEBGL(bufs1); >+ gl.clearColor(0, 1, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ drawBuffersUtils.checkAttachmentsForColorFn(attachments, function(attachment, index) { >+ return index < half ? [255, 0, 0, 255] : [0, 255, 0, 255]; >+ }); >+ >+ debug("test setting first half to NONE and drawing"); >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ gl.useProgram(drawProgram); >+ wtu.drawUnitQuad(gl); >+ >+ drawBuffersUtils.checkAttachmentsForColorFn(attachments, function(attachment, index) { >+ return index < half ? [255, 0, 0, 255] : attachment.color; >+ }); >+ >+ debug("test setting second half to NONE and clearing"); >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ ext.drawBuffersWEBGL(bufs); >+ gl.clearColor(1, 0, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ ext.drawBuffersWEBGL(bufs2); >+ gl.clearColor(0, 0, 1, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ drawBuffersUtils.checkAttachmentsForColorFn(attachments, function(attachment, index) { >+ return index < half ? [0, 0, 255, 255] : [255, 0, 0, 255]; >+ }); >+ >+ debug("test setting second half to NONE and drawing"); >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ gl.useProgram(drawProgram); >+ wtu.drawUnitQuad(gl); >+ >+ drawBuffersUtils.checkAttachmentsForColorFn(attachments, function(attachment, index) { >+ return index < half ? attachment.color : [255, 0, 0, 255]; >+ }); >+ >+ debug("test setting buffers with even indices to NONE and clearing"); >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ ext.drawBuffersWEBGL(bufs); >+ gl.clearColor(1, 0, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ ext.drawBuffersWEBGL(bufs3); >+ gl.clearColor(1, 0, 1, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ drawBuffersUtils.checkAttachmentsForColorFn(attachments, function(attachment, index) { >+ return (index % 2) ? [255, 0, 0, 255] : [255, 0, 255, 255]; >+ }); >+ >+ debug("test setting buffers with odd indices to NONE and drawing"); >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ ext.drawBuffersWEBGL(bufs); >+ gl.clearColor(0, 0, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ gl.useProgram(drawProgram); >+ ext.drawBuffersWEBGL(bufs4); >+ wtu.drawUnitQuad(gl); >+ >+ drawBuffersUtils.checkAttachmentsForColorFn(attachments, function(attachment, index) { >+ return (index % 2 == 0) ? [0, 0, 0, 255] : attachment.color; >+ }); >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, halfFB1); >+ ext.drawBuffersWEBGL(bufs); >+ drawAndCheckAttachments( >+ halfFB1, "framebuffer that only has first half of attachments", >+ function(attachment, index) { >+ return index < half; >+ }); >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, halfFB2); >+ ext.drawBuffersWEBGL(bufs); >+ drawAndCheckAttachments( >+ halfFB2, "framebuffer that only has second half of attachments", >+ function(attachment, index) { >+ return index >= half; >+ }); >+ >+ if (maxUsable > 2) { >+ gl.bindFramebuffer(gl.FRAMEBUFFER, endsFB); >+ ext.drawBuffersWEBGL(bufs); >+ drawAndCheckAttachments( >+ endsFB, "framebuffer that only has first and last attachments", >+ function(attachment, index) { >+ return index == 0 || index == (maxUsable - 1); >+ }); >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, middleFB); >+ ext.drawBuffersWEBGL(bufs); >+ drawAndCheckAttachments( >+ middleFB, >+ "framebuffer that has all but the first and last attachments", >+ function(attachment, index) { >+ return index != 0 && index != (maxUsable - 1); >+ }); >+ } >+ } >+ >+ debug("test switching between fbos does not affect any color attachment contents"); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb2); >+ ext.drawBuffersWEBGL(nones); >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ ext.drawBuffersWEBGL(bufs); >+ gl.clearColor(1, 0, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ drawBuffersUtils.checkAttachmentsForColor(attachments, [255, 0, 0, 255]); >+ >+ // fb2 still has the NONE draw buffers from before, so this draw should be a no-op. >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb2); >+ gl.useProgram(drawProgram); >+ wtu.drawUnitQuad(gl); >+ drawBuffersUtils.checkAttachmentsForColor(attachments, [255, 0, 0, 255]); >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ gl.useProgram(drawProgram); >+ wtu.drawUnitQuad(gl); >+ drawBuffersUtils.checkAttachmentsForColor(attachments); >+ >+ debug("test queries"); >+ debug("check framebuffer with all attachments on"); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ for (var ii = 0; ii < maxUsable; ++ii) { >+ shouldBe("gl.getParameter(ext.DRAW_BUFFER0_WEBGL + " + ii + ")", "gl.COLOR_ATTACHMENT0 + " + ii); >+ } >+ >+ debug("check framebuffer with all attachments off"); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb2); >+ for (var ii = 0; ii < maxUsable; ++ii) { >+ shouldBe("gl.getParameter(ext.DRAW_BUFFER0_WEBGL + " + ii + ")", "gl.NONE"); >+ } >+ >+ debug("test attachment size mis-match"); >+ gl.bindTexture(gl.TEXTURE_2D, attachments[0].texture); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width * 2, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ shouldBeTrue("gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE"); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb2); >+ shouldBeTrue("gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE"); >+ >+ gl.deleteFramebuffer(fb); >+ gl.deleteFramebuffer(fb2); >+ gl.deleteFramebuffer(halfFB1); >+ gl.deleteFramebuffer(halfFB2); >+ attachments.forEach(function(attachment) { >+ gl.deleteTexture(attachment.texture); >+ }); >+ gl.deleteProgram(checkProgram); >+ gl.deleteProgram(redProgram); >+ gl.deleteProgram(redProgramWithExtension); >+ gl.deleteProgram(drawProgram); >+} >+ >+function runPreserveTests() { >+ debug(""); >+ debug("--------- preserve tests -----------"); >+ >+ debug("Testing that frame buffer is cleared after compositing"); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ >+ gl.clearColor(1, 1, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ wtu.checkCanvas(gl, [255, 255, 0, 255], "should be yellow"); >+ >+ // set the draw buffer to NONE >+ ext.drawBuffersWEBGL([gl.NONE]); >+ gl.clearColor(1, 0, 1, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ // make sure the canvas is still clear >+ wtu.checkCanvas(gl, [255, 255, 0, 255], "should be yellow"); >+ >+ wtu.waitForComposite(function() { >+ gl.clearColor(1, 0, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ wtu.checkCanvas(gl, [0, 0, 0, 0], "should be clear"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+ >+ runEndTests(); >+ }); >+} >+ >+function runEndTests() { >+ // Create new context and verify shader tests with no extension still succeeds. >+ debug(""); >+ debug("Testing new context with no extension"); >+ gl = wtu.create3DContext(); >+ if (!gl) { >+ testFailed("New WebGL context does not exist"); >+ } else { >+ testPassed("New WebGL context exists"); >+ runEnumTestDisabled(); >+ runShadersTestDisabled(); >+ runAttachmentTestDisabled(); >+ } >+ >+ finishTest(); >+} >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-shared-resources.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-shared-resources.html >new file mode 100644 >index 00000000000..92bd0919803 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-shared-resources.html >@@ -0,0 +1,861 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL WEBGL_Shared_Resources Conformance Test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+void main() { >+ gl_Position = a_position; >+} >+</script> >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+uniform vec4 u_color; >+void main() { >+ gl_FragColor = u_color; >+} >+</script> >+<style> >+canvas { >+ border: 1px solid black; >+} >+</style> >+<canvas id="canvas1" width="64" height="64"> </canvas> >+<canvas id="canvas2" width="64" height="64"> </canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description(); >+ >+var wtu = WebGLTestUtils; >+var shouldGenerateGLError = wtu.shouldGenerateGLError; >+var canvas1 = document.getElementById("canvas1"); >+var gl = wtu.create3DContext(canvas1); >+var gl2; >+var ext = null; >+var ext2; >+var ext3; >+var buf; >+var elementBuf; >+var tex; >+var tex3; >+var rb; >+var fb; >+var id; >+var resource; >+var shader; >+var program; >+var uniformLocation; >+var acquiredFlag; >+var shaderProgram; // acquired progam (never released) used for shader testing >+var programShader; // acquired shader (never released) used for program testing >+ >+if (!gl) { >+ testFailed("context does not exist"); >+} else { >+ testPassed("context exists"); >+ >+ // Run tests with extension disabled >+ runTestDisabled(); >+ >+ // Query the extension and store globally so shouldBe can access it >+ ext = wtu.getExtensionWithKnownPrefixes(gl, "WEBGL_shared_resources"); >+ if (!ext) { >+ testPassed("No WEBGL_shared_resources support -- this is legal"); >+ runSupportedTest(false); >+ finishTest(); >+ } else { >+ testPassed("Successfully enabled WEBGL_shared_resources extension"); >+ >+ runSupportedTest(true); >+ runTestExtension(); >+ } >+} >+ >+function runSupportedTest(extensionEnabled) { >+ var name = wtu.getSupportedExtensionWithKnownPrefixes(gl, "WEBGL_shared_resources"); >+ if (name !== undefined) { >+ if (extensionEnabled) { >+ testPassed("WEBGL_shared_resources listed as supported and getExtension succeeded"); >+ } else { >+ testFailed("WEBGL_shared_resources listed as supported but getExtension failed"); >+ } >+ } else { >+ if (extensionEnabled) { >+ testFailed("WEBGL_shared_resources not listed as supported but getExtension succeeded"); >+ } else { >+ testPassed("WEBGL_shared_resources not listed as supported and getExtension failed -- this is legal"); >+ } >+ } >+} >+ >+function runTestDisabled() { >+ // There is no functionality accessable with this extension disabled. >+} >+ >+function makeFailCallback(msg) { >+ return function() { >+ testFailed(msg); >+ } >+}; >+ >+ >+function runTestExtension() { >+ var canvas2 = document.getElementById("canvas2"); >+ gl2 = wtu.create3DContext(canvas2, { group: ext.group }); >+ ext2 = wtu.getExtensionWithKnownPrefixes(gl2, "WEBGL_shared_resources"); >+ >+ // Runs an array of functions. Expects each function takes a callback >+ // it will call when finished. >+ var runSequence = function(steps) { >+ var stepNdx = 0; >+ var runNextStep = function() { >+ if (stepNdx < steps.length) { >+ steps[stepNdx++](runNextStep); >+ } >+ }; >+ runNextStep(); >+ }; >+ >+ var bufferTests = { >+ resourceType: "buffer", >+ >+ setupFunction: function() { >+ buf = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buf); >+ gl.bufferData(gl.ARRAY_BUFFER, 16, gl.STATIC_DRAW); >+ return buf; >+ }, >+ >+ bindFunction: function(buf) { >+ gl.bindBuffer(gl.ARRAY_BUFFER, buf); >+ }, >+ >+ implicitBindFunctions: function(expectedError) { >+ shouldGenerateGLError(gl, expectedError, "gl.vertexAttribPointer(0, 4, gl.FLOAT, false, 0, 0)"); >+ }, >+ >+ modificationFunctions: function(expectedError) { >+ shouldGenerateGLError(gl, expectedError, "gl.bufferData(gl.ARRAY_BUFFER, 16, gl.STATIC_DRAW)"); >+ shouldGenerateGLError(gl, expectedError, "gl.bufferSubData(gl.ARRAY_BUFFER, 0, new Uint8Array(4))"); >+ }, >+ >+ queryFunctions: function(expectedError) { >+ shouldGenerateGLError(gl, expectedError, "gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE)"); >+ }, >+ }; >+ >+ var programTests = { >+ resourceType: "program", >+ >+ setupFunction: function() { >+ // We need a valid a program with valid shaders to share because the only way to 'bind' >+ // a program is to call gl.useProgram and you can't call gl.useProgram on an invalid program. >+ program = wtu.setupProgram(gl, ["vshader", "fshader"]); >+ programShader = gl.getAttachedShaders(program)[0]; >+ uniformLocation = gl.getUniformLocation(program, "u_color"); >+ return program; >+ }, >+ >+ bindFunction: function(program) { >+ gl.useProgram(program); >+ }, >+ >+ implicitBindFunctions: function(expectedError) { >+ }, >+ >+ modificationFunctions: function(expectedError) { >+ if (expectedError == gl.NO_ERROR) { >+ // Need to get a new location because we may have re-linked. >+ uniformLocation = gl.getUniformLocation(program, 'u_color'); >+ } >+ shouldGenerateGLError(gl, expectedError, "gl.uniform4f(uniformLocation, 0, 1, 2, 3)"); >+ shouldGenerateGLError(gl, expectedError, "gl.detachShader(program, programShader)"); >+ shouldGenerateGLError(gl, expectedError, "gl.attachShader(program, programShader)"); >+ shouldGenerateGLError(gl, expectedError, "gl.bindAttribLocation(program, 0, 'foo')"); >+ shouldGenerateGLError(gl, expectedError, "gl.linkProgram(program)"); >+ }, >+ >+ queryFunctions: function(expectedError) { >+ shouldGenerateGLError(gl, expectedError, "gl.getProgramParameter(program, gl.LINK_STATUS)"); >+ shouldGenerateGLError(gl, expectedError, "gl.getProgramInfoLog(program)"); >+ shouldGenerateGLError(gl, expectedError, "gl.getAttachedShaders(program)"); >+ shouldGenerateGLError(gl, expectedError, "gl.getAttribLocation(program, 'foo')"); >+ shouldGenerateGLError(gl, expectedError, "gl.getUniformLocation(program, 'foo')"); >+ shouldGenerateGLError(gl, expectedError, "gl.getActiveAttrib(program, 0)"); >+ shouldGenerateGLError(gl, expectedError, "gl.getActiveUniform(program, 0)"); >+ shouldGenerateGLError(gl, expectedError, "gl.getUniform(program, uniformLocation)"); >+ }, >+ }; >+ >+ var renderbufferTests = { >+ resourceType: "renderbuffer", >+ >+ setupFunction: function() { >+ rb = gl.createRenderbuffer(); >+ gl.bindRenderbuffer(gl.RENDERBUFFER, rb); >+ gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 16, 16); >+ fb = gl.createFramebuffer(); >+ return rb; >+ }, >+ >+ bindFunction: function(rb) { >+ gl.bindRenderbuffer(gl.RENDERBUFFER, rb); >+ }, >+ >+ implicitBindFunctions: function(expectedError) { >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ shouldGenerateGLError(gl, expectedError, "gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rb)"); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ }, >+ >+ modificationFunctions: function(expectedError) { >+ shouldGenerateGLError(gl, expectedError, "gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 16, 16)"); >+ }, >+ >+ queryFunctions: function(expectedError) { >+ shouldGenerateGLError(gl, expectedError, "gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)"); >+ }, >+ }; >+ >+ >+ var shaderTests = { >+ resourceType: "shader", >+ >+ setupFunction: function() { >+ var shaderSource = "Hello World"; >+ shader = gl.createShader(gl.VERTEX_SHADER); >+ gl.shaderSource(shader, shaderSource); >+ shaderProgram = gl.createProgram(); >+ gl.attachShader(shaderProgram, shader); >+ return shader; >+ }, >+ >+ bindFunction: function(shader) { >+ gl.detachShader(shaderProgram, shader); // you can't attach if a shader is already attached. >+ gl.attachShader(shaderProgram, shader); >+ }, >+ >+ implicitBindFunctions: function(expectedError) { >+ }, >+ >+ modificationFunctions: function(expectedError) { >+ shouldGenerateGLError(gl, expectedError, "gl.shaderSource(shader, 'foo')"); >+ shouldGenerateGLError(gl, expectedError, "gl.compileShader(shader)"); >+ }, >+ >+ queryFunctions: function(expectedError) { >+ shouldGenerateGLError(gl, expectedError, "gl.getShaderParameter(shader, gl.COMPILE_STATUS)"); >+ shouldGenerateGLError(gl, expectedError, "gl.getShaderInfoLog(shader)"); >+ }, >+ }; >+ >+ var textureTests = { >+ resourceType: "texture", >+ >+ setupFunction: function() { >+ tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 16, 16, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); >+ return tex; >+ }, >+ >+ bindFunction: function(tex) { >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ }, >+ >+ implicitBindFunctions: function(expectedError) { >+ }, >+ >+ modificationFunctions: function(expectedError) { >+ shouldGenerateGLError(gl, expectedError, "gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.REPEAT)"); >+ shouldGenerateGLError(gl, expectedError, "gl.generateMipmap(gl.TEXTURE_2D)"); >+ shouldGenerateGLError(gl, expectedError, "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 16, 16, 0, gl.RGBA, gl.UNSIGNED_BYTE, null)"); >+ shouldGenerateGLError(gl, expectedError, "gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(4))"); >+ shouldGenerateGLError(gl, expectedError, "gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0, 0, 16, 16, 0)"); >+ shouldGenerateGLError(gl, expectedError, "gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 0, 0, 16, 16)"); >+ // TODO: Add compressed texture test if extension exists? >+ }, >+ >+ queryFunctions: function(expectedError) { >+ shouldGenerateGLError(gl, expectedError, "gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S)"); >+ }, >+ }; >+ >+ var testResourceWithSingleContext = function(info, callback) { >+ var resourceType = info.resourceType; >+ >+ debug("") >+ debug("test " + resourceType); >+ var resource = info.setupFunction(); >+ ext.releaseSharedResource(resource); >+ >+ debug(""); >+ debug("test " + resourceType + " functions can not be called on released " + resourceType); >+ info.modificationFunctions(gl.INVALID_OPERATION); >+ info.implicitBindFunctions(gl.INVALID_OPERATION); >+ info.queryFunctions(gl.INVALID_OPERATION); >+ >+ debug(""); >+ debug("test acquring " + resourceType); >+ ext.acquireSharedResource(resource, ext.READ_ONLY, function() { >+ debug(""); >+ debug("test " + resourceType + " functions can not be called on READ_ONLY acquired " + resourceType + " that has not been bound"); >+ info.queryFunctions(gl.INVALID_OPERATION); >+ info.modificationFunctions(gl.INVALID_OPERATION); >+ >+ debug(""); >+ debug("test query " + resourceType + " functions can be called on READ_ONLY acquired " + resourceType + " that has been bound but not " + resourceType + " modification functions"); >+ info.bindFunction(resource); >+ info.queryFunctions(gl.NO_ERROR); >+ info.modificationFunctions(gl.INVALID_OPERATION); >+ >+ ext.releaseSharedResource(resource); >+ ext.acquireSharedResource(resource, ext.EXCLUSIVE, function() { >+ debug(""); >+ debug("test " + resourceType + " functions can not be called on EXCLUSIVE acquired " + resourceType + " that has not been bound"); >+ info.queryFunctions(gl.INVALID_OPERATION); >+ info.modificationFunctions(gl.INVALID_OPERATION); >+ >+ debug(""); >+ debug("test all " + resourceType + " functions can be called on EXCLUSIVE acquired " + resourceType + " that has been bound."); >+ info.bindFunction(resource) >+ info.queryFunctions(gl.NO_ERROR); >+ info.modificationFunctions(gl.NO_ERROR); >+ callback(); >+ }); >+ }); >+ }; >+ >+ var makeSingleContextResourceTest = function(info) { >+ return function(callback) { >+ testResourceWithSingleContext(info, callback); >+ }; >+ }; >+ >+ var testCommonResourceFeatures = function(info, callback) { >+ var type = info.resourceType.charAt(0).toUpperCase() + info.resourceType.slice(1); >+ acquiredFlag = false; >+ debug(""); >+ debug("test common features of " + type); >+ >+ resource = info.setupFunction(); >+ info.bindFunction(resource); >+ >+ debug("Test a deleted resource can still be acquired."); >+ var checkAcquireAfterDelete = function() { >+ debug("check Acquire After Delete"); >+ shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.delete" + type + "(resource)"); >+// TODO: fix spec then comment this in shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.bind" + type + "(gl." + target + ", resource)"); // You can't bind a deleted resource >+ shouldGenerateGLError(gl, gl.NO_ERROR, "ext.releaseSharedResource(resource)"); >+ callback(); >+ }; >+ >+ var checkDeleteExclusive = function() { >+ debug("check delete EXLUSIVE"); >+ shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.delete" + type + "(resource)"); >+ info.bindFunction(resource); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "no error deleting exclusively acquired resource"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.delete" + type + "(resource)"); >+ ext.releaseSharedResource(resource); >+ ext.acquireSharedResource(resource, ext.EXCLUSIVE, checkAcquireAfterDelete); >+ }; >+ >+ var checkDeleteReadOnly = function() { >+ acquiredFlag = true; >+ debug("check delete READ_ONLY"); >+ shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.delete" + type + "(resource)"); >+ info.bindFunction(resource); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "no error bind read only acquired resource"); >+ shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.delete" + type + "(resource)"); // We're READ_ONLY so this should fail >+ ext.releaseSharedResource(resource); >+ ext.acquireSharedResource(resource, ext.EXCLUSIVE, checkDeleteExclusive); >+ }; >+ >+ debug("Test you can't have 2 outstanding requests for the same resource."); >+ ext.releaseSharedResource(resource); >+ ext.acquireSharedResource(resource, ext.READ_ONLY, checkDeleteReadOnly); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "should be no error from 1st acquire request"); >+ ext.acquireSharedResource(resource, ext.READ_ONLY, checkDeleteReadOnly); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "should be INVALID_OPERATION from 2nd acquire request"); >+ >+ debug("Test acquire does not happen immediately on release (must exit current event)"); >+ shouldBeTrue("acquiredFlag === false"); >+ }; >+ >+ var makeCommonResourceFeatureTest = function(info) { >+ return function(callback) { >+ testCommonResourceFeatures(info, callback); >+ }; >+ }; >+ >+ // acquire multiple resources in multiple contexts. >+ var acquireMultipleResources = function(extensions, resources, mode, callback) { >+ var numNeeded = resources.length * extensions.length; >+ >+ var checkAcquire = function() { >+ --numNeeded; >+ if (numNeeded == 0) { >+ callback(); >+ } >+ }; >+ >+ resources.forEach(function(resource) { >+ extensions.forEach(function(ext) { >+ ext.acquireSharedResource(resource, mode, checkAcquire); >+ }); >+ }); >+ }; >+ >+ // release multiple resources in multiple contexts. >+ var releaseMultipleResources = function(extensions, resources) { >+ resources.forEach(function(resource) { >+ extensions.forEach(function(ext) { >+ ext.releaseSharedResource(resource); >+ }); >+ }); >+ }; >+ >+ var testRendering = function(callback) { >+ debug(""); >+ debug("test rendering"); >+ var positionLocation = 0; >+ var texcoordLocation = 1; >+ var program = wtu.setupSimpleTextureProgram(gl, positionLocation, texcoordLocation); >+ var buffers = wtu.setupUnitQuad(gl, positionLocation, texcoordLocation); >+ var rb = gl.createRenderbuffer(); >+ var fb = gl.createFramebuffer(); >+ >+ var elementBuf = gl.createBuffer(); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, elementBuf); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array([0, 1, 2, 3, 4, 5]), gl.STATIC_DRAW); >+ >+ var width = 16; >+ var height = 16; >+ >+ gl.bindRenderbuffer(gl.RENDERBUFFER, rb); >+ gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, width, height); >+ >+ var destTex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, destTex); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rb); >+ // It's not clear if gl.RGBA4 must be framebuffer complete. >+ var canCheckRenderbuffer = (gl.checkFramebufferStatus(gl.FRAMEBUFFER) == gl.FRAMEBUFFER_COMPLETE); >+ >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, destTex, 0); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "setup"); >+ shouldBeTrue("gl.checkFramebufferStatus(gl.FRAMEBUFFER) == gl.FRAMEBUFFER_COMPLETE"); >+ >+ var tex = gl.createTexture(); >+ wtu.fillTexture(gl, tex, 1, 1, [0, 255, 0, 255]); >+ >+ if (!program) { >+ testFailed("could not link program"); >+ callback(); >+ return; >+ } >+ >+ var releaseAndAcquireResources = function(callback) { >+ var resources = [buffers[0], buffers[1], tex, program, elementBuf]; >+ releaseMultipleResources([ext], resources); >+ acquireMultipleResources([ext, ext2], resources, ext.READ_ONLY, callback); >+ }; >+ >+ var doRenderTest = function(callback) { >+ debug("Test 2 contexts can render with read only resources."); >+ >+ shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.drawArrays(gl.TRIANGLES, 0, 6)"); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buffers[0]); >+ shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.drawArrays(gl.TRIANGLES, 0, 6)"); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buffers[1]); >+ shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.drawArrays(gl.TRIANGLES, 0, 6)"); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.drawArrays(gl.TRIANGLES, 0, 6)"); >+ gl.useProgram(program); >+ >+ // Render to canvas1; >+ debug("render with context 1"); >+ wtu.checkCanvasRect(gl, 0, 0, width, height, [0, 0, 0, 0]); >+ wtu.drawUnitQuad(gl); >+ wtu.checkCanvasRect(gl, 0, 0, width, height, [0, 255, 0, 255]); >+ >+ shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0)"); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, elementBuf); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0)"); >+ wtu.checkCanvasRect(gl, 0, 0, width, height, [0, 255, 0, 255]); >+ >+ // Render to canvas2; >+ debug("render with context 2"); >+ gl2.useProgram(program); >+ >+ gl2.bindBuffer(gl.ARRAY_BUFFER, buffers[0]); >+ gl2.enableVertexAttribArray(positionLocation); >+ gl2.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0); >+ gl2.bindBuffer(gl.ARRAY_BUFFER, buffers[1]); >+ gl2.enableVertexAttribArray(texcoordLocation); >+ gl2.vertexAttribPointer(texcoordLocation, 2, gl.FLOAT, false, 0, 0); >+ >+ gl2.bindTexture(gl.TEXTURE_2D, tex); >+ >+ wtu.checkCanvas(gl2, [0, 0, 0, 0]); >+ wtu.drawUnitQuad(gl2); >+ wtu.checkCanvas(gl2, [0, 255, 0, 255]); >+ >+ shouldGenerateGLError(gl2, gl2.INVALID_OPERATION, "gl2.drawElements(gl2.TRIANGLES, 6, gl2.UNSIGNED_SHORT, 0)"); >+ gl2.bindBuffer(gl2.ELEMENT_ARRAY_BUFFER, elementBuf); >+ gl2.clear(gl2.COLOR_BUFFER_BIT); >+ shouldGenerateGLError(gl2, gl2.NO_ERROR, "gl2.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0)"); >+ wtu.checkCanvas(gl2, [0, 255, 0, 255]); >+ >+ debug("Test you can't render to a framebuffer with a released texture"); >+ ext.releaseSharedResource(destTex); >+ shouldGenerateGLError(gl, gl.INVALID_FRAMEBUFFER_OPERATION, "gl.drawArrays(gl.TRIANGLES, 0, 6)"); >+ shouldGenerateGLError(gl, gl.INVALID_FRAMEBUFFER_OPERATION, "gl.clear(gl.COLOR_BUFFER_BIT)"); >+ >+ debug("Test you can't read from a framebuffer with a released texture"); >+ shouldGenerateGLError(gl, gl.INVALID_FRAMEBUFFER_OPERATION, "gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(4))"); >+ >+ ext.acquireSharedResource(destTex, ext.READ_ONLY, callback); >+ }; >+ >+ var checkReadOnlyTextureOnFramebuffer = function(callback) { >+ debug(""); >+ debug("test READ_ONLY texture attachment"); >+ debug("Test we fail of we haven't bound again"); >+ shouldGenerateGLError(gl, gl.INVALID_FRAMEBUFFER_OPERATION, "gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(4))"); >+ shouldBeTrue("gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE"); >+ shouldBeTrue("gl.checkFramebufferStatus(gl.READ_FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE"); >+ shouldBeTrue("gl.checkFramebufferStatus(gl.DRAW_FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE"); >+ >+ gl.activeTexture(gl.TEXTURE1); >+ gl.bindTexture(gl.TEXTURE_2D, destTex); >+ gl.activeTexture(gl.TEXTURE0); >+ debug("Test we fail to draw because we're read only."); >+ shouldBeTrue("gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE"); >+ shouldBeTrue("gl.checkFramebufferStatus(gl.DRAW_FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE"); >+ shouldGenerateGLError(gl, gl.INVALID_FRAMEBUFFER_OPERATION, "gl.drawArrays(gl.TRIANGLES, 0, 6)"); >+ shouldGenerateGLError(gl, gl.INVALID_FRAMEBUFFER_OPERATION, "gl.clear(gl.COLOR_BUFFER_BIT)"); >+ >+ debug("Test we can read a READ_ONLY texture."); >+ shouldBeTrue("gl.checkFramebufferStatus(gl.READ_FRAMEBUFFER) == gl.FRAMEBUFFER_COMPLETE"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(4))"); >+ >+ checkRenderbuffer(callback); >+ }; >+ >+ var checkRenderbuffer = function(callback) { >+ if (canCheckRenderbuffer) { >+ gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rb); >+ wtu.drawUnitQuad(gl); >+ wtu.checkCanvasRect(gl, 0, 0, width, height, [0, 255, 0, 255]); >+ >+ debug("Test you can't render to a framebuffer with a released renderbuffer"); >+ ext.releaseSharedResource(rb); >+ shouldGenerateGLError(gl, gl.INVALID_FRAMEBUFFER_OPERATION, "gl.drawArrays(gl.TRIANGLES, 0, 6)"); >+ shouldGenerateGLError(gl, gl.INVALID_FRAMEBUFFER_OPERATION, "gl.clear(gl.COLOR_BUFFER_BIT)"); >+ >+ debug("Test you can't read from a framebuffer with a released renderbuffer"); >+ shouldGenerateGLError(gl, gl.INVALID_FRAMEBUFFER_OPERATION, "gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(4))"); >+ } >+ >+ ext.acquireSharedResource(rb, ext.READ_ONLY, callback); >+ }; >+ >+ var checkReadOnlyRenderbufferOnFramebuffer = function(callback) { >+ if (canCheckRenderbuffer) { >+ debug(""); >+ debug("test READ_ONLY renderbuffer attachment"); >+ debug("Test we fail of we haven't bound again"); >+ shouldGenerateGLError(gl, gl.INVALID_FRAMEBUFFER_OPERATION, "gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(4))"); >+ shouldBeTrue("gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE"); >+ shouldBeTrue("gl.checkFramebufferStatus(gl.READ_FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE"); >+ shouldBeTrue("gl.checkFramebufferStatus(gl.DRAW_FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE"); >+ >+ gl.bindRenderbuffer(gl.RENDERBUFFER, rb); >+ debug("Test we fail to draw because we're read only."); >+ shouldGenerateGLError(gl, gl.INVALID_FRAMEBUFFER_OPERATION, "gl.drawArrays(gl.TRIANGLES, 0, 6)"); >+ shouldGenerateGLError(gl, gl.INVALID_FRAMEBUFFER_OPERATION, "gl.clear(gl.COLOR_BUFFER_BIT)"); >+ shouldBeTrue("gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE"); >+ shouldBeTrue("gl.checkFramebufferStatus(gl.DRAW_FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE"); >+ >+ debug("Test we can read a READ_ONLY renderbuffer."); >+ shouldBeTrue("gl.checkFramebufferStatus(gl.READ_FRAMEBUFFER) == gl.FRAMEBUFFER_COMPLETE"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(4))"); >+ } >+ >+ ext.releaseSharedResource(rb); >+ ext.acquireSharedResource(rb, ext.READ_ONLY, callback); >+ }; >+ >+ var checkRenderbufferBindsOnAttach = function(callback) { >+ if (canCheckRenderbuffer) { >+ debug(""); >+ debug("Test we fail of we haven't bound again"); >+ shouldGenerateGLError(gl, gl.INVALID_FRAMEBUFFER_OPERATION, "gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(4))"); >+ >+ debug("Test attaching a renderbuffer marks it as bound"); >+ gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rb); >+ >+ debug("Test we can read a READ_ONLY renderbuffer."); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(4))"); >+ } >+ >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, destTex, 0); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(4))"); >+ ext.releaseSharedResource(destTex); >+ ext.acquireSharedResource(destTex, ext.READ_ONLY, callback); >+ }; >+ >+ var checkTextureBindsOnAttach = function(callback) { >+ debug(""); >+ debug("Test we fail of we haven't bound again"); >+ shouldGenerateGLError(gl, gl.INVALID_FRAMEBUFFER_OPERATION, "gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(4))"); >+ >+ debug("Test attaching a texture marks it as bound"); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, destTex, 0); >+ >+ debug("Test we can read a READ_ONLY texture."); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(4))"); >+ >+ callback(); >+ }; >+ >+ var checkCanNotRenderWithReleasedProgram = function(callback) { >+ debug(""); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.drawArrays(gl.TRIANGLES, 0, 6)"); >+ >+ ext.releaseSharedResource(program); >+ >+ debug("Test we can't draw with a released program."); >+ shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.drawArrays(gl.TRIANGLES, 0, 6)"); >+ >+ ext.acquireSharedResource(program, ext.EXCLUSIVE, callback); >+ ext2.releaseSharedResource(program); >+ }; >+ >+ var checkCanNotRenderWithReleasedBuffer = function(callback) { >+ debug(""); >+ gl.useProgram(program); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.drawArrays(gl.TRIANGLES, 0, 6)"); >+ >+ ext.releaseSharedResource(buffers[0]); >+ >+ debug("Test we can't draw with a released buffer."); >+ shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.drawArrays(gl.TRIANGLES, 0, 6)"); >+ >+ ext.acquireSharedResource(buffers[0], ext.READ_ONLY, callback); >+ }; >+ >+ var checkCanNotRenderWithReleasedTexture = function(callback) { >+ debug(""); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buffers[0]); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.drawArrays(gl.TRIANGLES, 0, 6)"); >+ >+ ext.releaseSharedResource(tex); >+ >+ debug("Test we can't draw with a released texture."); >+ shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.drawArrays(gl.TRIANGLES, 0, 6)"); >+ >+ ext.acquireSharedResource(tex, ext.READ_ONLY, callback); >+ }; >+ >+ var checkCanRenderWithReleasedShader = function(callback) { >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ var shaders = gl.getAttachedShaders(program); >+ ext.releaseSharedResource(shaders[0]); >+ >+ debug(""); >+ debug("Test we can draw with a released shader."); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.drawArrays(gl.TRIANGLES, 0, 6)"); >+ callback(); >+ }; >+ >+ runSequence( >+ [ >+ releaseAndAcquireResources, >+ doRenderTest, >+ checkReadOnlyTextureOnFramebuffer, >+ checkReadOnlyRenderbufferOnFramebuffer, >+ checkRenderbufferBindsOnAttach, >+ checkTextureBindsOnAttach, >+ checkCanNotRenderWithReleasedProgram, >+ checkCanNotRenderWithReleasedBuffer, >+ checkCanNotRenderWithReleasedTexture, >+ checkCanRenderWithReleasedShader, >+ callback, >+ ]); >+ }; >+ >+ var testMisc = function(callback) { >+ debug(""); >+ debug("Test you can't release a framebuffer"); >+ // TODO: It's not clear what should happen here to me. >+ //shouldThrow("ext.releaseSharedResource(fb)", "TypeError"); >+ >+ debug("") >+ debug("Test you can compare sharegroups"); >+ var gl3 = wtu.create3DContext(); >+ ext3 = wtu.getExtensionWithKnownPrefixes(gl3, "WEBGL_shared_resources"); >+ // TODO: comment in once this comparison works. >+ //shouldBeTrue("ext.group == ext2.group"); >+ shouldBeTrue("ext.group != ext3.group"); >+ >+ debug("Test you can't use resources from another different group."); >+ tex3 = gl3.createTexture(); >+ shouldGenerateGLError(gl, gl.INVALID_OPERATION, "ext.releaseSharedResource(tex3)"); >+ shouldGenerateGLError(gl, gl.INVALID_OPERATION, "ext.acquireSharedResource(tex3, ext.READ_ONLY, makeFailCallback('should not be able to acquire resource from other context'))"); >+ >+ var failTest = function() { >+ testFailed("cancelled callback was called"); >+ }; >+ >+ var tex = gl.createTexture(); >+ debug("test releasing from the wrong context. Should be a no-op"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "ext2.releaseSharedResource(tex)"); >+ >+ id = ext2.acquireSharedResource(tex, ext.READ_ONLY, failTest); >+ debug("test cancelling a request for which an event has not been posted"); >+ ext2.cancelAcquireSharedResource(id); >+ >+ debug("test cancelling a request for which an event has already been posted"); >+ ext.releaseSharedResource(tex); >+ id = ext.acquireSharedResource(tex, ext.READ_ONLY, failTest); >+ ext.cancelAcquireSharedResource(id); >+ >+ debug("test cancelling on the wrong context's extension is ignored"); >+ id = ext2.acquireSharedResource(tex, ext.READ_ONLY, callback); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'ext.cancelAcquireSharedResource(id)'); >+ }; >+ >+ var testLostContext = function(callback) { >+ var WEBGL_lose_context = wtu.getExtensionWithKnownPrefixes(gl, "WEBGL_lose_context"); >+ if (!WEBGL_lose_context) { >+ callback(); >+ return; >+ } >+ >+ var tex = gl.createTexture(); >+ var tex2 = gl.createTexture(); >+ >+ var setupAcquire = function(callback) { >+ var callbacksNeeded = 3; >+ var waitForContextLostAndAcquire = function(e) { >+ if (e && e.preventDefault) { >+ e.preventDefault(); // allow context restore. >+ } >+ --callbacksNeeded; >+ if (callbacksNeeded == 0) { >+ callback(); >+ } >+ return false; >+ }; >+ >+ debug(""); >+ debug("Test extension still functions during context lost."); >+ acquireMultipleResources([ext2], [tex, tex2], ext2.READ_ONLY, waitForContextLostAndAcquire); >+ canvas1.addEventListener("webglcontextlost", waitForContextLostAndAcquire, false); >+ canvas2.addEventListener("webglcontextlost", waitForContextLostAndAcquire, false); >+ // Release one before context lost >+ ext.releaseSharedResource(tex); >+ WEBGL_lose_context.loseContext(); >+ // Release one after context lost >+ ext.releaseSharedResource(tex2); >+ >+ shouldBeTrue('gl.isContextLost()'); >+ shouldBeTrue('gl2.isContextLost()'); >+ }; >+ >+ var checkAcquireExt2 = function(callback) { >+ testPassed("was able to acquire resources during context lost"); >+ acquireMultipleResources([ext], [tex, tex2], ext.READ_ONLY, callback); >+ }; >+ >+ var checkAcquireExt = function(callback) { >+ testPassed("was able to request acquire resources during context lost"); >+ canvas1.addEventListener("webglcontextrestored", callback, false); >+ WEBGL_lose_context.restoreContext(); >+ }; >+ >+ var passTest = function(callback) { >+ testPassed("extension works during lost context"); >+ callback(); >+ }; >+ >+ runSequence( >+ [ >+ setupAcquire, >+ checkAcquireExt2, >+ checkAcquireExt, >+ passTest, >+ callback, >+ ]); >+ }; >+ >+ runSequence( >+ [ >+ makeCommonResourceFeatureTest(bufferTests), >+ makeCommonResourceFeatureTest(programTests), >+ makeCommonResourceFeatureTest(shaderTests), >+ makeCommonResourceFeatureTest(renderbufferTests), >+ makeCommonResourceFeatureTest(textureTests), >+ makeSingleContextResourceTest(bufferTests), >+ makeSingleContextResourceTest(programTests), >+ makeSingleContextResourceTest(renderbufferTests), >+ makeSingleContextResourceTest(shaderTests), >+ makeSingleContextResourceTest(textureTests), >+ testRendering, >+ testMisc, >+ testLostContext, >+ finishTest, >+ ]); >+ >+} >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/00_test_list.txt >new file mode 100644 >index 00000000000..8ab2039cc67 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/00_test_list.txt >@@ -0,0 +1,12 @@ >+bugs/00_test_list.txt >+--min-version 1.0.3 constructors/00_test_list.txt >+functions/00_test_list.txt >+implicit/00_test_list.txt >+--min-version 1.0.2 literals/00_test_list.txt >+--min-version 1.0.2 matrices/00_test_list.txt >+misc/00_test_list.txt >+--min-version 1.0.4 preprocessor/00_test_list.txt >+reserved/00_test_list.txt >+--min-version 1.0.2 samplers/00_test_list.txt >+variables/00_test_list.txt >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/.vscode/settings.json b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/.vscode/settings.json >new file mode 100644 >index 00000000000..3b664107303 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/.vscode/settings.json >@@ -0,0 +1,3 @@ >+{ >+ "git.ignoreLimitWarning": true >+} >\ No newline at end of file >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/00_test_list.txt >new file mode 100644 >index 00000000000..10ae50f65ac >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/00_test_list.txt >@@ -0,0 +1,49 @@ >+--min-version 1.0.4 angle-ambiguous-function-call.html >+--min-version 1.0.4 angle-constructor-invalid-parameters.html >+--min-version 1.0.3 angle-d3d11-compiler-error.html >+--min-version 1.0.3 angle-dx-variable-bug.html >+--min-version 1.0.3 array-of-struct-with-int-first-position.html >+--min-version 1.0.4 assign-to-swizzled-twice-in-function.html >+--min-version 1.0.4 bool-type-cast-bug-int-float.html >+--min-version 1.0.3 compare-loop-index-to-uniform.html >+--min-version 1.0.3 complex-glsl-does-not-crash.html >+--min-version 1.0.4 compound-assignment-type-combination.html >+--min-version 1.0.3 conditional-discard-in-loop.html >+--min-version 1.0.3 conditional-discard-optimization.html >+--min-version 1.0.4 conditional-texture-fetch.html >+--min-version 1.0.3 constant-precision-qualifier.html >+--min-version 1.0.3 --max-version 1.99 essl3-shaders-with-webgl1.html >+--min-version 1.0.4 floor-div-cos-should-not-truncate.html >+--min-version 1.0.3 floored-division-accuracy.html >+--min-version 1.0.3 fragcoord-linking-bug.html >+--min-version 1.0.4 gl-fragcoord-multisampling-bug.html >+--min-version 1.0.4 global-invariant-does-not-leak-across-shaders.html >+--min-version 1.0.4 if-return-and-elseif.html >+--min-version 1.0.4 init-array-with-loop.html >+--min-version 1.0.4 invariant-does-not-leak-across-shaders.html >+--min-version 1.0.4 in-parameter-passed-as-inout-argument-and-global.html >+--min-version 1.0.4 logic-inside-block-without-braces.html >+--min-version 1.0.3 long-expressions-should-not-crash.html >+--min-version 1.0.4 loop-if-loop-gradient.html >+--min-version 1.0.3 modulo-arithmetic-accuracy.html >+--min-version 1.0.3 multiplication-assignment.html >+--min-version 1.0.3 nested-functions-should-not-crash.html >+--min-version 1.0.4 nested-loops-with-break-and-continue.html >+--min-version 1.0.4 nested-sequence-operator.html >+--min-version 1.0.4 pow-of-small-constant-in-user-defined-function.html >+--min-version 1.0.4 pow-with-constant-exponent-should-not-crash.html >+--min-version 1.0.4 qualcomm-crash.html >+--min-version 1.0.4 qualcomm-loop-with-continue-crash.html >+--min-version 1.0.4 sampler-array-struct-function-arg.html >+--min-version 1.0.3 sampler-array-using-loop-index.html >+--min-version 1.0.4 sampler-struct-function-arg.html >+--min-version 1.0.4 sequence-operator-evaluation-order.html >+--min-version 1.0.4 sketchfab-lighting-shader-crash.html >+--min-version 1.0.4 struct-constructor-highp-bug.html >+--min-version 1.0.3 temp-expressions-should-not-crash.html >+--min-version 1.0.4 unary-minus-operator-float-bug.html >+--min-version 1.0.4 undefined-index-should-not-crash.html >+--min-version 1.0.3 uniforms-should-not-lose-values.html >+--min-version 1.0.4 varying-arrays-should-not-be-reversed.html >+--min-version 1.0.4 vector-scalar-arithmetic-inside-loop.html >+--min-version 1.0.4 vector-scalar-arithmetic-inside-loop-complex.html >\ No newline at end of file >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/README.md b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/README.md >new file mode 100644 >index 00000000000..d917f6d7410 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/README.md >@@ -0,0 +1,18 @@ >+BUGS >+==== >+ >+This folder is for GLSL tests that test driver specific bugs. >+ >+Most tests in other folders are fairly generic. While they might >+only fail on specific drivers the tests themselves are designed >+to test something in a generic way. >+ >+Tests in this folder on the otherhand are very targeted. They may >+have very specific shaders that only fail under specific circumstances >+on specific drivers. >+ >+An example might be if there was a driver that failed only when >+and identifier was named "ABC". It makes no sense to have a generic >+test that says "must allow ABC". A generic test would test some >+subset of all possible identifiers not just one. >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/angle-ambiguous-function-call.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/angle-ambiguous-function-call.html >new file mode 100644 >index 00000000000..958b2c743ad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/angle-ambiguous-function-call.html >@@ -0,0 +1,93 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>ANGLE ambiguous function call test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshaderAmbiguousHLSLFunctionCall" type="x-shader/x-fragment"> >+precision mediump float; >+uniform vec4 uv; >+uniform mat2 um; >+vec4 foo(vec4 v) { >+ return v; >+} >+vec4 foo(mat2 m) { >+ return vec4(m); >+} >+void main() >+{ >+ gl_FragColor = foo(uv) + foo(um); >+} >+</script> >+<script id="fshaderAmbiguousHLSLStructFunctionCall" type="x-shader/x-fragment"> >+precision mediump float; >+uniform float u_zero; >+struct S { float foo; }; >+struct S2 { float foo; }; >+float get(S s) { return s.foo + u_zero; } >+float get(S2 s2) { return 0.25 + s2.foo + u_zero; } >+void main() >+{ >+ S s; >+ s.foo = 0.5; >+ S2 s2; >+ s2.foo = 0.25; >+ gl_FragColor = vec4(0.0, get(s) + get(s2), 0.0, 1.0); >+} >+</script> >+<script type="text/javascript"> >+"use strict"; >+description("Test overloaded functions with vec4 and mat2 parameters that have had issues in ANGLE. Issues were due to HLSL compiler treating float4 and float2x2 as the same type when resolving which overloaded function to call."); >+ >+GLSLConformanceTester.runTests([ >+{ >+ fShaderId: 'fshaderAmbiguousHLSLFunctionCall', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Disambiguate correctly between overloaded function calls with 4-component float parameters" >+}, >+{ >+ fShaderId: 'fshaderAmbiguousHLSLStructFunctionCall', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Disambiguate correctly between overloaded function calls with struct parameters", >+ render: true >+} >+]); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/angle-constructor-invalid-parameters.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/angle-constructor-invalid-parameters.html >new file mode 100644 >index 00000000000..6e154ac146a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/angle-constructor-invalid-parameters.html >@@ -0,0 +1,77 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>ANGLE constructor bugs test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshaderSamplerInConstructorArguments" type="x-shader/x-fragment"> >+precision mediump float; >+uniform sampler2D s; >+void main() >+{ >+ gl_FragColor = vec4(0.0, s, 0.0, 0.0); >+} >+</script> >+<script id="fshaderVoidInConstructorArguments" type="x-shader/x-fragment"> >+precision mediump float; >+void foo() {} >+void main() >+{ >+ gl_FragColor = vec4(0.0, foo(), 0.0, 0.0); >+} >+</script> >+<script type="text/javascript"> >+"use strict"; >+description("Test constructors that have had issues in ANGLE"); >+ >+GLSLConformanceTester.runTests([ >+{ >+ fShaderId: 'fshaderSamplerInConstructorArguments', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "Sampler in constructor arguments should not compile" >+}, >+{ >+ fShaderId: 'fshaderVoidInConstructorArguments', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "Void in constructor arguments should not compile" >+}, >+]); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/angle-d3d11-compiler-error.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/angle-d3d11-compiler-error.html >new file mode 100644 >index 00000000000..cdccb2fcfb8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/angle-d3d11-compiler-error.html >@@ -0,0 +1,117 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>ANGLE D3D11 Bug - Shader compilation error</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+ >+<script id="vs" type="x-shader/x-fragment"> >+precision mediump float; >+uniform float A; >+void main() { >+ bool B = bool(A); >+ float x = B ? -A : 1.+A; >+ float y = B ? 1.+A : -A; >+ gl_Position = vec4(x, y, 0, 0); >+} >+ >+</script> >+<script id="fs" type="x-shader/x-fragment"> >+precision mediump float; >+void main() { >+ gl_FragColor = vec4(1, 0, 0, 1); >+} >+</script> >+ >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" width="2" height="2"> </canvas> >+<script> >+"use strict"; >+// See http://crbug.com/371868 for original failing case. >+description("This test checks an ANGLE D3D11 shader compiler error."); >+ >+debug(""); >+debug("Canvas.getContext"); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("canvas"); >+if (!gl) { >+ testFailed("context does not exist"); >+} else { >+ testPassed("context exists"); >+ >+ debug(""); >+ debug("Checking shader compilation and linking."); >+ >+ checkCompilation() >+} >+ >+function checkCompilation() { >+ var vs = gl.createShader(gl.VERTEX_SHADER); >+ gl.shaderSource(vs, document.getElementById("vs").text); >+ gl.compileShader(vs); >+ if (!gl.getShaderParameter(vs, gl.COMPILE_STATUS)) { >+ testFailed("Vertex Shader failed to compile: " + gl.getShaderInfoLog(vs)); >+ return; >+ } >+ >+ var fs = gl.createShader(gl.FRAGMENT_SHADER); >+ gl.shaderSource(fs, document.getElementById("fs").text); >+ gl.compileShader(fs); >+ if (!gl.getShaderParameter(fs, gl.COMPILE_STATUS)) { >+ testFailed("Fragment Shader failed to compile: " + gl.getShaderInfoLog(fs)); >+ return; >+ } >+ >+ var p = gl.createProgram(); >+ gl.attachShader(p, vs); >+ gl.attachShader(p, fs); >+ gl.linkProgram(p); >+ if (!gl.getProgramParameter(p, gl.LINK_STATUS)) { >+ testFailed("Program failed to link: " + gl.getProgramInfoLog(p)); >+ return; >+ } >+ >+ testPassed("Linked Successfully"); >+} >+ >+debug(""); >+var successfullyParsed = true; >+ >+</script> >+<script src="../../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/angle-dx-variable-bug.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/angle-dx-variable-bug.html >new file mode 100644 >index 00000000000..2e637f4ab05 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/angle-dx-variable-bug.html >@@ -0,0 +1,117 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>ANGLE D3D11 Bug - Variables beginning with "dx_"</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+ >+<script id="vs" type="x-shader/x-fragment"> >+precision mediump float; >+attribute vec4 position; >+varying float dx_var; >+void main() { >+ gl_Position = position; >+ dx_var = position.x; >+} >+ >+</script> >+<script id="fs" type="x-shader/x-fragment"> >+precision mediump float; >+varying float dx_var; >+void main() { >+ gl_FragColor = vec4(dx_var, 0, 0, 1); >+} >+</script> >+ >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" width="2" height="2"> </canvas> >+<script> >+"use strict"; >+// See http://crbug.com/371868 for original failing case. >+description("This test checks an ANGLE D3D11 shader compiler error."); >+ >+debug(""); >+debug("Canvas.getContext"); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("canvas"); >+if (!gl) { >+ testFailed("context does not exist"); >+} else { >+ testPassed("context exists"); >+ >+ debug(""); >+ debug("Checking shader compilation and linking."); >+ >+ checkCompilation() >+} >+ >+function checkCompilation() { >+ var vs = gl.createShader(gl.VERTEX_SHADER); >+ gl.shaderSource(vs, document.getElementById("vs").text); >+ gl.compileShader(vs); >+ if (!gl.getShaderParameter(vs, gl.COMPILE_STATUS)) { >+ testFailed("Vertex Shader failed to compile: " + gl.getShaderInfoLog(vs)); >+ return; >+ } >+ >+ var fs = gl.createShader(gl.FRAGMENT_SHADER); >+ gl.shaderSource(fs, document.getElementById("fs").text); >+ gl.compileShader(fs); >+ if (!gl.getShaderParameter(fs, gl.COMPILE_STATUS)) { >+ testFailed("Fragment Shader failed to compile: " + gl.getShaderInfoLog(fs)); >+ return; >+ } >+ >+ var p = gl.createProgram(); >+ gl.attachShader(p, vs); >+ gl.attachShader(p, fs); >+ gl.linkProgram(p); >+ if (!gl.getProgramParameter(p, gl.LINK_STATUS)) { >+ testFailed("Program failed to link: " + gl.getProgramInfoLog(p)); >+ return; >+ } >+ >+ testPassed("Linked Successfully"); >+} >+ >+debug(""); >+var successfullyParsed = true; >+ >+</script> >+<script src="../../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/array-of-struct-with-int-first-position.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/array-of-struct-with-int-first-position.html >new file mode 100644 >index 00000000000..b02dfe610d7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/array-of-struct-with-int-first-position.html >@@ -0,0 +1,162 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Driver Bug - Array of structs with int or bool in first position</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+ >+<body> >+<canvas id="example" style="border: none;" width="788" height="256"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script id="shader-vs" type="x-shader/x-vertex"> >+attribute vec2 pos; >+void main(void) { >+ gl_Position = vec4(pos, 0.0, 1.0); >+} >+</script> >+ >+<script id="shader-fs-int" type="x-shader/x-fragment"> >+precision mediump float; >+struct Light { >+ int unused; >+ vec3 color; >+}; >+const int numLights = 1; >+void main() { >+ Light lights[numLights]; >+ lights[0].color = vec3(0.0, 0.5, 0.0); >+ >+ vec3 result = vec3(0.0, 0.0, 0.0); >+ for (int i=0; i<numLights; i++) { >+ result += lights[i].color; >+ } >+ gl_FragColor = vec4(result.rgb, 1.0); >+} >+</script> >+ >+<script id="shader-fs-bool" type="x-shader/x-fragment"> >+precision mediump float; >+struct Light { >+ bool unused; >+ vec3 color; >+}; >+const int numLights = 1; >+void main() { >+ Light lights[numLights]; >+ lights[0].color = vec3(0.0, 0.5, 0.0); >+ >+ vec3 result = vec3(0.0, 0.0, 0.0); >+ for (int i=0; i<numLights; i++) { >+ result += lights[i].color; >+ } >+ gl_FragColor = vec4(result.rgb, 1.0); >+} >+</script> >+ >+<script id="shader-fs-bool-read" type="x-shader/x-fragment"> >+precision mediump float; >+struct Light { >+ bool useLight; >+ vec3 color; >+}; >+const int numLights = 1; >+void main() { >+ Light lights[numLights]; >+ lights[0].color = vec3(0.0, 0.5, 0.0); >+ lights[0].useLight = true; >+ >+ vec3 result = vec3(0.0, 0.0, 0.0); >+ for (int i=0; i<numLights; i++) { >+ Light light = lights[i]; >+ if (light.useLight) { >+ result += light.color; >+ } >+ } >+ gl_FragColor = vec4(result.rgb, 1.0); >+} >+</script> >+ >+<script> >+"use strict"; >+ >+function test() { >+ description(); >+ debug( >+ "This test checks accessing an array of structs, where the struct " + >+ "definition has an int or bool in the first position. " + >+ "This test has has failed in OS X on some NVIDIA cards, " + >+ "such as the NVIDIA GeForce GT 650M. If things are working " + >+ "correctly, then there will be a series of 50% green squares.") >+ debug(""); >+ >+ var wtu = WebGLTestUtils; >+ var canvas = document.getElementById("example"); >+ var gl = wtu.create3DContext(canvas); >+ >+ var testNum = 0; >+ var border = 10; // border between test squares for visibility >+ var squareSize = 256; >+ var expectedColor = [0, 127, 0, 255]; // 50% green >+ >+ function subTest(message, fragmentShader) { >+ debug(message); >+ var startX = (squareSize + border) * testNum; >+ var program = wtu.setupProgram( >+ gl, ["shader-vs", fragmentShader], ["pos"], null, true); >+ gl.viewport(startX, 0, squareSize, squareSize); >+ wtu.drawUnitQuad(gl); >+ wtu.checkCanvasRect( >+ gl, startX, 0, squareSize, squareSize, >+ expectedColor, "square should be 50% green", 1); >+ debug(""); >+ testNum++; >+ } >+ >+ if (!gl) { >+ testFailed("context does not exist"); >+ } else { >+ wtu.setupUnitQuad(gl); >+ subTest("Test unused int in first struct position.", "shader-fs-int"); >+ subTest("Test unused bool in first struct position.", "shader-fs-bool"); >+ subTest("Test used bool in first struct position.", "shader-fs-bool-read"); >+ } >+} >+ >+test(); >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/assign-to-swizzled-twice-in-function.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/assign-to-swizzled-twice-in-function.html >new file mode 100644 >index 00000000000..c781e994c39 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/assign-to-swizzled-twice-in-function.html >@@ -0,0 +1,73 @@ >+<!-- >+ >+/* >+** Copyright (c) 2018 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Assigning an assignment to a swizzled value inside function</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+ >+vec2 f() >+{ >+ vec2 r = vec2(0); >+ r.x = r.y = 1.0; >+ return r; >+} >+ >+void main() >+{ >+ gl_FragColor.ga = f(); >+} >+ >+</script> >+<script type="text/javascript"> >+"use strict"; >+description(); >+ >+// Minimal test case based on report at http://crbug.com/798117 >+ >+GLSLConformanceTester.runRenderTests([ >+{ >+ fShaderId: 'fshader', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Assigning an assignment to a swizzled value inside a user-defined function" >+} >+]); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/bool-type-cast-bug-int-float.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/bool-type-cast-bug-int-float.html >new file mode 100644 >index 00000000000..68052955427 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/bool-type-cast-bug-int-float.html >@@ -0,0 +1,333 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Verify int(bool) and float(bool) work correctly (Mac AMD driver bug)</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<canvas id="canvas" width="2" height="2"> </canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader-int1" type="x-shader/x-vertex"> >+attribute vec3 aPosition; >+varying mediump float fvalue; >+uniform bool bvalue; >+ >+void main() { >+ gl_Position = vec4(aPosition, 1); >+ int ivalue = int(bvalue); >+ if (ivalue == 0) { >+ fvalue = 0.0; >+ } else if (ivalue == 1) { >+ fvalue = 1.0; >+ } else { >+ fvalue = -1.0; >+ } >+} >+</script> >+<script id="fshader-int1" type="x-shader/x-fragment"> >+varying mediump float fvalue; >+ >+void main() { >+ if (fvalue == 1.0) >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ else if (fvalue == 0.0) >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); >+ else >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+} >+</script> >+ >+<script id="vshader-int2" type="x-shader/x-vertex"> >+attribute vec3 aPosition; >+ >+void main() { >+ gl_Position = vec4(aPosition, 1); >+} >+</script> >+<script id="fshader-int2" type="x-shader/x-fragment"> >+uniform bool bvalue; >+ >+void main() { >+ int ivalue = int(bvalue); >+ >+ if (ivalue == 1) >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ else if (ivalue == 0) >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); >+ else >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+} >+</script> >+ >+<script id="vshader-float1" type="x-shader/x-vertex"> >+attribute vec3 aPosition; >+varying mediump float fvalue; >+uniform bool bvalue; >+ >+void main() { >+ gl_Position = vec4(aPosition, 1); >+ fvalue = float(bvalue); >+} >+</script> >+<script id="fshader-float1" type="x-shader/x-fragment"> >+varying mediump float fvalue; >+ >+void main() { >+ if (fvalue == 1.0) >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ else if (fvalue == 0.0) >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); >+ else >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+} >+</script> >+ >+<script id="vshader-float2" type="x-shader/x-vertex"> >+attribute vec3 aPosition; >+ >+void main() { >+ gl_Position = vec4(aPosition, 1); >+} >+</script> >+<script id="fshader-float2" type="x-shader/x-fragment"> >+uniform bool bvalue; >+ >+void main() { >+ mediump float fvalue = float(bvalue); >+ >+ if (fvalue == 1.0) >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ else if (fvalue == 0.0) >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); >+ else >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+} >+</script> >+ >+<script id="vshader-vec2-1" type="x-shader/x-vertex"> >+attribute vec3 aPosition; >+varying mediump vec2 fvalue; >+uniform bool bvalue; >+ >+void main() { >+ gl_Position = vec4(aPosition, 1); >+ fvalue = vec2(bvalue); >+} >+</script> >+<script id="fshader-vec2-1" type="x-shader/x-fragment"> >+varying mediump vec2 fvalue; >+ >+void main() { >+ if (fvalue == vec2(1.0, 1.0)) >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ else if (fvalue == vec2(0.0, 0.0)) >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); >+ else >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+} >+</script> >+ >+<script id="vshader-vec2-2" type="x-shader/x-vertex"> >+attribute vec3 aPosition; >+ >+void main() { >+ gl_Position = vec4(aPosition, 1); >+} >+</script> >+<script id="fshader-vec2-2" type="x-shader/x-fragment"> >+precision mediump float; >+uniform bool bvalue; >+ >+void main() { >+ vec2 fvalue = vec2(bvalue); >+ >+ if (fvalue == vec2(1.0, 1.0)) >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ else if (fvalue == vec2(0.0, 0.0)) >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); >+ else >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+} >+</script> >+ >+<script id="vshader-vec3-1" type="x-shader/x-vertex"> >+attribute vec3 aPosition; >+varying mediump vec3 fvalue; >+uniform bool bvalue; >+ >+void main() { >+ gl_Position = vec4(aPosition, 1); >+ fvalue = vec3(bvalue); >+} >+</script> >+<script id="fshader-vec3-1" type="x-shader/x-fragment"> >+varying mediump vec3 fvalue; >+ >+void main() { >+ if (fvalue == vec3(1.0, 1.0, 1.0)) >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ else if (fvalue == vec3(0.0, 0.0, 0.0)) >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); >+ else >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+} >+</script> >+ >+<script id="vshader-vec3-2" type="x-shader/x-vertex"> >+attribute vec3 aPosition; >+ >+void main() { >+ gl_Position = vec4(aPosition, 1); >+} >+</script> >+<script id="fshader-vec3-2" type="x-shader/x-fragment"> >+precision mediump float; >+uniform bool bvalue; >+ >+void main() { >+ vec3 fvalue = vec3(bvalue); >+ >+ if (fvalue == vec3(1.0, 1.0, 1.0)) >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ else if (fvalue == vec3(0.0, 0.0, 0.0)) >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); >+ else >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+} >+</script> >+ >+<script id="vshader-vec4-1" type="x-shader/x-vertex"> >+attribute vec3 aPosition; >+varying mediump vec4 fvalue; >+uniform bool bvalue; >+ >+void main() { >+ gl_Position = vec4(aPosition, 1); >+ fvalue = vec4(bvalue); >+} >+</script> >+<script id="fshader-vec4-1" type="x-shader/x-fragment"> >+varying mediump vec4 fvalue; >+ >+void main() { >+ if (fvalue == vec4(1.0, 1.0, 1.0, 1.0)) >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ else if (fvalue == vec4(0.0, 0.0, 0.0, 0.0)) >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); >+ else >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+} >+</script> >+ >+<script id="vshader-vec4-2" type="x-shader/x-vertex"> >+attribute vec3 aPosition; >+ >+void main() { >+ gl_Position = vec4(aPosition, 1); >+} >+</script> >+<script id="fshader-vec4-2" type="x-shader/x-fragment"> >+precision mediump float; >+uniform bool bvalue; >+ >+void main() { >+ vec4 fvalue = vec4(bvalue); >+ >+ if (fvalue == vec4(1.0, 1.0, 1.0, 1.0)) >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ else if (fvalue == vec4(0.0, 0.0, 0.0, 0.0)) >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); >+ else >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+} >+</script> >+ >+ <script type="application/javascript"> >+"use strict"; >+description("Verify int(bool) and float(bool) work correctly"); >+debug(""); >+var wtu = WebGLTestUtils; >+function test() { >+ var gl = wtu.create3DContext("canvas"); >+ if (!gl) { >+ testFailed("context does not exist"); >+ return; >+ } >+ wtu.setupUnitQuad(gl); >+ >+ var testCases = [ >+ { vshader: "vshader-int1", fshader: "fshader-int1", desc: "vertex shader int" }, >+ { vshader: "vshader-int2", fshader: "fshader-int2", desc: "fragment shader int" }, >+ { vshader: "vshader-float1", fshader: "fshader-float1", desc: "vertex shader float" }, >+ { vshader: "vshader-float2", fshader: "fshader-float2", desc: "fragment shader float" }, >+ { vshader: "vshader-vec2-1", fshader: "fshader-vec2-1", desc: "vertex shader vec2" }, >+ { vshader: "vshader-vec2-2", fshader: "fshader-vec2-2", desc: "fragment shader vec2" }, >+ { vshader: "vshader-vec3-1", fshader: "fshader-vec3-1", desc: "vertex shader vec3" }, >+ { vshader: "vshader-vec3-2", fshader: "fshader-vec3-2", desc: "fragment shader vec3" }, >+ { vshader: "vshader-vec4-1", fshader: "fshader-vec4-1", desc: "vertex shader vec4" }, >+ { vshader: "vshader-vec4-2", fshader: "fshader-vec4-2", desc: "fragment shader vec4" }, >+ ]; >+ >+ for (var idx = 0; idx < testCases.length; ++idx) { >+ var test = testCases[idx]; >+ >+ debug(""); >+ var program = wtu.setupProgram(gl, [test.vshader, test.fshader], ["aPosition"]); >+ if (!program) { >+ testFailed("Fail to set up program"); >+ } else { >+ var uniformLoc = gl.getUniformLocation(program, 'bvalue'); >+ debug("Testing " + test.desc + " with false"); >+ gl.uniform1i(uniformLoc, 0); >+ wtu.drawUnitQuad(gl); >+ wtu.checkCanvas(gl, [0, 255, 0, 255]); >+ debug("Testing " + test.desc + " with true"); >+ gl.uniform1i(uniformLoc, 1); >+ wtu.drawUnitQuad(gl); >+ wtu.checkCanvas(gl, [255, 0, 0, 255]); >+ gl.deleteProgram(program); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from testing"); >+ } >+ } >+}; >+ >+test(); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/compare-loop-index-to-uniform.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/compare-loop-index-to-uniform.html >new file mode 100644 >index 00000000000..a14cd51b112 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/compare-loop-index-to-uniform.html >@@ -0,0 +1,71 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Driver bug - Comparing loop index against uniform in a fragment shader should work</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+uniform int uCount; >+ >+void main() { >+ float a = 0.0; >+ for (int i = 0; i < 5; ++i) { >+ if (i < uCount) { >+ a += 0.2; >+ } >+ } >+ gl_FragColor = vec4(1.0 - a, a, 0.0, 1.0); >+} >+</script> >+<script type="application/javascript"> >+"use strict"; >+description("Comparing loop index to an uniform in a fragment shader should work."); >+ >+GLSLConformanceTester.runRenderTests([ >+{ >+ fShaderId: 'fshader', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'Compare a loop index to an uniform', >+ uniforms: [{name: "uCount", functionName: "uniform1i", value: 5}] >+} >+]); >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/complex-glsl-does-not-crash.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/complex-glsl-does-not-crash.html >new file mode 100644 >index 00000000000..246e875c408 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/complex-glsl-does-not-crash.html >@@ -0,0 +1,212 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Driver Bug - complex glsl should not crash</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="example" width="2" height="2"> </canvas> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+void main() >+{ >+ gl_Position = a_position; >+} >+</script> >+<script id="fshader" type="x-shader/x-vertex"> >+precision mediump float; >+varying vec4 v_varying; >+void main() >+{ >+ gl_FragColor = v_varying; >+} >+</script> >+<script id="vshaderArrayTest" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+varying vec4 v_varying; >+uniform $(type) u_uniform[$(numTestType)]; >+void main() >+{ >+ v_varying = $(code); >+ gl_Position = a_position; >+} >+</script> >+<script id="fshaderArrayTest" type="x-shader/x-fragment"> >+precision mediump float; >+uniform $(type) u_uniform[$(numTestType)]; >+void main() >+{ >+ gl_FragColor = $(code); >+} >+</script> >+<script id="vshaderUniformTest" type="x-shader/x-fragment"> >+attribute vec4 a_position; >+varying vec4 v_varying; >+$(uniforms) >+void main() >+{ >+ v_varying = $(code); >+ gl_Position = a_position; >+} >+</script> >+<script id="fshaderUniformTest" type="x-shader/x-fragment"> >+precision mediump float; >+$(uniforms) >+void main() >+{ >+ gl_FragColor = $(code); >+} >+</script> >+<script> >+"use strict"; >+description(); >+debug(""); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+ >+var uniformTypes = [ >+ { type: "bool", componentsPerRow: 1, rows: 1, code: "vec4(u_uniform$(id)$(index), 0, 0, 0)", }, >+ { type: "float", componentsPerRow: 1, rows: 1, code: "vec4(u_uniform$(id)$(index), 0, 0, 0)", }, >+ { type: "int", componentsPerRow: 1, rows: 1, code: "vec4(u_uniform$(id)$(index), 0, 0, 0)", }, >+ { type: "vec2", componentsPerRow: 2, rows: 1, code: "vec4(u_uniform$(id)$(index), 0, 0)", }, >+ { type: "ivec2", componentsPerRow: 2, rows: 1, code: "vec4(u_uniform$(id)$(index), 0, 0)", }, >+ { type: "bvec2", componentsPerRow: 2, rows: 1, code: "vec4(u_uniform$(id)$(index), 0, 0)", }, >+ { type: "vec3", componentsPerRow: 3, rows: 1, code: "vec4(u_uniform$(id)$(index), 0)", }, >+ { type: "ivec3", componentsPerRow: 3, rows: 1, code: "vec4(u_uniform$(id)$(index), 0)", }, >+ { type: "bvec3", componentsPerRow: 3, rows: 1, code: "vec4(u_uniform$(id)$(index), 0)", }, >+ { type: "vec4", componentsPerRow: 4, rows: 1, code: "vec4(u_uniform$(id)$(index))", }, >+ { type: "ivec4", componentsPerRow: 4, rows: 1, code: "vec4(u_uniform$(id)$(index))", }, >+ { type: "bvec4", componentsPerRow: 4, rows: 1, code: "vec4(u_uniform$(id)$(index))", }, >+// Yes, the spec says mat2 takes 4 columns, 2 rows. >+ { type: "mat2", componentsPerRow: 4, rows: 2, code: "vec4(u_uniform$(id)$(index)[0], 0, 0)", }, >+ { type: "mat3", componentsPerRow: 3, rows: 3, code: "vec4(u_uniform$(id)$(index)[0], 0)", }, >+ { type: "mat4", componentsPerRow: 4, rows: 4, code: "vec4(u_uniform$(id)$(index)[0])", }, >+// Samplers generally have more restictive limits. >+// { type: "sampler2D", componentsPerRow: 1, rows: 1, code: "vec4(texture2D(u_uniform[$(index)], vec2(0, 0)))", }, >+// { type: "samplerCube", componentsPerRow: 1, rows: 1, code: "vec4(textureCube(u_uniform[$(index)], vec3(0, 0, 0)))", }, >+]; >+ >+var vBaseSource = wtu.getScript("vshader"); >+var fBaseSource = wtu.getScript("fshader"); >+var vArrayTestSource = wtu.getScript("vshaderArrayTest"); >+var fArrayTestSource = wtu.getScript("fshaderArrayTest"); >+var vUniformTestSource = wtu.getScript("vshaderUniformTest"); >+var fUniformTestSource = wtu.getScript("fshaderUniformTest"); >+ >+var tests = []; >+var shaderTypes = [ >+ { type: "vertex", >+ // For tests that expect failure which shader might fail. >+ vertExpectation: false, >+ fragExpectation: true, >+ vertArrayTest: vArrayTestSource, >+ fragArrayTest: fBaseSource, >+ vertUniformTest: vUniformTestSource, >+ fragUniformTest: fBaseSource, >+ maxVectors: gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS), >+ minVectors: 128, // GLSL ES 1.0.17 Appendix A.7, >+ }, >+ { type: "fragment", >+ // For tests that expect failure which shader might fail. >+ vertExpectation: true, >+ fragExpectation: false, >+ vertArrayTest: vBaseSource, >+ fragArrayTest: fArrayTestSource, >+ vertUniformTest: vBaseSource, >+ fragUniformTest: fUniformTestSource, >+ maxVectors: gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS), >+ minVectors: 16, // GLSL ES 1.0.17 Appendix A.7, >+ }, >+]; >+for (var ss = 0; ss < shaderTypes.length; ++ss) { >+ var shaderType = shaderTypes[ss]; >+ debug("max " + shaderType.type + ": " + shaderType.maxVectors); >+ for (var ii = 0; ii < uniformTypes.length; ++ii) { >+ var info = uniformTypes[ii]; >+ wtu.log("checking: " + info.type); >+ // Compute the maximum amount of this type allowed in a single array. >+ var numVars = Math.floor(shaderType.maxVectors / info.rows); >+ // Compute the minimum required to work in a single array. >+ var minVars = Math.floor(shaderType.minVectors / info.rows); >+ // Compute the maximum allowed as single elements >+ var numPerRow = Math.floor(4 / info.componentsPerRow); >+ var numMax = Math.floor(shaderType.maxVectors * numPerRow / info.rows); >+ >+ // Test array[max] of the type >+ // Note: We can't test for success or failer as actual GL drivers are only required to be able to >+ // do the minimum number. After that it can fail for any reason. >+ var code = wtu.replaceParams(info.code, {id: "", index: "[" + (numVars - 1) + "]"}); >+ tests.push({ >+ vShaderSource: wtu.replaceParams(shaderType.vertArrayTest, {numTestType: numVars, code: code}, info), >+ vShaderSuccess: true, >+ fShaderSource: wtu.replaceParams(shaderType.fragArrayTest, {numTestType: numVars, code: code}, info), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ ignoreResults: true, >+ passMsg: shaderType.type + " shader with uniform array of " + info.type + " with " + numVars + " elements (the maximum)", >+ }); >+ >+ var generateCode = function(numVars) { >+ var uniforms = []; >+ var codes = []; >+ for (var uu = 0; uu < numVars; ++uu) { >+ uniforms.push(" uniform " + info.type + " u_uniform" + uu + ";"); >+ codes.push(wtu.replaceParams(info.code, {id: uu, index: ""})); >+ } >+ return { >+ uniforms: uniforms.join("\n"), >+ code: codes.join(" + \n "), >+ }; >+ }; >+ >+ // Test max uniforms of type. >+ tests.push({ >+ vShaderSource: wtu.replaceParams(shaderType.vertUniformTest, generateCode(numMax), info), >+ vShaderSuccess: shaderType.vertExpectation, >+ fShaderSource: wtu.replaceParams(shaderType.fragUniformTest, generateCode(numMax), info), >+ fShaderSuccess: shaderType.fragExpectation, >+ linkSuccess: true, >+ ignoreResults: true, >+ passMsg: shaderType.type + " shader with " + (numMax) + " uniforms of " + info.type, >+ }); >+ } >+} >+GLSLConformanceTester.runTests(tests); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/compound-assignment-type-combination.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/compound-assignment-type-combination.html >new file mode 100644 >index 00000000000..1cf01e580e7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/compound-assignment-type-combination.html >@@ -0,0 +1,47 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Result type should match the l-value type in compound assignment</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<script src="../../../js/tests/compound-assignment-type-combination.js"></script> >+</head> >+<body onload="runTest(1)"> >+<div id="description"></div> >+<div id="console"></div> >+<script type="application/javascript"> >+description(); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/conditional-discard-in-loop.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/conditional-discard-in-loop.html >new file mode 100644 >index 00000000000..73cdf651cef >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/conditional-discard-in-loop.html >@@ -0,0 +1,161 @@ >+<!-- >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+ >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Conditional discard in loop issue</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+ >+<body> >+<canvas id="output" style="border: none;" width="256" height="256"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script id="shader-vs" type="x-shader/x-vertex"> >+// Inputs >+attribute vec4 a_position; >+attribute vec2 a_tex_coords; >+ >+// Output >+varying vec2 v_tex_coords; >+ >+void main(void) { >+ v_tex_coords = a_tex_coords; >+ gl_Position = a_position; >+} >+</script> >+ >+<script id="shader-fs" type="x-shader/x-fragment"> >+precision mediump float; >+ >+// Constants >+const float TEXEL_COUNT_V = 256.0; >+const float TEXEL_HEIGHT = 1.0 / TEXEL_COUNT_V; >+const float SEP_IX = TEXEL_COUNT_V / 2.0; >+ >+const vec4 GREEN = vec4(0.0, 1.0, 0.0, 1.0); >+const vec4 BLUE = vec4(0.0, 0.0, 1.0, 1.0); >+ >+// Input >+varying vec2 v_tex_coords; >+ >+uniform sampler2D u_data; >+ >+// Without this function or directly returning the data, the issue does not occur >+mediump vec4 UnpackData(in vec4 inData) { >+ float s = inData.x; >+ // Note s is always 0 >+ // mod(0, 1) = 0 >+ // So return value = (0, 0, -1, 0) >+ return vec4(0.0, 0.0, mod(s, 1.0) - 1.0, 0.0); >+ >+ // Comment out the line above and uncomment the line below and the test succeeds on angle-dx11 >+ // return vec4(0.0, 0.0, -1.0, 0.0); >+} >+ >+void main(void) { >+ // Set initial color >+ gl_FragColor = BLUE; >+ >+ if (gl_FragCoord.y <= SEP_IX) { >+ mediump vec2 addr = vec2(v_tex_coords.x, TEXEL_HEIGHT); >+ >+ for (float e_ix = 0.0; e_ix < TEXEL_COUNT_V; ++e_ix) { >+ vec4 entry = texture2D(u_data, addr); >+ mediump vec4 unpack = UnpackData(entry); >+ >+ // Buffer is filled with 0, unpack is always (0, 0, -1, 0) >+ // So discard is always triggered >+ if (unpack.z == -1.0) { >+ discard; >+ } >+ >+ addr.y += unpack.z * TEXEL_HEIGHT; >+ } >+ // If discard is not triggered the output color is blue >+ } >+ else { >+ gl_FragColor = GREEN; >+ } >+} >+</script> >+ >+ >+<script> >+"use strict"; >+ >+description(); >+debug(""); >+debug("If the code is executed correctly, the upper half of the viewport will be green, the lower half will be red."); >+debug("This is a conformance suite test for the issue reported here : https://code.google.com/p/angleproject/issues/detail?id=706"); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("output"); >+var gl = wtu.create3DContext(canvas); >+if (!gl) { >+ testFailed("context does not exist"); >+} else { >+ >+ // Create texture filled with zero's >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+ wtu.fillTexture(gl, tex, 256, 256, [0, 0, 0, 0]); >+ >+ // Clear complete viewport to red >+ gl.clearColor(1.0, 0.0, 0.0, 1.0); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ >+ var attribBuffers = wtu.setupUnitQuad(gl, 0, 1); >+ var program = wtu.setupProgram(gl, ["shader-vs", "shader-fs"], ["a_position", "a_tex_coords"], [0, 1], true); >+ >+ // Bind texture >+ var uniformMap = wtu.getUniformMap(gl, program); >+ gl.activeTexture(gl.TEXTURE0); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.uniform1i(uniformMap.u_data.location, 0); >+ >+ // Draw >+ wtu.drawUnitQuad(gl); >+ >+ // Verify output >+ wtu.checkCanvasRect(gl, 0, 0, 256, 128, [ 255, 0, 0, 255 ], "should be red", 1); >+ wtu.checkCanvasRect(gl, 0, 128, 256, 128, [ 0, 255, 0, 255 ], "should be green", 1); >+} >+ >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/conditional-discard-optimization.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/conditional-discard-optimization.html >new file mode 100644 >index 00000000000..81d67372fe4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/conditional-discard-optimization.html >@@ -0,0 +1,138 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!-- author: Bill Baxter (wbaxter at google.com) --> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>ANGLE WebGL Shader Conditionals Repro</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+ >+<body> >+<canvas id="repro" style="border: none;" width="256" height="256"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script id="shader-vs" type="x-shader/x-vertex"> >+attribute vec2 pos; >+varying mediump float varA; >+void main(void) { >+ varA = 0.; >+ gl_Position = vec4(pos, 0.0, 1.0); >+} >+</script> >+ >+<script id="shader-fs" type="x-shader/x-fragment"> >+precision mediump float; >+varying float varA; >+void main(void) { >+ if (varA < -1. || (varA < -1. && varA > 1.)) { >+ discard; >+ } >+ gl_FragColor = vec4(0, 1, 0, 1) + 2. * varA * 2.; >+} >+</script> >+ >+<script id="shader-fs-mutable" type="x-shader/x-fragment"> >+precision mediump float; >+varying float varA; >+void main(void) { >+ float b = varA; >+ if (varA < (b -= 1.) || (varA < b && varA > (b += 2.))) { >+ discard; >+ } >+ gl_FragColor = vec4(0, 1, 0, 1) + 2. * varA * 2.; >+} >+</script> >+<script id="shader-fs-unfolded" type="x-shader/x-fragment"> >+precision mediump float; >+varying float varA; >+void main(void) { >+ bool s1 = varA < -1.; >+ if (!s1) { >+ bool s2 = varA < -1.; >+ if (s2) { >+ s2 = varA > 1.; >+ } >+ s1 = s2; >+ } >+ if (s1) { >+ discard; >+ } >+ gl_FragColor = vec4(0, 1, 0, 1) + 2. * varA * 2.; >+} >+</script> >+<script> >+"use strict"; >+ >+description(); >+debug(""); >+debug("If things are working correctly, then there will be a green square."); >+debug("Otherwise it will be a black void."); >+debug("This is a repro for an issue seen on the D3D9 ANGLE implementation of WebGL on Chrome in a shader with a conditional discard, where the conditional is of the form (a || (b && c))."); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("repro"); >+var gl = wtu.create3DContext(canvas); >+if (!gl) { >+ testFailed("context does not exist"); >+} else { >+ gl.clearColor(0.0, 0.0, 0.0, 1.0); >+ wtu.setupUnitQuad(gl); >+ >+ debug(""); >+ debug("Testing shader with conditional discard"); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ var program = wtu.setupProgram(gl, ["shader-vs", "shader-fs"], ["pos"], undefined, true); >+ wtu.drawUnitQuad(gl); >+ wtu.checkCanvasRect(gl, 128, 128, 128, 128, [ 0, 255, 0, 255 ], "should be green", 1); >+ >+ debug(""); >+ debug("Testing conditional discard with side-effects in conditions"); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ var programMutable = wtu.setupProgram(gl, ["shader-vs", "shader-fs-mutable"], ["pos"], undefined, true); >+ wtu.drawUnitQuad(gl); >+ wtu.checkCanvasRect(gl, 128, 128, 128, 128, [ 0, 255, 0, 255 ], "should be green", 1); >+ >+ debug(""); >+ debug("Testing conditional discard with unfolded condition logic"); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ var programMutable = wtu.setupProgram(gl, ["shader-vs", "shader-fs-unfolded"], ["pos"], undefined, true); >+ wtu.drawUnitQuad(gl); >+ wtu.checkCanvasRect(gl, 128, 128, 128, 128, [ 0, 255, 0, 255 ], "should be green", 1); >+} >+ >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/conditional-texture-fetch.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/conditional-texture-fetch.html >new file mode 100644 >index 00000000000..941e49774cb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/conditional-texture-fetch.html >@@ -0,0 +1,151 @@ >+<!-- >+ >+/* >+** Copyright (c) 2017 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Conditional texture fetch test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<canvas id="output" style="border: none;" width="64" height="64"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshaderConditionalTextureFetch" type="x-shader/x-vertex"> >+attribute vec2 a_position; >+attribute vec4 a_canvasTileColor; >+attribute vec2 a_texCoord; >+varying vec2 texCoord; >+varying vec4 canvasTileColor; >+void main() >+{ >+ canvasTileColor = a_canvasTileColor; >+ texCoord = a_texCoord; >+ gl_Position = vec4(a_position, 0.0, 1.0); >+} >+</script> >+<script id="fshaderConditionalTextureFetch" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec4 canvasTileColor; >+uniform bool hasTexture; >+uniform sampler2D canvasTileTexture; >+varying vec2 texCoord; >+uniform vec4 uvRect; >+void main() >+{ >+ vec4 finalColor = canvasTileColor; >+ if (hasTexture) { >+ vec2 clampedUV = clamp(texCoord.xy, uvRect.xy, uvRect.zw); >+ finalColor = texture2D(canvasTileTexture, clampedUV); >+ } >+ gl_FragColor = finalColor; >+} >+</script> >+<script type="text/javascript"> >+"use strict"; >+description(); >+debug("If the test passes correctly the viewport will be green."); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("output"); >+var gl = wtu.create3DContext(canvas); >+ >+var createGreenTexture = function() { >+ var texture = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, texture); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ wtu.fillTexture(gl, texture, 1, 1, [0, 255, 0, 255]); >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ return texture; >+}; >+ >+var test = function(greenTexture) { >+ // This is a reduced test case for a problem reported by Figma. >+ // Program compilation produces the following warning/error on ANGLE's >+ // D3D9 backend: >+ // [WARNING:angle_platform_impl.cc(51)] : rx::HLSLCompiler::compileToBinary(228): C:\fakepath(26,12): error X6077: texld/texldb/texldp/dsx/dsy instructions with r# as source cannot be used inside dynamic conditional 'if' blocks, dynamic conditional subroutine calls, or loop/rep with break*. >+ // >+ // All of the operations in the shader -- including the clamping of the >+ // texture coordinates -- seem to be needed in order to provoke this >+ // error. >+ // >+ // However, this doesn't seem to produce incorrect rendering results. >+ var program = wtu.setupProgram( >+ gl, >+ ["vshaderConditionalTextureFetch", >+ "fshaderConditionalTextureFetch"], >+ ["a_position", "a_canvasTileColor", "a_texCoord"], >+ [0, 1, 2], >+ true); >+ if (!program) { >+ testFailed("Shader compilation/link failed"); >+ } else { >+ // Set up buffers >+ wtu.setupUnitQuad(gl, 0, 2); >+ >+ // Set up constant color (red) >+ gl.vertexAttrib4f(1, 1, 0, 0, 1); >+ >+ var uniformMap = wtu.getUniformMap(gl, program); >+ >+ // Use texturing >+ gl.uniform1i(uniformMap["hasTexture"].location, 1); >+ >+ // Bind texture >+ gl.activeTexture(gl.TEXTURE0); >+ gl.bindTexture(gl.TEXTURE_2D, greenTexture); >+ gl.uniform1i(uniformMap["canvasTileTexture"].location, 0); >+ >+ // Set up (essentially no-op) clamp rectangle >+ gl.uniform4f(uniformMap["uvRect"].location, 0, 0, 0.25, 0.25); >+ >+ // Draw >+ wtu.clearAndDrawUnitQuad(gl); >+ >+ // Verify output >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "should be green", 1); >+ } >+}; >+ >+if (!gl) { >+ testFailed("context does not exist"); >+} else { >+ var tex = createGreenTexture(); >+ test(tex); >+} >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/constant-precision-qualifier.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/constant-precision-qualifier.html >new file mode 100644 >index 00000000000..a40536d45fe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/constant-precision-qualifier.html >@@ -0,0 +1,136 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Bug - the precision qualifier of a constant variable should affect the precision of a consuming operation</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshader" type="x-shader/x-fragment"> >+// It is assumed that uTest is set to 0. It's here to make the expression not constant. >+uniform mediump float uTest; >+ >+void main() { >+ // exact representation of 4096.5 requires 13 bits of relative precision. >+ const highp float c = 4096.5; >+ mediump float a = 0.0; >+ // Below, addition should be evaluated at highp, since one of the operands has the highp qualifier. >+ // Thus fract should also be evaluated at highp. >+ // See OpenGL ES Shading Language spec section 4.5.2. >+ // This should make the result 0.5, since highp provides at least 16 bits of relative precision. >+ // (exceptions for operation precision are allowed for a small number of computationally >+ // intensive built-in functions, but it is reasonable to think that fract is not one of those). >+ // However, if fract() is incorrectly evaluated at minimum precision fulfilling mediump criteria, >+ // or at IEEE half float precision, the result is 0.0. >+ a = fract(c + uTest); >+ >+ // Multiply by 2.0 to make the color green. >+ gl_FragColor = vec4(0.0, 2.0 * a, 0.0, 1.0); >+} >+</script> >+<script id="fshaderNoConstants" type="x-shader/x-fragment"> >+// This shader has the same functionality as the one above, but it doesn't contain >+// operations that can be constant folded at compile-time. >+// It's here to provide a point of comparison. >+uniform mediump float uTest; >+uniform highp float uTestHigh; >+ >+void main() { >+ highp float c = 4096.5 + uTestHigh; >+ mediump float a = 0.0; >+ a = fract(c + uTest); >+ gl_FragColor = vec4(0.0, 2.0 * a, 0.0, 1.0); >+} >+</script> >+<script id="fshaderAllHighp" type="x-shader/x-fragment"> >+// This shader has the same functionality as the one above, but it only uses highp. >+// It's here to provide a point of comparison. >+uniform highp float uTest; >+ >+void main() { >+ highp float c = 4096.5 + uTest; >+ highp float a = 0.0; >+ a = fract(c + uTest); >+ gl_FragColor = vec4(0.0, 2.0 * a, 0.0, 1.0); >+} >+</script> >+<script type="application/javascript"> >+"use strict"; >+description(); >+ >+function test() { >+ var wtu = WebGLTestUtils; >+ var gl = wtu.create3DContext(); >+ if (!gl) { >+ testFailed("context does not exist"); >+ finishTest(); >+ return; >+ } >+ if (gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT).precision == 0) { >+ testPassed("highp precision not supported"); >+ finishTest(); >+ } else { >+ GLSLConformanceTester.runRenderTests([ >+ { >+ fShaderId: 'fshader', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'The precision qualifier of a constant affects built-in function results', >+ uniforms: [{name: "uTest", functionName: "uniform1f", value: 0}] >+ }, >+ { >+ fShaderId: 'fshaderNoConstants', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'The precision qualifier of a variable affects built-in function results', >+ uniforms: [{name: "uTest", functionName: "uniform1f", value: 0}, >+ {name: "uTestHigh", functionName: "uniform1f", value: 0}] >+ }, >+ { >+ fShaderId: 'fshaderAllHighp', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'All variables are qualified as highp', >+ uniforms: [{name: "uTest", functionName: "uniform1f", value: 0}] >+ }, >+ ]); >+ } >+}; >+ >+test(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/essl3-shaders-with-webgl1.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/essl3-shaders-with-webgl1.html >new file mode 100644 >index 00000000000..d09e59b4c51 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/essl3-shaders-with-webgl1.html >@@ -0,0 +1,159 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Browser bug - WebGL 1 context should not accept OpenGL ES 3 shading language shaders</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="ES1VertexShader" type="x-shader/x-vertex"> >+precision mediump float; >+attribute vec4 aPosition; >+ >+void main() { >+ gl_Position = aPosition; >+} >+</script> >+<script id="ES1FragmentShader" type="x-shader/x-fragment"> >+precision mediump float; >+ >+void main() { >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+} >+</script> >+<!-- Note that the version directive should be on the very first line in ESSL 3, see ESSL 3 section 3.3 --> >+<script id="ES3VertexShader" type="x-shader/x-vertex">#version 300 es >+precision mediump float; >+in vec4 aPosition; >+ >+void main() { >+ gl_Position = aPosition; >+} >+</script> >+<script id="ES3FragmentShader" type="x-shader/x-fragment">#version 300 es >+precision mediump float; >+out vec4 my_FragColor; >+ >+void main() { >+ my_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+} >+</script> >+<script id="emptyES3FragmentShader" type="x-shader/x-fragment">#version 300 es >+precision mediump float; >+void main() { >+} >+</script> >+<script id="vertexShaderWithInQualifier" type="x-shader/x-vertex"> >+precision mediump float; >+in vec4 aPosition; >+ >+void main() { >+ gl_Position = aPosition; >+} >+</script> >+<script id="fragmentShaderWithOutQualifier" type="x-shader/x-fragment"> >+precision mediump float; >+out vec4 my_FragColor; >+ >+void main() { >+ my_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+} >+</script> >+<script type="application/javascript"> >+"use strict"; >+description("OpenGL ES 3 shading language shaders should not be accepted by WebGL 1."); >+GLSLConformanceTester.runTests([ >+ { >+ vShaderId: "ES3VertexShader", >+ vShaderSuccess: false, >+ fShaderId: "ES1FragmentShader", >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "OpenGL ES 3 shading language vertex shader with an in variable should not be accepted by WebGL 1." >+ }, >+ { >+ vShaderId: "ES1VertexShader", >+ vShaderSuccess: true, >+ fShaderId: "ES3FragmentShader", >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "OpenGL ES 3 shading language fragment shader with an out variable should not be accepted by WebGL 1." >+ }, >+ { >+ vShaderId: "ES1VertexShader", >+ vShaderSuccess: true, >+ fShaderId: "emptyES3FragmentShader", >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "OpenGL ES 3 shading language fragment shader with an empty body should not be accepted by WebGL 1." >+ }, >+ { >+ vShaderId: "ES3VertexShader", >+ vShaderSuccess: false, >+ fShaderId: "ES3FragmentShader", >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "OpenGL ES 3 shading language shaders should not be linked by WebGL 1." >+ }, >+ { >+ vShaderId: "ES3VertexShader", >+ vShaderSuccess: false, >+ fShaderId: "emptyES3FragmentShader", >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "OpenGL ES 3 shading language shaders including fragment shader with empty body should not be linked by WebGL 1." >+ }, >+ { >+ vShaderId: "vertexShaderWithInQualifier", >+ vShaderSuccess: false, >+ fShaderId: "ES1FragmentShader", >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "Vertex shader with an in qualifier on a global variable should not be accepted by WebGL 1." >+ }, >+ { >+ vShaderId: "ES1VertexShader", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderWithOutQualifier", >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "Fragment shader with an out qualifier on a global variable should not be accepted by WebGL 1." >+ } >+]); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/floor-div-cos-should-not-truncate.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/floor-div-cos-should-not-truncate.html >new file mode 100644 >index 00000000000..69a019aa1be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/floor-div-cos-should-not-truncate.html >@@ -0,0 +1,80 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Floor + divide + cosine should not truncate intermediate results.</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<canvas id="canvas" width="256" height="256"> </canvas> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script id="vshader" type="x-shader/x-vertex"> >+precision highp float; >+ >+attribute vec3 pos; >+ >+// This divisor must be greater than the 32-bit floating point >+// representation of 1e6 / (2 * pi) to repro. >+const float magic = 159154.953125; >+ >+void main(void) { >+ // This floor must be present to repro. >+ float x = floor(pos.x); >+ >+ // This divide and cosine must be present to repro. >+ x = cos(x / magic); >+ >+ // If the GPU truncated 'x / magic' to 0, then 'cos(x / magic)' will produce >+ // 1.0, the green square will be moved offscreen, and the red background >+ // will be visible. >+ gl_Position.x = pos.y + x * 2.0; >+ gl_Position.y = pos.z; >+ gl_Position.z = 0.0; >+ gl_Position.w = 1.0; >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+precision highp float; >+ >+void main(void) { >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); >+} >+</script> >+ >+<script type="application/javascript"> >+"use strict"; >+description("Flooring a number, then dividing by a large number, then computing the cosine of that should not truncate the intermediate values."); >+debug("Regression test for <a href='https://code.google.com/p/angleproject/issues/detail?id=1179'>https://code.google.com/p/angleproject/issues/detail?id=1179</a>"); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("canvas"); >+var program = wtu.setupProgram(gl, ['vshader', 'fshader'], ['pos'], undefined, true); >+ >+gl.clearColor(1, 0, 0, 1); >+gl.clear(gl.COLOR_BUFFER_BIT); >+ >+var magic = 159154.953125; >+var x = (Math.PI / 2.0) * magic; >+var data = [ >+ x, -1, -1, >+ x, 1, -1, >+ x, 1, 1, >+ x, -1, -1, >+ x, 1, 1, >+ x, -1, 1 >+]; >+ >+gl.bindBuffer(gl.ARRAY_BUFFER, gl.createBuffer()); >+gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(data), gl.STATIC_DRAW); >+gl.enableVertexAttribArray(0); >+gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 12, 0); >+ >+gl.drawArrays(gl.TRIANGLES, 0, 6); >+ >+wtu.checkCanvas(gl, [0,255,0,255], "should be 0,255,0,255"); >+finishTest(); >+</script> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/floored-division-accuracy.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/floored-division-accuracy.html >new file mode 100644 >index 00000000000..86f83ee294e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/floored-division-accuracy.html >@@ -0,0 +1,90 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!-- author: Bill Baxter (wbaxter at google.com) --> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Floored Division Accuracy Bug</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+ >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script id="shader-vs" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+uniform float divisor; >+varying vec4 vColor; >+void main(void) { >+ gl_Position = vPosition; >+ float index = 9.0; >+ // Floating point operations don't have any guaranteed precision, but they >+ // should at least be accurate to 1 part in 10^5. >+ float value = floor((index / divisor) * 1.00001); >+ vColor = (value == 3.) ? vec4(0, 1, 0, 1) : vec4(1, 0, 0, 1); >+} >+</script> >+ >+<script id="shader-fs" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec4 vColor; >+void main(void) { >+ gl_FragColor = vColor; >+} >+</script> >+<script> >+"use strict"; >+description(); >+ >+debug(""); >+// Reproduces bug seen on Mac OS X with AMD Radeon HD 6490 GPU >+debug("If things are working correctly, then the square will be green."); >+debug("If your card thinks floor(9. / 3.) is not 3 to within 1 part in 10^5, "); >+debug("then the square will be red."); >+ >+GLSLConformanceTester.runRenderTests([ >+{ >+ vShaderId: 'shader-vs', >+ vShaderSuccess: true, >+ fShaderId: 'shader-fs', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'Test that floor(9. / 3.) is 3 to within 1 part in 10^5', >+ uniforms: [{name: "divisor", functionName: "uniform1f", value: 3}] >+} >+]); >+ >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/fragcoord-linking-bug.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/fragcoord-linking-bug.html >new file mode 100644 >index 00000000000..48085e0d5d4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/fragcoord-linking-bug.html >@@ -0,0 +1,114 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL compiler bug referencing gl_FragCoord</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<!-- These shaders were extracted from Skia's GPU accelerated backend "Ganesh". --> >+<script id="shader-vs" type="x-shader/x-vertex"> >+uniform mat3 uViewM; >+uniform mat3 uStageMatrix_Stage1; >+uniform vec4 urtAdjustment; >+attribute vec2 aPosition; >+attribute vec4 aColor; >+varying vec4 vColor; >+varying vec2 vMatrixCoord_Stage1; >+void main() { >+ vec3 pos3 = uViewM * vec3(aPosition, 1); >+ vColor = aColor; >+ { // Stage 0: XferEffect >+ } >+ vMatrixCoord_Stage1 = (uStageMatrix_Stage1 * vec3(aPosition, 1)).xy; >+ { // Stage 1: Texture >+ } >+ gl_Position = vec4(dot(pos3.xz, urtAdjustment.xy), dot(pos3.yz, urtAdjustment.zw), 0, pos3.z); >+} >+</script> >+ >+<script id="shader-fs" type="x-shader/x-fragment"> >+precision mediump float; >+uniform sampler2D uDstCopySampler; >+uniform vec2 uDstCopyUpperLeft; >+uniform vec2 uDstCopyCoordScale; >+uniform float uRTHeight; >+uniform sampler2D uSampler0_Stage1; >+varying vec4 vColor; >+varying vec2 vMatrixCoord_Stage1; >+void main() { >+ vec4 fragCoordYDown = vec4(gl_FragCoord.x, uRTHeight - gl_FragCoord.y, gl_FragCoord.zw); >+ // Read color from copy of the destination. >+ vec2 _dstTexCoord = (fragCoordYDown.xy - uDstCopyUpperLeft) * uDstCopyCoordScale; >+ _dstTexCoord.y = 1.0 - _dstTexCoord.y; >+ vec4 _dstColor = texture2D(uDstCopySampler, _dstTexCoord); >+ >+ vec4 output_Stage0; >+ { // Stage 0: XferEffect >+ // SkXfermode::Mode: Multiply >+ output_Stage0.a = vColor.a + (1.0 - vColor.a) * _dstColor.a; >+ output_Stage0.rgb = (1.0 - vColor.a) * _dstColor.rgb + (1.0 - _dstColor.a) * vColor.rgb + vColor.rgb * _dstColor.rgb; >+ } >+ vec4 output_Stage1; >+ { // Stage 1: Texture >+ output_Stage1 = texture2D(uSampler0_Stage1, vMatrixCoord_Stage1); >+ } >+ gl_FragColor = ((output_Stage0 * output_Stage1) + ((vec4(1) - output_Stage1) * _dstColor)); >+} >+</script> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+ >+description(); >+debug(""); >+debug('Verify shaders using gl_FragCoord z and w components compile and link correctly'); >+debug('Regression test for Qualcomm bug ID CR649654'); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(); >+if (!gl) { >+ testFailed("context does not exist"); >+} else { >+ var program = wtu.setupProgram(gl, ["shader-vs", "shader-fs"], null, null, true); >+ if (program) { >+ testPassed("Program compiled and linked successfully"); >+ } else { >+ testFailed("Program failed to compile and link"); >+ } >+} >+ >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/gl-fragcoord-multisampling-bug.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/gl-fragcoord-multisampling-bug.html >new file mode 100644 >index 00000000000..ef1184d49f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/gl-fragcoord-multisampling-bug.html >@@ -0,0 +1,66 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>gl_FragCoord multisampling bug</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="canvasHolder"></div> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+void main() { >+ gl_Position = vec4(a_position.xy, 1.0, 1.0); >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+ >+void main() { >+ float depth = gl_FragCoord.z / gl_FragCoord.w; >+ gl_FragColor = vec4( 0.0, depth, 0.0, 1.0 ); >+} >+</script> >+ >+<script type="application/javascript"> >+"use strict"; >+description("gl_FragCoord multisampling bug"); >+debug("Verifies gl_FragCoord z/w values are unaffected by multisampling."); >+debug('Regression test for <a href="https://github.com/mrdoob/three.js/issues/7769">Three.js Issue 7769</a>'); >+var wtu = WebGLTestUtils; >+for (var ii = 0; ii < 2; ++ii) { >+ debug("Testing " + (ii > 0 ? "with" : "without") + " multisampling"); >+ var canvas = document.createElement('canvas'); >+ canvas.width = 256; >+ canvas.height = 256; >+ canvas.style.padding = "2px"; >+ document.getElementById('canvasHolder').appendChild(canvas); >+ var options; >+ if (ii > 0) { >+ options = { antialias: true }; >+ } >+ var gl = wtu.create3DContext(canvas, options); >+ >+ gl.clearColor(1, 0, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ var attribBuffers = wtu.setupUnitQuad(gl, 0, 1); >+ var program = wtu.setupProgram(gl, ['vshader', 'fshader'], ['a_position'], [0], true); >+ if (!program) { >+ testFailed("Shader compilation/link failed"); >+ } else { >+ // Draw >+ wtu.drawUnitQuad(gl); >+ // Verify output >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "should be green", 3); >+ } >+} >+ >+finishTest(); >+</script> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders.html >new file mode 100644 >index 00000000000..ab5940415f1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders.html >@@ -0,0 +1,98 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Global invariant does not leak across shaders</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="InvariantVertex" type="x-shader/x-vertex"> >+#pragma STDGL invariant(all) >+ >+void main() >+{ >+ gl_Position = vec4(1.0, 0.0, 0.0, 1.0); >+} >+</script> >+<script id="Fragment" type="x-shader/x-fragment"> >+precision mediump float; >+ >+void main() >+{ >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); >+} >+</script> >+<script id="VertexWithVarying" type="x-shader/x-vertex"> >+varying vec2 testVarying; >+ >+void main() { >+ gl_Position = vec4(1.0, 0.0, 0.0, 1.0); >+ testVarying = vec2(0.0, 0.0); >+} >+</script> >+<script id="FragmentWithVarying" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec2 testVarying; >+ >+void main() >+{ >+ gl_FragColor = vec4(testVarying, 0.0, 1.0); >+} >+</script> >+<script type="text/javascript"> >+"use strict"; >+description("The use of the global invariant pragma in one shader must not affect other shaders."); >+ >+GLSLConformanceTester.runTests([ >+ { >+ vShaderId: "InvariantVertex", >+ vShaderSuccess: true, >+ fShaderId: "Fragment", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Shaders using global invariant pragma should compile and link." >+ }, >+ { >+ vShaderId: "VertexWithVarying", >+ vShaderSuccess: true, >+ fShaderId: "FragmentWithVarying", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Shaders not using global invariant pragma should compile and link." >+ }, >+]); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/if-return-and-elseif.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/if-return-and-elseif.html >new file mode 100644 >index 00000000000..9a3d36ff31b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/if-return-and-elseif.html >@@ -0,0 +1,86 @@ >+<!-- >+ >+/* >+** Copyright (c) 2018 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>If with return and else if in fragment shader</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 pos; >+varying vec2 vPos; >+void main() >+{ >+ gl_Position = pos; >+ vPos = pos.xy; >+} >+</script> >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+ >+varying vec2 vPos; >+void main() >+{ >+ if(vPos.x < 1.0) // This colors the whole canvas green >+ { >+ gl_FragColor = vec4(0, 1, 0, 1); >+ return; >+ } >+ else if(vPos.x < 1.1) // This should have no effect >+ { >+ gl_FragColor = vec4(1, 0, 0, 1); >+ } >+} >+ >+</script> >+<script type="text/javascript"> >+"use strict"; >+description(); >+ >+// Minimal test case based on report at http://anglebug.com/2325 >+ >+GLSLConformanceTester.runRenderTests([ >+{ >+ vShaderId: 'vshader', >+ vShaderSuccess: true, >+ fShaderId: 'fshader', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "If and else if in fragment shader" >+} >+]); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/in-parameter-passed-as-inout-argument-and-global.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/in-parameter-passed-as-inout-argument-and-global.html >new file mode 100644 >index 00000000000..6380e6b1dd9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/in-parameter-passed-as-inout-argument-and-global.html >@@ -0,0 +1,73 @@ >+<!-- >+ >+/* >+** Copyright (c) 2017 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Function in parameter passed as an inout argument and a global variable with the same name</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshaderParameters" type="x-shader/x-fragment"> >+precision mediump float; >+uniform vec3 u_zero; >+vec3 p; >+void G(inout vec3 q) { >+ p += q; >+} >+void F(in vec3 p) { >+ G(p); >+} >+void main(){ >+ F(u_zero + vec3(0.0, 1.0, 0.0)); >+ gl_FragColor = vec4(p, 1.0); >+} >+</script> >+<script type="text/javascript"> >+"use strict"; >+description(); >+ >+// This is intended to test an issue seen on NVIDIA OpenGL drivers (at least up to version 388.59). >+// http://crbug.com/792210 >+ >+GLSLConformanceTester.runRenderTests([ >+{ >+ fShaderId: 'fshaderParameters', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Function in parameter passed as an inout argument and a global variable with the same name" >+} >+]); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/init-array-with-loop.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/init-array-with-loop.html >new file mode 100644 >index 00000000000..a2f4b02b951 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/init-array-with-loop.html >@@ -0,0 +1,105 @@ >+<!-- >+ >+/* >+** Copyright (c) 2017 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Initializing an array with a loop test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshaderInitLoop" type="x-shader/x-fragment"> >+precision mediump float; >+ >+void initGlobals(); >+ >+uniform vec4 in0; >+vec4 out0; >+ >+float func(float a[4]) { >+ a[0] = -1.0; >+ return a[0]; >+} >+ >+float arr[4]; >+ >+bool isOk(vec4 a) { >+ vec4 ref = -(in0 + 1.0); >+ if (abs(a.x - ref.x) < 0.05 && abs(a.y - ref.y) < 0.05 && abs(a.z - ref.z) < 0.05 && abs(a.w - ref.w) < 0.05) >+ { >+ return true; >+ } >+ return false; >+} >+ >+void main() { >+ initGlobals(); >+ arr[0] = in0.x + 1.0; >+ arr[1] = in0.y + 1.0; >+ arr[2] = in0.z + 1.0; >+ arr[3] = in0.w + 1.0; >+ mediump float f = func(arr); >+ out0 = f * vec4(arr[0], arr[1], arr[2], arr[3]); >+ if (isOk(out0)) >+ { >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); >+ } >+ else >+ { >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ } >+} >+ >+void initGlobals() { >+ out0 = vec4(0.0, 0.0, 0.0, 0.0); >+ for (int i = 0; i < 4; ++i) >+ { >+ arr[i] = 0.0; >+ } >+} >+</script> >+<script type="text/javascript"> >+"use strict"; >+description(); >+ >+GLSLConformanceTester.runRenderTests([ >+{ >+ fShaderId: 'fshaderInitLoop', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Initialize a global array using a for loop" >+} >+]); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/invariant-does-not-leak-across-shaders.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/invariant-does-not-leak-across-shaders.html >new file mode 100644 >index 00000000000..eac956e7718 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/invariant-does-not-leak-across-shaders.html >@@ -0,0 +1,95 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Invariant does not leak across shaders</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="InvariantVertex" type="x-shader/x-vertex"> >+varying vec4 v_varying; >+invariant v_varying; >+ >+void main() >+{ >+ gl_Position = v_varying; >+} >+</script> >+<script id="InvariantFragment" type="x-shader/x-fragment"> >+precision mediump float; >+invariant varying vec4 v_varying; >+ >+void main() >+{ >+ gl_FragColor = v_varying; >+} >+</script> >+<script id="VertexWithVarying" type="x-shader/x-vertex"> >+varying vec4 v_varying; >+ >+void main() { >+ gl_Position = v_varying; >+} >+</script> >+<script type="text/javascript"> >+"use strict"; >+description("The use of the invariant qualifier in one shader must not affect other shaders."); >+ >+debug(""); >+debug("This is a deliberate subset of conformance/glsl/misc/shaders-with-invariance.html."); >+debug("Compared with the original tests, order of the tests is different."); >+debug("This test covers an ANGLE bug. See crbug.com/634813."); >+ >+GLSLConformanceTester.runTests([ >+ { >+ vShaderId: "InvariantVertex", >+ vShaderSuccess: true, >+ fShaderId: "InvariantFragment", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Shaders using invariant qualifier should compile and link." >+ }, >+ { >+ vShaderId: "VertexWithVarying", >+ vShaderSuccess: true, >+ fShaderId: "InvariantFragment", >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "vertex shader with variant varying and fragment shader with invariant varying must fail" >+ }, >+]); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/logic-inside-block-without-braces.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/logic-inside-block-without-braces.html >new file mode 100644 >index 00000000000..bd420f5abb9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/logic-inside-block-without-braces.html >@@ -0,0 +1,107 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Short-circuiting logic operator with side effects inside if statement without braces should work</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshaderIf" type="x-shader/x-fragment"> >+precision mediump float; >+uniform bool uFalse; >+ >+float wrong = 0.0; >+ >+bool foo() { >+ wrong += 1.0; >+ return !uFalse; >+} >+ >+bool bar() { >+ return !uFalse; >+} >+ >+void main() { >+ // No braces here - that can affect whether the contents of the if get parsed as a block or a statement. >+ if (uFalse) >+ foo() && bar(); >+ gl_FragColor = vec4(0.0, 1.0 - wrong, 0.0, 1.0); >+} >+</script> >+<script id="fshaderFor" type="x-shader/x-fragment"> >+precision mediump float; >+ >+float wrong = 0.0; >+ >+bool foo() { >+ wrong += 1.0; >+ return false; >+} >+ >+bool bar() { >+ return false; >+} >+ >+void main() { >+ // No braces here - that can affect whether the contents of the for get parsed as a block or a statement. >+ for (int i = 0; i < 0; ++i) >+ foo() && bar(); >+ gl_FragColor = vec4(0.0, 1.0 - wrong, 0.0, 1.0); >+} >+</script> >+<script type="application/javascript"> >+"use strict"; >+description("Short-circuiting logic operator with side effects inside if/for statement without braces should work."); >+debug(""); >+ >+GLSLConformanceTester.runRenderTests([ >+{ >+ fShaderId: 'fshaderIf', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'Short-circuiting operator inside if statement without braces', >+ uniforms: [{name: "uFalse", functionName: "uniform1i", value: 0}] >+}, >+{ >+ fShaderId: 'fshaderFor', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'Short-circuiting operator inside for statement without braces' >+} >+]); >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/long-expressions-should-not-crash.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/long-expressions-should-not-crash.html >new file mode 100644 >index 00000000000..2fbe67f28c6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/long-expressions-should-not-crash.html >@@ -0,0 +1,157 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Driver Bug - long experssions should not crash</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<canvas id="example" width="40" height="40"> </canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+void main(){ >+ gl_Position = vec4(0, 0, 0, 1); >+} >+</script> >+<script id="vshaderUniformTest" type="x-shader/x-vertex"> >+uniform vec4 u_uniform; >+void main(){ >+ gl_Position = >+ $(code) >+ vec4(0, 0, 0, 1); >+} >+</script> >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+void main() >+{ >+ gl_FragColor = vec4(0, 0, 0, 0); >+} >+</script> >+<script id="fshaderUniformTest" type="x-shader/x-fragment"> >+precision mediump float; >+uniform vec4 u_uniform; >+void main() >+{ >+ gl_FragColor = >+ $(code) >+ vec4(0, 0, 0, 0); >+} >+</script> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(); >+ >+var vUniformTestSource = wtu.getScript("vshaderUniformTest"); >+var fUniformTestSource = wtu.getScript("fshaderUniformTest"); >+ >+var tests = [ >+]; >+var counts = [ >+ { count:10, >+ mustPass: true, >+ }, >+ { count:100, >+ mustPass: true, >+ }, >+ { count: 1000, >+ mustPass: false, >+ }, >+ { count: 10000, >+ mustPass: false, >+ }, >+]; >+var operatorSets = [ >+ ["+", "-", "/", "*"], >+ ["+"], >+ ["-"], >+]; >+counts.forEach(function(info) { >+ operatorSets.forEach(function(operators) { >+ var generateCode = function(numVars) { >+ var codes = []; >+ for (var uu = 0; uu < numVars; ++uu) { >+ codes.push("u_uniform " + operators[uu % operators.length]); >+ } >+ return { >+ code: codes.join("\n "), >+ }; >+ }; >+ >+ var subs = generateCode(info.count); >+ tests.push({ >+ vShaderId: "vshader", >+ vShaderSuccess: true, >+ fShaderSource: wtu.replaceParams(fUniformTestSource, subs), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ ignoreResults: !info.mustPass, >+ passMsg: "shader with " + info.count + " [" + operators + "] operators in expression in multiple lines", >+ }); >+ tests.push({ >+ vShaderSource: wtu.replaceParams(vUniformTestSource, subs), >+ vShaderSuccess: true, >+ fShaderId: "fshader", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ ignoreResults: !info.mustPass, >+ passMsg: "shader with " + info.count + " [" + operators + "] operators in expression in multiple lines", >+ }); >+ subs.code = subs.code.replace(/\n /g, "") >+ tests.push({ >+ vShaderId: "vshader", >+ vShaderSuccess: true, >+ fShaderSource: wtu.replaceParams(fUniformTestSource, subs), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ ignoreResults: !info.mustPass, >+ passMsg: "shader with " + info.count + " [" + operators + "] operators in expression in one line", >+ }); >+ tests.push({ >+ vShaderSource: wtu.replaceParams(vUniformTestSource, subs), >+ vShaderSuccess: true, >+ fShaderId: "fshader", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ ignoreResults: !info.mustPass, >+ passMsg: "shader with " + info.count + " [" + operators + "] operators in expression in one line", >+ }); >+ }); >+}); >+GLSLConformanceTester.runTests(tests); >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/loop-if-loop-gradient.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/loop-if-loop-gradient.html >new file mode 100644 >index 00000000000..187a36acf7e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/loop-if-loop-gradient.html >@@ -0,0 +1,96 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Gradient loop in if in loop crash</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script id='vshader' type='x-shader/x-vertex'> >+precision highp float; >+void main() { >+gl_Position = vec4( 1.0, 1.0, 1.0, 1.0 ); >+} >+</script> >+<script id='fshader' type='x-shader/x-fragment'> >+precision mediump float; >+uniform lowp sampler2D iChannel0; >+ >+void main(){ >+ highp float c; >+ for (mediump float i = 0.0; i <= 1.0; i++) { >+ if (gl_FragCoord.x < 0.0) { >+ for (mediump float l = 0.0; l < 2.0; l++) { // with 1 as a bound it works >+ c = texture2D(iChannel0, vec2(l), 0.0).x; >+ } >+ } >+ } >+ gl_FragColor = vec4(c, vec3(1.0)); >+} >+</script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description("This test checks an ANGLE regression that was caused by a complex ShaderToy shader. <a href='https://code.google.com/p/chromium/issues/detail?id=524297'>crbug.com/524297</a>"); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(); >+ >+gl.canvas.addEventListener("webglcontextlost", function(e) { >+ testFailed("WebGL context lost"); >+}); >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ debug(""); >+ >+ var program = wtu.setupProgram(gl, ['vshader', 'fshader']); >+ if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { >+ testFailed("Program failed to link"); >+ } >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+} >+ >+// Cycle through a rAF once to give any webglcontextlost events a chance to propagate >+window.requestAnimationFrame(function() { finishTest(); }); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/modulo-arithmetic-accuracy.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/modulo-arithmetic-accuracy.html >new file mode 100644 >index 00000000000..d48ec1a95b1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/modulo-arithmetic-accuracy.html >@@ -0,0 +1,89 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!-- author: Bill Baxter (wbaxter at google.com) --> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Modulo Arithmetic Accuracy Bug</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+ >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script id="shader-vs" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+uniform float divisor; >+varying vec4 vColor; >+void main(void) { >+ gl_Position = vPosition; >+ float index = 9.0; >+ // mod(x, y) is computed as x-y*floor(x/y). There are no guarantees on >+ // the precision of floating point operations in WebGL shaders, but division >+ // should be accurate to at least 1 part in 10^5. >+ float value = mod(index * 1.00001, divisor); >+ vColor = (value < 1.) ? vec4(0, 1, 0, 1) : vec4(1, 0, 0, 1); >+} >+</script> >+ >+<script id="shader-fs" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec4 vColor; >+void main(void) { >+ gl_FragColor = vColor; >+} >+</script> >+<script> >+"use strict"; >+ >+description(); >+debug(""); >+// Reproduces bug seen on Mac OS X with AMD Radeon HD 6490 GPU >+debug("If things are working correctly, then the square will be green."); >+debug("If your card thinks mod(9,3) is not 0, then the square will be red."); >+ >+GLSLConformanceTester.runRenderTests([ >+{ >+ vShaderId: 'shader-vs', >+ vShaderSuccess: true, >+ fShaderId: 'shader-fs', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'Test that mod(9/3) is 0', >+ uniforms: [{name: "divisor", functionName: "uniform1f", value: 3}] >+} >+]); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/multiplication-assignment.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/multiplication-assignment.html >new file mode 100644 >index 00000000000..7cffcc8474c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/multiplication-assignment.html >@@ -0,0 +1,71 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Multiplication assignment operator compilation bug</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+uniform mat3 rot; >+float foo(vec3 bar) { >+ bar *= rot; >+ return 0.0; >+} >+ >+void main(void){ >+ gl_FragColor = vec4(foo(vec3(0))); >+} >+</script> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+ >+description(); >+debug(""); >+debug('Verify multiplication assignment operator compiles correctly - regression test for <a href="https://code.google.com/p/chromium/issues/detail?id=384847">Chromium bug 384847</a>'); >+ >+GLSLConformanceTester.runTests([ >+{ >+ fShaderId: 'fshader', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "vec3 *= mat3 multiplication assignment operator", >+} >+]); >+ >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/nested-functions-should-not-crash.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/nested-functions-should-not-crash.html >new file mode 100644 >index 00000000000..5408ff5b193 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/nested-functions-should-not-crash.html >@@ -0,0 +1,110 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Driver Bug - nested functions should not crash</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<canvas id="example" width="40" height="40"> </canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+void main(){ >+ gl_Position = vec4(0, 0, 0, 1); >+} >+</script> >+<script id="fshaderUniformTest" type="x-shader/x-fragment"> >+precision mediump float; >+uniform vec4 u_uniform; >+ >+$(code) >+ >+void main() >+{ >+ gl_FragColor = function0(); >+} >+</script> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(); >+ >+var fUniformTestSource = wtu.getScript("fshaderUniformTest"); >+ >+var tests = [ >+]; >+var counts = [ >+ { count:10, >+ mustPass: true, >+ }, >+ { count:100, >+ mustPass: false, >+ }, >+ { count: 1000, >+ mustPass: false, >+ }, >+ { count: 10000, >+ mustPass: false, >+ }, >+]; >+var operators = ["+", "-", "/", "*"]; >+counts.forEach(function(info) { >+ var generateCode = function(numVars) { >+ var codes = []; >+ codes.push("vec4 function" + numVars + "() { return u_uniform; }"); >+ for (var uu = 0; uu < numVars; ++uu) { >+ var id = numVars - uu - 1; >+ codes.push("vec4 function" + id + "() { return function" + (id + 1) + "(); }"); >+ } >+ return { >+ code: codes.join("\n\n"), >+ }; >+ }; >+ >+ var subs = generateCode(info.count); >+ tests.push({ >+ vShaderId: "vshader", >+ vShaderSuccess: true, >+ fShaderSource: wtu.replaceParams(fUniformTestSource, subs), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ ignoreResults: !info.mustPass, >+ passMsg: "shader with " + info.count + " nested functions", >+ }); >+}); >+GLSLConformanceTester.runTests(tests); >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/nested-loops-with-break-and-continue.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/nested-loops-with-break-and-continue.html >new file mode 100644 >index 00000000000..a7998903009 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/nested-loops-with-break-and-continue.html >@@ -0,0 +1,104 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Using nested loops with break and/or continue statements in a fragment shader should work</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css" /> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<canvas id="canvas" width="256" height="256"> </canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec3 aPosition; >+ >+void main() { >+ gl_Position = vec4(aPosition, 1); >+} >+</script> >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+uniform int uCount; >+ >+void main() { >+ int a = 0; >+ for (int i = 0; i < 10; ++i) { >+ if (i >= uCount) { break; } >+ for (int j = 0; j < 10; ++j) { >+ if (j >= uCount) { continue; } >+ a += 1; >+ } >+ for (int j = 0; j < 10; ++j) { >+ if (j >= uCount) { break; } >+ a += 1; >+ } >+ for (int j = 0; j < 10; ++j) { >+ if (j >= uCount) { continue; } >+ a += 1; >+ } >+ for (int j = 0; j < 10; ++j) { >+ if (j >= uCount) { break; } >+ a += 1; >+ } >+ for (int j = 0; j < 10; ++j) { >+ if (j >= uCount) { continue; } >+ a += 1; >+ } >+ } >+ float b = (float(a) / 125.0) * (64.0 / 255.0); >+ gl_FragColor = vec4(b, 1.0 - b, 0.0, 1.0); >+} >+</script> >+<script type="application/javascript"> >+"use strict"; >+description("Multiple loops using break and continue statements should work."); >+debug(""); >+var wtu = WebGLTestUtils; >+function test() { >+ var gl = wtu.create3DContext("canvas"); >+ if (!gl) { >+ testFailed("context does not exist"); >+ return; >+ } >+ wtu.setupUnitQuad(gl); >+ var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["aPosition"], undefined, true); >+ var uniformLoc = gl.getUniformLocation(program, 'uCount'); >+ gl.uniform1i(uniformLoc, 5); >+ wtu.drawUnitQuad(gl); >+ wtu.checkCanvas(gl, [64, 191, 0, 255], "should be 64,191,0,255"); >+}; >+ >+test(); >+finishTest(); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/nested-sequence-operator.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/nested-sequence-operator.html >new file mode 100644 >index 00000000000..9fab28e57aa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/nested-sequence-operator.html >@@ -0,0 +1,68 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Nested sequence operator</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshaderNestedSequenceOperator" type="x-shader/x-fragment"> >+precision mediump float; >+// Note that keep_flop_positive is expected to keep its default value false. >+uniform bool keep_flop_positive; >+float flop; >+void main() >+{ >+ flop = -1.0, >+ (flop *= -1.0, >+ keep_flop_positive ? 0.0 : flop *= -1.0), >+ gl_FragColor = vec4(0, -flop, 0, 1); >+} >+</script> >+<script type="text/javascript"> >+"use strict"; >+description("Test a nested sequence operator with a ternary operator inside. The ternary operator needs to be converted into an if statement on a HLSL based WebGL backend, which makes this case tricky."); >+ >+GLSLConformanceTester.runRenderTests([ >+{ >+ fShaderId: 'fshaderNestedSequenceOperator', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Nested sequence operator is evaluated in the expected order." >+} >+]); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/pow-of-small-constant-in-user-defined-function.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/pow-of-small-constant-in-user-defined-function.html >new file mode 100644 >index 00000000000..ebc4819d11b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/pow-of-small-constant-in-user-defined-function.html >@@ -0,0 +1,95 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Bug - calculating powers of constants smaller than 1.0e-5 in user-defined functions should work</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<canvas id="canvas" width="256" height="256"> </canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec3 aPosition; >+ >+void main() { >+ gl_Position = vec4(aPosition, 1); >+} >+</script> >+<script id="fshader" type="x-shader/x-fragment"> >+precision highp float; >+ >+float fun(float arg) { >+ // These values are still easily within the highp range. >+ // The minimum range in terms of 10's exponent is around -19 to 19, and IEEE-754 single precision range is higher than that. >+ return 1.0e12 * pow(arg, 2.0); >+} >+ >+void main() { >+ // Note that the bug did not reproduce if an uniform was passed to the function instead of a constant, >+ // or if the expression was moved outside the user-defined function. >+ const float a = 1.0e-6; >+ float b = fun(a); >+ if (abs(b - 1.0) < 0.01) { >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); // green >+ } else { >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); // red >+ } >+} >+</script> >+<script type="application/javascript"> >+"use strict"; >+description(); >+debug(""); >+var wtu = WebGLTestUtils; >+function test() { >+ var gl = wtu.create3DContext("canvas"); >+ if (!gl) { >+ testFailed("context does not exist"); >+ return; >+ } >+ if (gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT).precision == 0) { >+ testPassed("highp precision not supported"); >+ } else { >+ wtu.setupUnitQuad(gl); >+ var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["aPosition"], undefined, true); >+ wtu.drawUnitQuad(gl); >+ wtu.checkCanvasRect(gl, 0, 0, 256, 256, [0, 255, 0, 255]); >+ } >+}; >+ >+test(); >+finishTest(); >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/pow-with-constant-exponent-should-not-crash.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/pow-with-constant-exponent-should-not-crash.html >new file mode 100644 >index 00000000000..dedf3de1763 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/pow-with-constant-exponent-should-not-crash.html >@@ -0,0 +1,86 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Bug - pow() with constant vector exponent should not crash</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshaderTest" type="x-shader/x-fragment"> >+precision mediump float; >+void main() >+{ >+ // pow() with a constant vector exponent may cause a crash on NVIDIA 331 series OpenGL drivers >+ vec2 v = pow(gl_FragCoord.xy, vec2(2.0)); >+ float y = pow(v, vec2(0.45, 0.5)).y; >+ gl_FragColor = vec4(0.0, 1.0 + y - gl_FragCoord.y, 0.0, 1.0); >+} >+</script> >+<script id="fshaderNestedTest" type="x-shader/x-fragment"> >+precision mediump float; >+void main() >+{ >+ // pow() with a constant vector exponent may cause a crash on NVIDIA 331 series OpenGL drivers >+ // workarounds for this should work even if problematic pow() statements are nested within >+ // each other. >+ float y = pow(pow(gl_FragCoord.xy, vec2(2.0)), vec2(0.45, 0.5)).y; >+ gl_FragColor = vec4(0.0, 1.0 + y - gl_FragCoord.y, 0.0, 1.0); >+} >+</script> >+<script> >+"use strict"; >+ >+// This test has quite a lot of tolerance since pow() doesn't have explicit precision requirements >+// in ESSL1, and in ESSL3 the limits are very loose. >+GLSLConformanceTester.runRenderTests([ >+ { >+ fShaderId: "fshaderTest", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ renderTolerance: 20, >+ passMsg: "shader with pow() with a constant vector exponent should not crash", >+ }, >+ { >+ fShaderId: "fshaderNestedTest", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ renderTolerance: 20, >+ passMsg: "shader with nested pow() calls with constant vector exponents should not crash", >+ } >+]); >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/qualcomm-crash.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/qualcomm-crash.html >new file mode 100644 >index 00000000000..89e50a841ce >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/qualcomm-crash.html >@@ -0,0 +1,157 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Qualcomm program link crash Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script id='vshader1' type='x-shader/x-vertex'> >+precision highp float; >+void main() { >+gl_Position = vec4( 1.0, 1.0, 1.0, 1.0 ); >+} >+</script> >+<script id='fshader1' type='x-shader/x-fragment'> >+precision highp float; >+uniform int renderType; >+uniform sampler2D texMap; >+void main() { >+ vec2 uv = vec2(0.0, 0.0); >+ if( renderType == 0 ) { >+ gl_FragColor = texture2D( texMap, uv ); >+ } else { >+ vec4 texture = texture2D( texMap, uv ); >+ gl_FragColor = texture; >+ } >+} >+</script> >+ >+<script id='vshader2' type='x-shader/x-vertex'> >+attribute vec3 vertex_position; >+uniform mat4 matrix_model; >+uniform mat4 matrix_viewProjection; >+ >+attribute vec4 vertex_boneWeights; >+attribute vec4 vertex_boneIndices; >+ >+uniform sampler2D texture_poseMap; >+uniform vec2 texture_poseMapSize; >+ >+mat4 getBoneMatrix(const in float i) >+{ >+ float j = i * 4.0; >+ float x = mod(j, float(texture_poseMapSize.x)); >+ float y = floor(j / float(texture_poseMapSize.x)); >+ >+ float dx = 1.0 / float(texture_poseMapSize.x); >+ float dy = 1.0 / float(texture_poseMapSize.y); >+ >+ y = dy * (y + 0.5); >+ >+ vec4 v1 = texture2D(texture_poseMap, vec2(dx * (x + 0.5), y)); >+ vec4 v2 = texture2D(texture_poseMap, vec2(dx * (x + 1.5), y)); >+ vec4 v3 = texture2D(texture_poseMap, vec2(dx * (x + 2.5), y)); >+ vec4 v4 = texture2D(texture_poseMap, vec2(dx * (x + 3.5), y)); >+ >+ mat4 bone = mat4(v1, v2, v3, v4); >+ >+ return bone; >+} >+ >+void main(void) >+{ >+ mat4 modelMatrix = vertex_boneWeights.x * getBoneMatrix(vertex_boneIndices.x) + >+ vertex_boneWeights.y * getBoneMatrix(vertex_boneIndices.y) + >+ vertex_boneWeights.z * getBoneMatrix(vertex_boneIndices.z) + >+ vertex_boneWeights.w * getBoneMatrix(vertex_boneIndices.w); >+ >+ vec4 positionW = modelMatrix * vec4(vertex_position, 1.0); >+ gl_Position = matrix_viewProjection * positionW; >+ >+} >+</script> >+<script id='fshader2' type='x-shader/x-fragment'> >+precision highp float; >+void main() { >+ gl_FragColor = vec4( 1.0, 1.0, 1.0, 1.0 ); >+} >+</script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description("This test checks a known bug in some Qualcomm drivers which causes crashes when linking certain shaders. <a href='https://code.google.com/p/chromium/issues/detail?id=498947'>crbug.com/498947</a>"); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(); >+ >+gl.canvas.addEventListener("webglcontextlost", function(e) { >+ testFailed("WebGL context lost"); >+}); >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ debug(""); >+ >+ if (gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT).precision == 0) { >+ testPassed("highp precision not supported"); >+ } else { >+ var program1 = wtu.setupProgram(gl, ['vshader1', 'fshader1']); >+ if (!gl.getProgramParameter(program1, gl.LINK_STATUS)) { >+ testFailed("Program failed to link"); >+ } >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+ >+ debug(""); >+ >+ var program2 = wtu.setupProgram(gl, ['vshader2', 'fshader2']); >+ if (!gl.getProgramParameter(program2, gl.LINK_STATUS)) { >+ testFailed("Program failed to link"); >+ } >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+ } >+} >+ >+// Cycle through a rAF once to give any webglcontextlost events a chance to propagate >+window.requestAnimationFrame(function() { finishTest(); }); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/qualcomm-loop-with-continue-crash.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/qualcomm-loop-with-continue-crash.html >new file mode 100644 >index 00000000000..93cab6edc18 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/qualcomm-loop-with-continue-crash.html >@@ -0,0 +1,92 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Qualcomm loop with continue crash test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script id='vshader1' type='x-shader/x-vertex'> >+void main () >+{ >+} >+</script> >+<script id='fshader1' type='x-shader/x-fragment'> >+void main () >+{ >+ int count1 = 0, count2 = 0; >+ for(int i=0;i<4;i++) >+ { >+ if(count1 == 2) >+ continue; >+ } >+} >+</script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description("This test exercises a crash on Adreno 300 series GPUs when compiling certain loop constructs. <a href='https://code.google.com/p/chromium/issues/detail?id=527761'>crbug.com/527761</a>"); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(); >+ >+gl.canvas.addEventListener("webglcontextlost", function(e) { >+ testFailed("WebGL context lost"); >+}); >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ debug(""); >+ >+ var program1 = wtu.setupProgram(gl, ['vshader1', 'fshader1']); >+ if (!gl.getProgramParameter(program1, gl.LINK_STATUS)) { >+ testFailed("Program failed to link"); >+ } >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+ >+ debug(""); >+} >+ >+// Cycle through a rAF once to give any webglcontextlost events a chance to propagate >+window.requestAnimationFrame(function() { finishTest(); }); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/sampler-array-struct-function-arg.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/sampler-array-struct-function-arg.html >new file mode 100644 >index 00000000000..44130cc5185 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/sampler-array-struct-function-arg.html >@@ -0,0 +1,93 @@ >+<!-- >+ >+/* >+** Copyright (c) 2017 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL struct containing an array of samplers passed into a user-defined function</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+ >+<canvas id="output" style="border: none;" width="64" height="64"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshaderSampler" type="x-shader/x-fragment"> >+precision mediump float; >+ >+struct S { >+ sampler2D sam[2]; >+}; >+ >+uniform S uni; >+ >+vec4 useSampler(S arg) >+{ >+ return texture2D(arg.sam[0], vec2(0.0, 0.0)); >+} >+ >+void main() { >+ gl_FragColor = vec4(useSampler(uni)); >+} >+</script> >+<script type="application/javascript"> >+"use strict"; >+description(); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("output"); >+var gl = wtu.create3DContext(canvas); >+ >+if (!gl) { >+ testFailed("Could not create a GL context."); >+} else { >+ debug("Drawing with a shader that uses a sampler array in a struct passed into a function."); >+ var program = wtu.setupProgram( >+ gl, [wtu.simpleVertexShader, 'fshaderSampler'], ['a_position'], [0], true); >+ wtu.setupUnitQuad(gl); >+ >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ wtu.fillTexture(gl, tex, 1, 1, [0, 255, 0, 255]); >+ >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "should be green"); >+} >+ >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/sampler-array-using-loop-index.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/sampler-array-using-loop-index.html >new file mode 100644 >index 00000000000..d9cb5030254 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/sampler-array-using-loop-index.html >@@ -0,0 +1,102 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Sampler arrays using loop index should compile fine.</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="4" height="4" style="width: 40px; height: 30px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+uniform sampler2D uni[2]; >+ >+float zero(int x) >+{ >+ return float(x) - float(x); >+} >+ >+void main() >+{ >+ vec4 c = vec4(0,0,0,0); >+ for (int ii = 1; ii < 3; ++ii) { >+ if (c.x > 255.0) { >+ c.x = 255.0 + zero(ii); >+ break; >+ } >+ c += texture2D(uni[ii - 1], vec2(0.5, 0.5)); >+ } >+ gl_FragColor = c; >+} >+</script> >+<script> >+"use strict"; >+description(document.title); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+var program = wtu.setupTexturedQuad(gl); >+ >+//------------------------------------------------------------------------------ >+var program = wtu.setupProgram( >+ gl, ['vshader', 'fshader'], ['vPosition'], undefined, true); >+ >+for (var ii = 0; ii < 2; ++ii) { >+ var loc = gl.getUniformLocation(program, "uni[" + ii + "]"); >+ gl.activeTexture(gl.TEXTURE0 + ii); >+ var tex = gl.createTexture(); >+ wtu.fillTexture(gl, tex, 1, 1, [32, 16, 8, ii * 9], 0); >+ gl.uniform1i(loc, ii); >+} >+ >+wtu.clearAndDrawUnitQuad(gl); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from setup."); >+wtu.checkCanvas(gl, [64, 32, 16, 9], >+ "Should render correctly", 1); >+ >+var successfullyParsed = true; >+ >+</script> >+<script src="../../../js/js-test-post.js"></script> >+ >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/sampler-struct-function-arg.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/sampler-struct-function-arg.html >new file mode 100644 >index 00000000000..d310029c60e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/sampler-struct-function-arg.html >@@ -0,0 +1,132 @@ >+<!-- >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+ >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Passing a struct containing a sampler to a function.</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+ >+<body> >+<canvas id="output" style="border: none;" width="64" height="64"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script id="shader-fs" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ struct SomeStruct{ >+ sampler2D source; >+ }; >+ >+ vec4 fun(SomeStruct s){ >+ return texture2D(s.source, vec2(0.5)); >+ } >+ >+ uniform SomeStruct green; >+ void main(){ >+ gl_FragColor = fun(green); >+ } >+</script> >+ >+<script id="shader-fs-array" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ struct SomeStruct{ >+ sampler2D source; >+ }; >+ >+ vec4 fun(SomeStruct s[2]){ >+ return texture2D(s[0].source, vec2(0.5)); >+ } >+ >+ uniform SomeStruct green[2]; >+ void main(){ >+ gl_FragColor = fun(green); >+ } >+</script> >+ >+<script> >+"use strict"; >+ >+description(); >+debug("If the test passes correctly the viewport will be green."); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("output"); >+var gl = wtu.create3DContext(canvas); >+ >+var textureGreen; >+ >+var createGreenTexture = function() { >+ var texture = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, texture); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ wtu.fillTexture(gl, texture, 1, 1, [0, 255, 0, 255]); >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ return texture; >+}; >+ >+var test = function(fragShaderId, texUniformName) { >+ var program = wtu.setupProgram(gl, [wtu.simpleVertexShader, fragShaderId], ["a_position"], [0], true); >+ >+ if (!program) { >+ testFailed("Shader compilation/link failed"); >+ } else { >+ // Bind texture >+ var uniformMap = wtu.getUniformMap(gl, program); >+ gl.activeTexture(gl.TEXTURE0); >+ gl.bindTexture(gl.TEXTURE_2D, textureGreen); >+ gl.uniform1i(uniformMap[texUniformName].location, 0); >+ >+ // Draw >+ wtu.clearAndDrawUnitQuad(gl); >+ >+ // Verify output >+ wtu.checkCanvasRect(gl, 0, 128, 256, 128, [0, 255,0, 255], "should be green", 1); >+ } >+}; >+ >+if (!gl) { >+ testFailed("context does not exist"); >+} else { >+ wtu.setupUnitQuad(gl, 0, 1); >+ textureGreen = createGreenTexture(); >+ test("shader-fs", "green.source"); >+ test("shader-fs-array", "green[0].source"); >+} >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/sequence-operator-evaluation-order.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/sequence-operator-evaluation-order.html >new file mode 100644 >index 00000000000..a2362923b7b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/sequence-operator-evaluation-order.html >@@ -0,0 +1,137 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL short-circuiting operators should be evaluated after previous operands in a sequence</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<canvas id="canvas" width="64" height="64"> </canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshaderSequenceSideEffectsAffectTernary" type="x-shader/x-fragment"> >+precision mediump float; >+ >+bool correct = true; >+ >+uniform float u_zero; >+ >+float wrong() { >+ correct = false; >+ return 0.0; >+} >+ >+void main() { >+ // ESSL 1.00 section 5.9, about sequence operator: >+ // "All expressions are evaluated, in order, from left to right" >+ // Also use a ternary operator where the third operand has side effects to make sure >+ // only the second operand is evaluated. >+ float a = u_zero - 0.5; // Result should be -0.5. >+ float green = (a++, a > 0.0 ? 1.0 : wrong()); >+ gl_FragColor = vec4(0.0, correct ? green : 0.0, 0.0, 1.0); >+} >+</script> >+<script id="fshaderSequenceSideEffectsAffectAnd" type="x-shader/x-fragment"> >+precision mediump float; >+ >+uniform bool u_false; >+ >+bool sideEffectA = false; >+bool funcA() { >+ sideEffectA = true; >+ return true; >+} >+ >+bool sideEffectB = false; >+bool funcB() { >+ sideEffectB = true; >+ return true; >+} >+ >+void main() { >+ bool b = (funcA(), u_false == sideEffectA && funcB()); >+ gl_FragColor = (!b && sideEffectA && !sideEffectB) ? vec4(0, 1, 0, 1) : vec4(1, 0, 0, 1); >+} >+</script> >+<script id="fshaderSequenceSideEffectsAffectOr" type="x-shader/x-fragment"> >+precision mediump float; >+ >+uniform bool u_false; >+ >+bool sideEffectA = false; >+bool funcA() { >+ sideEffectA = true; >+ return false; >+} >+ >+bool sideEffectB = false; >+bool funcB() { >+ sideEffectB = true; >+ return false; >+} >+ >+void main() { >+ bool b = (funcA(), (u_false == !sideEffectA) || funcB()); >+ gl_FragColor = (b && sideEffectA && !sideEffectB) ? vec4(0, 1, 0, 1) : vec4(1, 0, 0, 1); >+} >+</script> >+<script type="application/javascript"> >+"use strict"; >+description(); >+debug(""); >+debug("This test is targeted to stress syntax tree transformations that might need to be done in shader translation to unfold operators."); >+ >+GLSLConformanceTester.runRenderTests([ >+{ >+ fShaderId: 'fshaderSequenceSideEffectsAffectTernary', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'Expression where first operand of a sequence operator has side effects which affect the second operand that is a ternary operator' >+}, >+{ >+ fShaderId: 'fshaderSequenceSideEffectsAffectAnd', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'Expression where first operand of a sequence operator has side effects which affect the second operand that is an and operator' >+}, >+{ >+ fShaderId: 'fshaderSequenceSideEffectsAffectOr', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'Expression where first operand of a sequence operator has side effects which affect the second operand that is an or operator' >+} >+]); >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/sketchfab-lighting-shader-crash.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/sketchfab-lighting-shader-crash.html >new file mode 100644 >index 00000000000..daf53ecc019 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/sketchfab-lighting-shader-crash.html >@@ -0,0 +1,105 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Sketchfab Lighting Shader Crash</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script id='vshader1' type='x-shader/x-vertex'> >+attribute float testValue; // Can be uniform as well. >+varying mediump float FragVarying; // Necessary to reproduce. >+ >+void main() { >+ // Crashes with mat4 as well. Does not crash with vectors. >+ mat2 projectionMatrix = mat2(0.0, 0.0, 0.0, 0.0); >+ if (testValue == 1.0) >+ { >+ // Using the matrix variable appears necessary. >+ projectionMatrix[0][0] = 1.0; >+ } >+ >+ FragVarying = 0.0; >+ // Referencing the matrix is necessary though clearly the compiler >+ // doesn't realize the assignment is useless. >+ gl_Position = vec4(projectionMatrix[1][0], 0.0, 0.0, 1.0); >+} >+</script> >+<script id='fshader1' type='x-shader/x-fragment'> >+precision mediump float; >+varying float FragVarying; >+ >+void main() { >+ gl_FragColor = vec4(FragVarying, 0.0, 0.0, 1.0); >+} >+</script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description("This test demonstrates a crash on the Nexus 5 (Adreno 330) when compiling Sketchfab's lighting shader. <a href='https://code.google.com/p/chromium/issues/detail?id=551937'>crbug.com/551937</a>"); >+ >+debug(""); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(); >+ >+gl.canvas.addEventListener("webglcontextlost", function(e) { >+ testFailed("WebGL context lost"); >+}); >+ >+if (!gl) { >+ testFailed("WebGL context does not exist"); >+} else { >+ testPassed("WebGL context exists"); >+ debug(""); >+ >+ var program1 = wtu.setupProgram(gl, ['vshader1', 'fshader1']); >+ if (!gl.getProgramParameter(program1, gl.LINK_STATUS)) { >+ testFailed("Program failed to link"); >+ } else { >+ testPassed("Program linked successfully"); >+ } >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+ >+ debug(""); >+} >+ >+// Cycle through rAF a few times to give any webglcontextlost events a chance to propagate. >+wtu.waitForComposite(function() { finishTest(); }); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/struct-constructor-highp-bug.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/struct-constructor-highp-bug.html >new file mode 100644 >index 00000000000..afb72e1916f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/struct-constructor-highp-bug.html >@@ -0,0 +1,50 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Struct constructor highp bug.</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshader" type="x-shader/x-fragment"> >+#ifdef GL_FRAGMENT_PRECISION_HIGH >+precision highp float; >+#else >+precision mediump float; >+#endif >+ >+struct Test { >+ vec3 color; >+}; >+ >+void main() { >+ vec3 color = vec3( 0.0, 1.0, 0.0 ); >+ Test test = Test( color ); >+ gl_FragColor = vec4( test.color, 1.0 ); >+} >+</script> >+ >+<script type="application/javascript"> >+"use strict"; >+description("Struct constructors should evaluate properly."); >+debug("Regression test for Three.js bug worked around in <a href='https://github.com/mrdoob/three.js/pull/7556'>https://github.com/mrdoob/three.js/pull/7556</a> that reproduced on Nexus 4 and 5 (Adreno 320 and 330)."); >+debug("When high precision is used in the fragment shader on these devices, bugs occur in evaluation of structs' constructors. Thanks to Mr. doob for the reduced test case."); >+ >+GLSLConformanceTester.runRenderTests([ >+{ >+ fShaderId: 'fshader', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Struct contstructor evaluation" >+} >+]); >+ >+</script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/temp-expressions-should-not-crash.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/temp-expressions-should-not-crash.html >new file mode 100644 >index 00000000000..cddd35aade7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/temp-expressions-should-not-crash.html >@@ -0,0 +1,121 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Driver Bug - temp experssions should not crash</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<canvas id="example" width="40" height="40"> </canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+void main(){ >+ gl_Position = vec4(0, 0, 0, 1); >+} >+</script> >+<script id="fshaderUniformTest" type="x-shader/x-fragment"> >+precision mediump float; >+uniform vec4 u_uniform; >+void main() >+{ >+ vec4 temp = vec4(0, 0, 0, 0); >+$(code) >+ gl_FragColor = temp; >+} >+</script> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(); >+ >+var fUniformTestSource = wtu.getScript("fshaderUniformTest"); >+ >+var tests = [ >+]; >+var counts = [ >+ { count:100, >+ mustPass: true, >+ }, >+ { count: 1000, >+ mustPass: false, >+ }, >+ { count: 10000, >+ mustPass: false, >+ }, >+]; >+var operators = ["+", "-", "/", "*"]; >+counts.forEach(function(info) { >+ var generateCode = function(numVars) { >+ var codes = []; >+ var count = 0; >+ var step = 10; >+ for (var uu = 0; uu < numVars; uu += step) { >+ var subCodes = [""]; >+ for (var vv = 0; vv < step; ++vv) { >+ subCodes.push(operators[(count++) % operators.length]); >+ } >+ subCodes.push(""); >+ codes.push(" temp += " + subCodes.join("\n u_uniform ") + ";"); >+ } >+ return { >+ code: codes.join("\n"), >+ }; >+ }; >+ >+ var subs = generateCode(info.count); >+ tests.push({ >+ vShaderId: "vshader", >+ vShaderSuccess: true, >+ fShaderSource: wtu.replaceParams(fUniformTestSource, subs), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ ignoreResults: !info.mustPass, >+ passMsg: "shader with uniform with " + info.count + " operators in temp expressions in multiple lines", >+ }); >+ subs.code = subs.code.replace(/\n +/g, " ") >+ tests.push({ >+ vShaderId: "vshader", >+ vShaderSuccess: true, >+ fShaderSource: wtu.replaceParams(fUniformTestSource, subs), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ ignoreResults: !info.mustPass, >+ passMsg: "shader with uniform with " + info.count + " operators in temp expressions in one line", >+ }); >+}); >+GLSLConformanceTester.runTests(tests); >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/unary-minus-operator-float-bug.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/unary-minus-operator-float-bug.html >new file mode 100644 >index 00000000000..55c39de2be3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/unary-minus-operator-float-bug.html >@@ -0,0 +1,70 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL unary minus operator with float bug Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+void main () { >+ float f = -1.0; >+ // atan(tan(0.5), -f) is in range [1.5707, 1.5708) on Mac OSX 10.11 with Intel GPU. >+ // But it should be 0.5. >+ gl_FragColor = vec4(atan(tan(0.5), -f), 0.0, 0.0, 1.0); >+} >+</script> >+<script> >+"use strict"; >+description("Test for unary minus operator with float bug on MacOSX 10.11 with Intel GPU"); >+debug("This is a regression test for <a href='https://bugs.chromium.org/p/chromium/issues/detail?id=308366'>Chromium Issue 308366</a>"); >+debug(""); >+ >+GLSLConformanceTester.runRenderTests([ >+{ >+ fShaderId: 'fshader', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Evaluate unary minus operator and atan(x, y)", >+ renderTolerance: 3, >+ renderColor: [127, 0, 0, 255] >+} >+]); >+ >+</script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/undefined-index-should-not-crash.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/undefined-index-should-not-crash.html >new file mode 100644 >index 00000000000..12aea32c6bc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/undefined-index-should-not-crash.html >@@ -0,0 +1,85 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Bug - indexing with 'int()' should not crash</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<canvas id="example" width="40" height="40"> </canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+void main(){ >+ gl_Position = vec4(0.0, 0.0, 0.0, 1.0); >+} >+</script> >+<script id="fshaderTest" type="x-shader/x-fragment"> >+precision mediump float; >+uniform vec4 uniformVec; >+uniform mat4 uniformMat; >+uniform float uniformArray[4]; >+void main() >+{ >+ vec4 tempVec = vec4(0.0); >+ mat4 tempMat = mat4(0.0); >+ float tempArray[4]; >+ gl_FragColor = vec4($(indexed)[int()]); >+} >+</script> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+ >+var fTestSource = wtu.getScript("fshaderTest"); >+ >+var tests = []; >+ >+var indexedValues = ['tempVec', 'tempMat[0]', 'tempArray', 'uniformVec', 'uniformMat[0]', 'uniformArray']; >+ >+for (var i = 0; i < indexedValues.length; ++i) { >+ var subs = {indexed: indexedValues[i]}; >+ tests.push({ >+ vShaderId: "vshader", >+ vShaderSuccess: true, >+ fShaderSource: wtu.replaceParams(fTestSource, subs), >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "shader with invalid index expression int() should not compile", >+ }); >+} >+GLSLConformanceTester.runTests(tests); >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/uniforms-should-not-lose-values.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/uniforms-should-not-lose-values.html >new file mode 100644 >index 00000000000..0231fc79647 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/uniforms-should-not-lose-values.html >@@ -0,0 +1,102 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Driver Bug - Uniforms should no lose values</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<canvas id="canvas" width="512" height="256"> </canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+uniform float k,u; >+uniform mat4 l; >+attribute vec3 a; >+void main(){ >+ gl_Position=l*vec4(a,1.+u+k); >+} >+</script> >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+uniform float w,x,y,z; >+void main() { >+ gl_FragColor=vec4(1.-y,y,w+x+z,1); >+} >+</script> >+<script> >+"use strict"; >+// Certain drivers fail this test. Specifically Mac NVidia GT 330 on OSX 10.8.2 >+description(); >+debug(""); >+var wtu = WebGLTestUtils; >+function test() { >+ var gl = wtu.create3DContext("canvas"); >+ if (!gl) { >+ testFailed("context does not exist"); >+ return; >+ } >+ >+ wtu.setupUnitQuad(gl); >+ var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["a"], undefined, true); >+ >+ var setUniformf = function(name, val) { >+ var loc = gl.getUniformLocation(program, name); >+ var func = 'uniform' + val.length + 'fv'; >+ gl[func](loc, val); >+ }; >+ >+ var setUniformMat = function(name, val) { >+ var loc = gl.getUniformLocation(program, name); >+ var func = 'uniformMatrix' + Math.sqrt(val.length) + 'fv'; >+ gl[func](loc, false, val); >+ }; >+ >+ setUniformMat('l', [1, 0 ,0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]); >+ gl.viewport(0, 0, 256, 256); >+ setUniformf('y', [0]); >+ wtu.drawUnitQuad(gl); >+ gl.viewport(256, 0, 256, 256); >+ setUniformf('y', [1]); >+ wtu.drawUnitQuad(gl); >+ wtu.checkCanvasRect(gl, 0, 0, 256, 256, [255, 0, 0, 255]); >+ wtu.checkCanvasRect(gl, 256, 0, 256, 256, [0, 255, 0, 255]); >+ >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+} >+test(); >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/varying-arrays-should-not-be-reversed.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/varying-arrays-should-not-be-reversed.html >new file mode 100644 >index 00000000000..4d103620b0a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/varying-arrays-should-not-be-reversed.html >@@ -0,0 +1,101 @@ >+<!-- >+/* >+** Copyright (c) 2017 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Varying arrays should not be reversed</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<canvas id="canvas" width="512" height="256"> </canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+varying float colors[3]; >+uniform vec3 testData; >+attribute vec3 position; >+void main(){ >+ gl_Position = vec4(position, 1.0); >+ colors[0] = testData.x; >+ colors[1] = testData.y; >+ colors[2] = testData.z; >+} >+</script> >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+varying float colors[3]; >+void main() { >+ gl_FragColor = vec4(colors[0], colors[1], colors[2], 1.0); >+} >+</script> >+<script> >+"use strict"; >+description("Varying arrays should not be reversed."); >+debug("This issue has been seen in Chrome on Nexus 7 2013 (Adreno 320) and Moto G3 (Adreno 306)."); >+debug(""); >+debug("If things are working correctly, the vertical stripes should be: red, green, blue, light blue, orange"); >+debug(""); >+debug("If they are not, the red and blue channels will appear to be swapped and you will see: blue, green, red, orange, light blue"); >+var wtu = WebGLTestUtils; >+function test() { >+ var gl = wtu.create3DContext("canvas"); >+ if (!gl) { >+ testFailed("context does not exist"); >+ return; >+ } >+ >+ wtu.setupUnitQuad(gl); >+ var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["position"], undefined, true); >+ var loc = gl.getUniformLocation(program, 'testData'); >+ >+ var triples = [ >+ [255, 0, 0], >+ [0, 255, 0], >+ [0, 0, 255], >+ [0, 128, 255], >+ [255, 128, 0] >+ ]; >+ >+ for (var i = 0; i < triples.length; i++) { >+ var triple = triples[i]; >+ var x = i * 64; >+ gl.viewport(x, 0, 64, 256); >+ gl.uniform3f(loc, triple[0] / 255, triple[1] / 255, triple[2] / 255); >+ wtu.drawUnitQuad(gl); >+ wtu.checkCanvasRect(gl, x, 0, 64, 256, [triple[0], triple[1], triple[2], 255]); >+ } >+ >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+} >+test(); >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/vector-scalar-arithmetic-inside-loop-complex.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/vector-scalar-arithmetic-inside-loop-complex.html >new file mode 100644 >index 00000000000..5fc4d6fc311 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/vector-scalar-arithmetic-inside-loop-complex.html >@@ -0,0 +1,101 @@ >+<!-- >+ >+/* >+** Copyright (c) 2017 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL vector/scalar arithmetic inside a for loop (complex cases)</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fShaderVectorCompoundMulAndAddInSeparateStatementsInsideForLoop" type="x-shader/x-fragment"> >+precision mediump float; >+ >+void main() { >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); >+ for (int i = 0; i < 2; i++) >+ { >+ float x = gl_FragCoord.x; >+ float y = (x *= 2.0); >+ gl_FragColor = gl_FragColor + vec4(y, y, y, y); >+ } >+ if (gl_FragColor.g == gl_FragColor.r && >+ gl_FragColor.b == gl_FragColor.r && >+ gl_FragColor.a == gl_FragColor.r) >+ { >+ gl_FragColor = vec4(0, 1, 0, 1); >+ } >+} >+</script> >+<script id="fShaderVectorCompoundMulAndAddInSeparateStatementsInsideForLoop2" type="x-shader/x-fragment"> >+precision mediump float; >+ >+void main() { >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); >+ for (int i = 0; i < 2; i++) >+ { >+ float x = gl_FragCoord.x; >+ float y = (x *= 2.0); >+ gl_FragColor = gl_FragColor + vec4(x, y, x, y); >+ } >+ if (gl_FragColor.g == gl_FragColor.r && >+ gl_FragColor.b == gl_FragColor.r && >+ gl_FragColor.a == gl_FragColor.r) >+ { >+ gl_FragColor = vec4(0, 1, 0, 1); >+ } >+} >+</script> >+<script type="text/javascript"> >+"use strict"; >+description(); >+ >+// See http://crbug.com/772651 >+ >+GLSLConformanceTester.runRenderTests([ >+{ >+ fShaderId: 'fShaderVectorCompoundMulAndAddInSeparateStatementsInsideForLoop', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Adding a vector that's just 4 copies of a scalar to another vector inside for loop should work." >+}, >+{ >+ fShaderId: 'fShaderVectorCompoundMulAndAddInSeparateStatementsInsideForLoop2', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Adding a vector that's just 4 copies of a scalar stored in two different variables to another vector inside for loop should work." >+} >+]); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/vector-scalar-arithmetic-inside-loop.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/vector-scalar-arithmetic-inside-loop.html >new file mode 100644 >index 00000000000..6ee6df76dda >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/vector-scalar-arithmetic-inside-loop.html >@@ -0,0 +1,120 @@ >+<!-- >+ >+/* >+** Copyright (c) 2017 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL vector/scalar arithmetic inside a for loop</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fShaderVectorMulAndAddInsideForLoop" type="x-shader/x-fragment"> >+void main(){ >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); >+ for (int i = 0; i < 2; i++) >+ { >+ gl_FragColor += (2.0 * gl_FragCoord.x); >+ } >+ if (gl_FragColor.g == gl_FragColor.r && >+ gl_FragColor.b == gl_FragColor.r && >+ gl_FragColor.a == gl_FragColor.r) >+ { >+ gl_FragColor = vec4(0, 1, 0, 1); >+ } >+} >+</script> >+<script id="fShaderVectorCompoundMulAndAddInsideForLoop" type="x-shader/x-fragment"> >+precision mediump float; >+ >+void main() { >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); >+ for (int i = 0; i < 2; i++) >+ { >+ float x = gl_FragCoord.x; >+ gl_FragColor = gl_FragColor + (x *= 2.0); >+ } >+ if (gl_FragColor.g == gl_FragColor.r && >+ gl_FragColor.b == gl_FragColor.r && >+ gl_FragColor.a == gl_FragColor.r) >+ { >+ gl_FragColor = vec4(0, 1, 0, 1); >+ } >+} >+</script> >+<script id="fShaderVectorCompoundDivAndAddInsideForLoop" type="x-shader/x-fragment"> >+precision mediump float; >+ >+void main() { >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); >+ for (int i = 0; i < 2; i++) >+ { >+ float x = gl_FragCoord.x; >+ gl_FragColor = gl_FragColor + (x /= 2.0); >+ } >+ if (gl_FragColor.g == gl_FragColor.r && >+ gl_FragColor.b == gl_FragColor.r && >+ gl_FragColor.a == gl_FragColor.r) >+ { >+ gl_FragColor = vec4(0, 1, 0, 1); >+ } >+} >+</script> >+<script type="text/javascript"> >+"use strict"; >+description(); >+ >+// See http://crbug.com/772651 >+ >+GLSLConformanceTester.runRenderTests([ >+{ >+ fShaderId: 'fShaderVectorMulAndAddInsideForLoop', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Adding a scalar to a vector inside for loop should work." >+}, >+{ >+ fShaderId: 'fShaderVectorCompoundMulAndAddInsideForLoop', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Adding a scalar (target of a compound assignment/multiplication operation) to a vector inside for loop should work." >+}, >+{ >+ fShaderId: 'fShaderVectorCompoundDivAndAddInsideForLoop', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Adding a scalar (target of a compound assignment/division operation) to a vector inside for loop should work." >+} >+]); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/00_test_list.txt >new file mode 100644 >index 00000000000..6758bea8e8d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/00_test_list.txt >@@ -0,0 +1,14 @@ >+glsl-construct-vec2.html >+glsl-construct-vec3.html >+glsl-construct-vec4.html >+glsl-construct-ivec2.html >+glsl-construct-ivec3.html >+glsl-construct-ivec4.html >+glsl-construct-bvec2.html >+glsl-construct-bvec3.html >+glsl-construct-bvec4.html >+glsl-construct-mat2.html >+glsl-construct-mat3.html >+glsl-construct-mat4.html >+--min-version 1.0.3 glsl-construct-vec-mat-corner-cases.html >+--min-version 1.0.3 glsl-construct-vec-mat-index.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec2.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec2.html >new file mode 100644 >index 00000000000..2883e97b7cd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec2.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<script src="../../../js/glsl-constructor-tests-generator.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+var targetType = "bvec2"; >+description("Test " + targetType + " constructor expressions."); >+ >+var testSet = GLSLConstructorTestsGenerator.getDefaultTestSet(targetType); >+ >+// Generate tests >+var testCases = GLSLConstructorTestsGenerator.getConstructorTests(targetType, testSet); >+ >+// Run the tests >+GLSLConformanceTester.runTests(testCases); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec3.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec3.html >new file mode 100644 >index 00000000000..e75468e928a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec3.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<script src="../../../js/glsl-constructor-tests-generator.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+var targetType = "bvec3"; >+description("Test " + targetType + " constructor expressions."); >+ >+var testSet = GLSLConstructorTestsGenerator.getDefaultTestSet(targetType); >+ >+// Generate tests >+var testCases = GLSLConstructorTestsGenerator.getConstructorTests(targetType, testSet); >+ >+// Run the tests >+GLSLConformanceTester.runTests(testCases); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec4.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec4.html >new file mode 100644 >index 00000000000..6fd71fb3538 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-bvec4.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<script src="../../../js/glsl-constructor-tests-generator.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+var targetType = "bvec4"; >+description("Test " + targetType + " constructor expressions."); >+ >+var testSet = GLSLConstructorTestsGenerator.getDefaultTestSet(targetType); >+ >+// Generate tests >+var testCases = GLSLConstructorTestsGenerator.getConstructorTests(targetType, testSet); >+ >+// Run the tests >+GLSLConformanceTester.runTests(testCases); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec2.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec2.html >new file mode 100644 >index 00000000000..015582db110 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec2.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<script src="../../../js/glsl-constructor-tests-generator.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+var targetType = "ivec2"; >+description("Test " + targetType + " constructor expressions."); >+ >+var testSet = GLSLConstructorTestsGenerator.getDefaultTestSet(targetType); >+ >+// Generate tests >+var testCases = GLSLConstructorTestsGenerator.getConstructorTests(targetType, testSet); >+ >+// Run the tests >+GLSLConformanceTester.runTests(testCases); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec3.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec3.html >new file mode 100644 >index 00000000000..1f3a059918f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec3.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<script src="../../../js/glsl-constructor-tests-generator.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+var targetType = "ivec3"; >+description("Test " + targetType + " constructor expressions."); >+ >+var testSet = GLSLConstructorTestsGenerator.getDefaultTestSet(targetType); >+ >+// Generate tests >+var testCases = GLSLConstructorTestsGenerator.getConstructorTests(targetType, testSet); >+ >+// Run the tests >+GLSLConformanceTester.runTests(testCases); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec4.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec4.html >new file mode 100644 >index 00000000000..1326db7d03b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-ivec4.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<script src="../../../js/glsl-constructor-tests-generator.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+var targetType = "ivec4"; >+description("Test " + targetType + " constructor expressions."); >+ >+var testSet = GLSLConstructorTestsGenerator.getDefaultTestSet(targetType); >+ >+// Generate tests >+var testCases = GLSLConstructorTestsGenerator.getConstructorTests(targetType, testSet); >+ >+// Run the tests >+GLSLConformanceTester.runTests(testCases); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat2.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat2.html >new file mode 100644 >index 00000000000..b2ffc72a3cd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat2.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<script src="../../../js/glsl-constructor-tests-generator.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+var targetType = "mat2"; >+description("Test " + targetType + " constructor expressions."); >+ >+var testSet = GLSLConstructorTestsGenerator.getDefaultTestSet(targetType); >+ >+// Generate tests >+var testCases = GLSLConstructorTestsGenerator.getConstructorTests(targetType, testSet); >+ >+// Run the tests >+GLSLConformanceTester.runTests(testCases); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat3.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat3.html >new file mode 100644 >index 00000000000..6870d063c96 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat3.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<script src="../../../js/glsl-constructor-tests-generator.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+var targetType = "mat3"; >+description("Test " + targetType + " constructor expressions."); >+ >+var testSet = GLSLConstructorTestsGenerator.getDefaultTestSet(targetType); >+ >+// Generate tests >+var testCases = GLSLConstructorTestsGenerator.getConstructorTests(targetType, testSet); >+ >+// Run the tests >+GLSLConformanceTester.runTests(testCases); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat4.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat4.html >new file mode 100644 >index 00000000000..fdfcad06ba7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-mat4.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<script src="../../../js/glsl-constructor-tests-generator.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+var targetType = "mat4"; >+description("Test " + targetType + " constructor expressions."); >+ >+var testSet = GLSLConstructorTestsGenerator.getDefaultTestSet(targetType); >+ >+// Generate tests >+var testCases = GLSLConstructorTestsGenerator.getConstructorTests(targetType, testSet); >+ >+// Run the tests >+GLSLConformanceTester.runTests(testCases); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec-mat-corner-cases.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec-mat-corner-cases.html >new file mode 100644 >index 00000000000..0214832f454 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec-mat-corner-cases.html >@@ -0,0 +1,216 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script id="vsVec4Mat2Add" type="text/something-not-javascript"> >+void main() >+{ >+ mat2 m1 = mat2(1.0, 2.0, 3.0, 4.0); >+ mat2 m2 = mat2(0); >+ vec4 v = vec4(m1 + m2); >+ gl_Position = v; >+} >+</script> >+<script id="fsVec4Mat3Add" type="text/something-not-javascript"> >+precision mediump float; >+void main() >+{ >+ mat3 m1 = mat3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0); >+ mat3 m2 = mat3(0); >+ vec4 v = vec4(m1 + m2); >+ gl_FragColor = v; >+} >+</script> >+ >+<script id="vsMat2Vec4Sub" type="text/something-not-javascript"> >+void main() >+{ >+ vec4 v1 = vec4(1.0, 2.0, 3.0, 4.0); >+ vec4 v2 = vec4(0); >+ mat2 m = mat2(v1 - v2); >+ gl_Position = vec4(1.0, m); >+} >+</script> >+<script id="fsMat3Vec4AddSub" type="text/something-not-javascript"> >+precision mediump float; >+void main() >+{ >+ vec4 v1 = vec4(1.0, 2.0, 3.0, 4.0); >+ vec4 v2 = vec4(0); >+ mat3 m = mat3(v1 + v2, 5.0, v1 - v2); >+ gl_FragColor = vec4(m); >+} >+</script> >+ >+<script id="vsVec4Mat2Func" type="text/something-not-javascript"> >+mat2 f(mat2 a) >+{ >+ return a; >+} >+void main() >+{ >+ mat2 m = mat2(1.0, 2.0, 3.0, 4.0); >+ vec4 v = vec4(f(m)); >+ gl_Position = vec4(1.0, v); >+} >+</script> >+<script id="fsVec4Mat3Func" type="text/something-not-javascript"> >+precision mediump float; >+mat3 f(mat3 a) >+{ >+ return a; >+} >+void main() >+{ >+ mat3 m = mat3(0); >+ vec4 v = vec4(f(m)); >+ gl_FragColor = v; >+} >+</script> >+ >+<script id="vsMat2Vec4Func" type="text/something-not-javascript"> >+vec4 f(vec4 a) >+{ >+ return a; >+} >+void main() >+{ >+ vec4 v = vec4(1.0, 2.0, 3.0, 4.0); >+ mat2 m = mat2(f(v)); >+ gl_Position = vec4(1.0, m); >+} >+</script> >+<script id="fsMat3Vec4Func" type="text/something-not-javascript"> >+precision mediump float; >+vec4 f(vec4 a) >+{ >+ return a; >+} >+void main() >+{ >+ vec4 v1 = vec4(1.0, 2.0, 3.0, 4.0); >+ vec4 v2 = vec4(0); >+ mat3 m = mat3(f(v1), 5.0, f(v2)); >+ gl_FragColor = vec4(m); >+} >+</script> >+ >+<script id="vsMat4VecMultiple" type="text/something-not-javascript"> >+vec4 f(vec4 a) >+{ >+ return a; >+} >+void main() >+{ >+ vec2 v2 = vec2(1.0, 2.0); >+ vec3 v3 = vec3(1.0, 2.0, 3.0); >+ vec4 v4 = vec4(1.0, 2.0, 3.0, 4.0); >+ mat4 m = mat4(0.0, v2, 1.0, v3 + vec3(1), 2.0, vec4(0), f(v4)); >+ gl_Position = vec4(1.0, m); >+} >+</script> >+<script id="fsMat4VecMultiple" type="text/something-not-javascript"> >+precision mediump float; >+vec4 f(vec4 a) >+{ >+ return a; >+} >+void main() >+{ >+ vec2 v2 = vec2(1.0, 2.0); >+ vec3 v3 = vec3(1.0, 2.0, 3.0); >+ vec4 v4 = vec4(1.0, 2.0, 3.0, 4.0); >+ mat4 m = mat4(0.0, v2, 1.0, v3 + vec3(1), 2.0, vec4(0), f(v4)); >+ gl_FragColor = vec4(m); >+} >+</script> >+ >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+var tests = []; >+ >+tests.push({ >+ vShaderSource: wtu.getScript("vsVec4Mat2Add"), >+ vShaderSuccess: true, >+ fShaderSource: wtu.getScript("fsVec4Mat3Add"), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "vec(mat +/- mat) works ok", >+}); >+tests.push({ >+ vShaderSource: wtu.getScript("vsMat2Vec4Sub"), >+ vShaderSuccess: true, >+ fShaderSource: wtu.getScript("fsMat3Vec4AddSub"), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "mat(vec +/- vec) works ok", >+}); >+tests.push({ >+ vShaderSource: wtu.getScript("vsVec4Mat2Func"), >+ vShaderSuccess: true, >+ fShaderSource: wtu.getScript("fsVec4Mat3Func"), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "vec(func(mat)) works ok", >+}); >+tests.push({ >+ vShaderSource: wtu.getScript("vsMat2Vec4Func"), >+ vShaderSuccess: true, >+ fShaderSource: wtu.getScript("fsMat3Vec4Func"), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "mat(func(vec)) works ok", >+}); >+tests.push({ >+ vShaderSource: wtu.getScript("vsMat4VecMultiple"), >+ vShaderSuccess: true, >+ fShaderSource: wtu.getScript("fsMat4VecMultiple"), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "mat4(float, vec2, float, vec3+vec3, float, vec4, f(vec4)) works ok", >+}); >+ >+GLSLConformanceTester.runTests(tests); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec-mat-index.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec-mat-index.html >new file mode 100644 >index 00000000000..6aa826d5840 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec-mat-index.html >@@ -0,0 +1,75 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// A matrix constructor with two writes and reads to the same variable inside it in different parameters must succeed "mat2(index++, vec4(index++))" >+// ESSL 1.00 spec section 5.4 Constructors: "Arguments are evaluated from left to right." >+precision mediump float; >+bool equal(mat2 m1, mat2 m2) >+{ >+ float EPSILON = 0.00001; >+ for (int i = 0; i < 2; i++) { >+ for (int j = 0; j < 2; j++) { >+ if (abs(m1[i][j] - m2[i][j]) > EPSILON) >+ return false; >+ } >+ } >+ return true; >+} >+void main() >+{ >+ int i = 0; >+ mat2 m = mat2(i++, vec4(i++)); >+ if (equal(m, mat2(0, 1, 1, 1))) >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); >+ else >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+} >+</script> >+ >+<script> >+"use strict"; >+GLSLConformanceTester.runRenderTest(); >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec2.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec2.html >new file mode 100644 >index 00000000000..92429e7a8a4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec2.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<script src="../../../js/glsl-constructor-tests-generator.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+var targetType = "vec2"; >+description("Test " + targetType + " constructor expressions."); >+ >+var testSet = GLSLConstructorTestsGenerator.getDefaultTestSet(targetType); >+ >+// Generate tests >+var testCases = GLSLConstructorTestsGenerator.getConstructorTests(targetType, testSet); >+ >+// Run the tests >+GLSLConformanceTester.runTests(testCases); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec3.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec3.html >new file mode 100644 >index 00000000000..7dc9d431abf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec3.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<script src="../../../js/glsl-constructor-tests-generator.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+var targetType = "vec3"; >+description("Test " + targetType + " constructor expressions."); >+ >+var testSet = GLSLConstructorTestsGenerator.getDefaultTestSet(targetType); >+ >+// Generate tests >+var testCases = GLSLConstructorTestsGenerator.getConstructorTests(targetType, testSet); >+ >+// Run the tests >+GLSLConformanceTester.runTests(testCases); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec4.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec4.html >new file mode 100644 >index 00000000000..c0218b5105e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec4.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<script src="../../../js/glsl-constructor-tests-generator.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+var targetType = "vec4"; >+description("Test " + targetType + " constructor expressions."); >+ >+var testSet = GLSLConstructorTestsGenerator.getDefaultTestSet(targetType); >+ >+// Generate tests >+var testCases = GLSLConstructorTestsGenerator.getConstructorTests(targetType, testSet); >+ >+// Run the tests >+GLSLConformanceTester.runTests(testCases); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/00_test_list.txt >new file mode 100644 >index 00000000000..dd06ea05206 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/00_test_list.txt >@@ -0,0 +1,36 @@ >+glsl-function.html >+glsl-function-abs.html >+glsl-function-acos.html >+glsl-function-asin.html >+glsl-function-atan.html >+glsl-function-atan-xy.html >+glsl-function-ceil.html >+glsl-function-clamp-float.html >+glsl-function-clamp-gentype.html >+glsl-function-cos.html >+glsl-function-cross.html >+glsl-function-distance.html >+glsl-function-dot.html >+glsl-function-faceforward.html >+glsl-function-floor.html >+glsl-function-fract.html >+glsl-function-length.html >+#glsl-function-lessThan.html >+glsl-function-max-float.html >+glsl-function-max-gentype.html >+glsl-function-min-float.html >+glsl-function-min-gentype.html >+glsl-function-mix-float.html >+glsl-function-mix-gentype.html >+glsl-function-mod-float.html >+glsl-function-mod-gentype.html >+glsl-function-normalize.html >+glsl-function-reflect.html >+#glsl-function-refract.html >+glsl-function-sign.html >+glsl-function-sin.html >+glsl-function-step-float.html >+glsl-function-step-gentype.html >+glsl-function-smoothstep-float.html >+glsl-function-smoothstep-gentype.html >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-abs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-abs.html >new file mode 100644 >index 00000000000..330a5e2580c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-abs.html >@@ -0,0 +1,66 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL abs function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "abs", >+ testFunc: "$(func)($(arg0))", >+ emuFunc: ["float $(func)_base(float value) {", >+ " return value >= 0.0 ? value : -value;", >+ "}"].join("\n"), >+ gridRes: 4, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)($(input).x * 2.0 - 1.0),", >+ " 0.5,", >+ " 0,", >+ " 1);"].join("\n"), >+ "$(output) = vec4(0, $(func)($(input).xy * 2.0 - vec2(1, 1)), 1);", >+ "$(output) = vec4($(func)($(input).xyz * 2.0 - vec3(1, 1, 1)), 1);", >+ "$(output) = $(func)($(input) * 2.0 - vec4(1, 1, 1, 1));" >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-acos.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-acos.html >new file mode 100644 >index 00000000000..53f01818096 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-acos.html >@@ -0,0 +1,116 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL acos function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+ >+var piConstants = [ >+ "const float kPI = 3.14159265358979323846;", >+ "const float kHalfPI = (kPI * 0.5);", >+ "const float k2PI = (kPI * 2.0);" >+].join("\n"); >+ >+var kPI = Math.PI; >+var kHalfPI = Math.PI * 0.5; >+var k2PI = Math.PI * 2.0; >+var acos = Math.acos; // shorthand >+ >+GLSLGenerator.runReferenceImageTest({ >+ feature: "acos", >+ args: "$(type) value", >+ testFunc: "$(func)($(type))", >+ gridRes: 8, >+ tolerance: 2, >+ extra: piConstants, >+ tests: [ >+ { >+ source: ["$(output) = vec4(", >+ " $(func)($(input).x * 0.8) / kPI,", >+ " $(func)($(input).y * 0.8) / kPI,", >+ " 0,", >+ " 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ acos(x * 0.8) / kPI, >+ acos(y * 0.8) / kPI, >+ 0, >+ 1 ]; >+ }, >+ }, >+ { >+ source: ["$(output) = vec4(", >+ " $(func)($(input).xy * 0.8) / kPI,", >+ " 0, 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ acos(x * 0.8) / kPI, >+ acos(y * 0.8) / kPI, >+ 0, >+ 1 ]; >+ }, >+ }, >+ { >+ source: ["$(output) = vec4(", >+ " $(func)($(input).xyz * 0.8) / kPI,", >+ " 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ acos(x * 0.8) / kPI, >+ acos(y * 0.8) / kPI, >+ acos(z * 0.8) / kPI, >+ 1 ]; >+ }, >+ }, >+ { >+ source: ["$(output) = ", >+ " $(func)($(input) * 0.8) / kPI;", >+ ].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ acos(x * 0.8) / kPI, >+ acos(y * 0.8) / kPI, >+ acos(z * 0.8) / kPI, >+ acos(w * 0.8) / kPI ]; >+ }, >+ }, >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-asin.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-asin.html >new file mode 100644 >index 00000000000..832fb4725e0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-asin.html >@@ -0,0 +1,116 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL asin function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+ >+var piConstants = [ >+ "const float kPI = 3.14159265358979323846;", >+ "const float kHalfPI = (kPI * 0.5);", >+ "const float k2PI = (kPI * 2.0);" >+].join("\n"); >+ >+var kPI = Math.PI; >+var kHalfPI = Math.PI * 0.5; >+var k2PI = Math.PI * 2.0; >+var asin = Math.asin; // shorthand >+ >+GLSLGenerator.runReferenceImageTest({ >+ feature: "asin", >+ args: "$(type) value", >+ testFunc: "$(func)($(type))", >+ gridRes: 8, >+ tolerance: 2, >+ extra: piConstants, >+ tests: [ >+ { >+ source: ["$(output) = vec4(", >+ " $(func)($(input).x * 0.8) / kPI + 0.5,", >+ " $(func)($(input).y * 0.8) / kPI + 0.5,", >+ " 0,", >+ " 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ asin(x * 0.8) / kPI + 0.5, >+ asin(y * 0.8) / kPI + 0.5, >+ 0, >+ 1 ]; >+ }, >+ }, >+ { >+ source: ["$(output) = vec4(", >+ " $(func)($(input).xy * 0.8) / kPI + 0.5,", >+ " 0, 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ asin(x * 0.8) / kPI + 0.5, >+ asin(y * 0.8) / kPI + 0.5, >+ 0, >+ 1 ]; >+ }, >+ }, >+ { >+ source: ["$(output) = vec4(", >+ " $(func)($(input).xyz * 0.8) / kPI + 0.5,", >+ " 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ asin(x * 0.8) / kPI + 0.5, >+ asin(y * 0.8) / kPI + 0.5, >+ asin(z * 0.8) / kPI + 0.5, >+ 1 ]; >+ }, >+ }, >+ { >+ source: ["$(output) = ", >+ " $(func)($(input) * 0.8) / kPI + 0.5;", >+ ].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ asin(x * 0.8) / kPI + 0.5, >+ asin(y * 0.8) / kPI + 0.5, >+ asin(z * 0.8) / kPI + 0.5, >+ asin(w * 0.8) / kPI + 0.5 ]; >+ }, >+ }, >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan-xy.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan-xy.html >new file mode 100644 >index 00000000000..a9c7923567d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan-xy.html >@@ -0,0 +1,119 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL atan-xy function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+ >+var piConstants = [ >+ "const float kPI = 3.14159265358979323846;", >+ "const float kHalfPI = (kPI * 0.5);", >+ "const float k2PI = (kPI * 2.0);" >+].join("\n"); >+ >+var kPI = Math.PI; >+var kHalfPI = Math.PI * 0.5; >+var k2PI = Math.PI * 2.0; >+var atan2 = Math.atan2; // shorthand >+ >+GLSLGenerator.runReferenceImageTest({ >+ feature: "atan", >+ args: "$(type) y, $(type) x", >+ testFunc: "$(func)($(type), $(type))", >+ gridRes: 8, >+ tolerance: 5, >+ extra: piConstants, >+ tests: [ >+ { >+ source: ["$(output) = vec4(", >+ " $(func)($(input).x + 0.1, $(input).y) / k2PI + 0.5,", >+ " 0,", >+ " 0,", >+ " 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ atan2(x + 0.1, y) / k2PI + 0.5, >+ 0, >+ 0, >+ 1 ]; >+ }, >+ }, >+ { >+ source: ["$(output) = vec4(", >+ " $(func)($(input).xy + vec2(0.1, 0.1), $(input).yx) / ", >+ " k2PI + vec2(0.5, 0.5),", >+ " 0, 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ atan2(x + 0.1, y) / k2PI + 0.5, >+ atan2(y + 0.1, x) / k2PI + 0.5, >+ 0, >+ 1 ]; >+ }, >+ }, >+ { >+ source: ["$(output) = vec4(", >+ " $(func)($(input).xyz + vec3(0.1, 0.1, 0.1), $(input).yzx) / ", >+ " k2PI + vec3(0.5, 0.5, 0.5),", >+ " 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ atan2(x + 0.1, y) / k2PI + 0.5, >+ atan2(y + 0.1, z) / k2PI + 0.5, >+ atan2(z + 0.1, x) / k2PI + 0.5, >+ 1 ]; >+ }, >+ }, >+ { >+ source: ["$(output) = ", >+ " $(func)($(input) + vec4(0.1, 0.1, 0.1, 0.1), $(input).wzyx) / ", >+ " k2PI + vec4(0.5, 0.5, 0.5, 0.5);", >+ ].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ atan2(x + 0.1, w) / k2PI + 0.5, >+ atan2(y + 0.1, z) / k2PI + 0.5, >+ atan2(z + 0.1, y) / k2PI + 0.5, >+ atan2(w + 0.1, x) / k2PI + 0.5 ]; >+ }, >+ }, >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan.html >new file mode 100644 >index 00000000000..39cc4bab241 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-atan.html >@@ -0,0 +1,116 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL atan function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+ >+var piConstants = [ >+ "const float kPI = 3.14159265358979323846;", >+ "const float kHalfPI = (kPI * 0.5);", >+ "const float k2PI = (kPI * 2.0);" >+].join("\n"); >+ >+var kPI = Math.PI; >+var kHalfPI = Math.PI * 0.5; >+var k2PI = Math.PI * 2.0; >+var atan = Math.atan; // shorthand >+ >+GLSLGenerator.runReferenceImageTest({ >+ feature: "atan", >+ args: "$(type) value", >+ testFunc: "$(func)($(type))", >+ gridRes: 8, >+ tolerance: 4, >+ extra: piConstants, >+ tests: [ >+ { >+ source: ["$(output) = vec4(", >+ " $(func)($(input).x * 8.0 - 4.0) / k2PI + 0.5,", >+ " 0.5,", >+ " 0,", >+ " 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ atan(x * 8.0 - 4.0) / k2PI + 0.5, >+ 0.5, >+ 0, >+ 1 ]; >+ }, >+ }, >+ { >+ source: ["$(output) = vec4(", >+ " $(func)($(input).xy * 8.0 - vec2(4, 4)) / k2PI + vec2(0.5, 0.5),", >+ " 0, 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ atan(x * 8.0 - 4) / k2PI + 0.5, >+ atan(y * 8.0 - 4) / k2PI + 0.5, >+ 0, >+ 1 ]; >+ }, >+ }, >+ { >+ source: ["$(output) = vec4(", >+ " $(func)($(input).xyz * 8.0 - vec3(4, 4, 4)) / k2PI + vec3(0.5, 0.5, 0.5),", >+ " 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ atan(x * 8.0 - 4) / k2PI + 0.5, >+ atan(y * 8.0 - 4) / k2PI + 0.5, >+ atan(z * 8.0 - 4) / k2PI + 0.5, >+ 1 ]; >+ }, >+ }, >+ { >+ source: ["$(output) = ", >+ " $(func)($(input) * 8.0 - vec4(4, 4, 4, 4)) / k2PI + vec4(0.5, 0.5, 0.5, 0.5);", >+ ].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ atan(x * 8.0 - 4) / k2PI + 0.5, >+ atan(y * 8.0 - 4) / k2PI + 0.5, >+ atan(z * 8.0 - 4) / k2PI + 0.5, >+ atan(w * 8.0 - 4) / k2PI + 0.5 ]; >+ }, >+ }, >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-ceil.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-ceil.html >new file mode 100644 >index 00000000000..203bb3ff965 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-ceil.html >@@ -0,0 +1,74 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL ceil function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "ceil", >+ testFunc: "$(func)($(arg0))", >+ emuFunc: ["float $(func)_base(float value) {", >+ " float m = mod(value, 1.0);", >+ " return m != 0.0 ? (value + 1.0 - m) : value;", >+ "}"].join("\n"), >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)($(input).x * 8.0 - 4.0) / 8.0 + 0.5,", >+ " $(func)($(input).y * 8.0 - 4.0) / 8.0 + 0.5,", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xy * 8.0 - vec2(4, 4)) / 8.0 + vec2(0.5, 0.5),", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xyz * 8.0 - vec3(4, 4, 4)) / 8.0 + ", >+ " vec3(0.5, 0.5, 0.5),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)($(input) * 8.0 - vec4(4, 4, 4, 4)) / 8.0 + ", >+ " vec4(0.5, 0.5, 0.5, 0.5);"].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-float.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-float.html >new file mode 100644 >index 00000000000..aa38bc337f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-float.html >@@ -0,0 +1,77 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL clamp-gentype function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "clamp", >+ args: "$(type) value, float minValue, float maxValue", >+ baseArgs: "value$(field), minValue, maxValue", >+ testFunc: "$(func)($(type), float, float)", >+ emuFunc: ["float $(func)_base(float value, float minValue, float maxValue) {", >+ " return min(max(value, minValue), maxValue);", >+ "}"].join("\n"), >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)($(input).x * 6.0 - 3.0, -1.5, 1.5) / 3.0 + 0.5,", >+ " $(func)($(input).y * 10.0 - 5.0, -2.5, 2.5) / 5.0 + 0.5,", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xy * vec2(6, 10) - vec2(3, 5), -1.5, 2.0) / ", >+ " vec2(3.0, 5.0) + vec2(0.5, 0.5),", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xyz * vec3(6, 10, 8) - vec3(3, 5, 4), -1.5, 2.0) / ", >+ " vec3(3, 5, 4) + vec3(0.5, 0.5, 0.5),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)($(input) * vec4(6, 10, 8, 4) - vec4(3, 5, 4, 2),", >+ " -1.5, 2.2) / vec4(3, 5, 4, 2) + ", >+ " vec4(0.5, 0.5, 0.5, 0.5);"].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-gentype.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-gentype.html >new file mode 100644 >index 00000000000..9992bd63b48 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-clamp-gentype.html >@@ -0,0 +1,80 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL clamp-gentype function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "clamp", >+ args: "$(type) value, $(type) minValue, $(type) maxValue", >+ baseArgs: "value$(field), minValue$(field), maxValue$(field)", >+ testFunc: "$(func)($(type), $(type), $(type))", >+ emuFunc: ["float $(func)_base(float value, float minValue, float maxValue) {", >+ " return min(max(value, minValue), maxValue);", >+ "}"].join("\n"), >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)($(input).x * 6.0 - 3.0, -1.5, 1.5) / 3.0 + 0.5,", >+ " $(func)($(input).y * 10.0 - 5.0, -2.5, 2.5) / 5.0 + 0.5,", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xy * vec2(6, 10) - vec2(3, 5), ", >+ " vec2(-1.5, -2.5), vec2(1.5, 2.5)) / ", >+ " vec2(3.0, 5.0) + vec2(0.5, 0.5),", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xyz * vec3(6, 10, 8) - vec3(3, 5, 4), ", >+ " vec3(-1.5, -2.5, -2), vec3(1.5, 2.5, 2)) / vec3(3, 5, 4) + ", >+ " vec3(0.5, 0.5, 0.5),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)($(input) * vec4(6, 10, 8, 4) - vec4(3, 5, 4, 2),", >+ " vec4(-1.5, -2.5, -2, -1), vec4(1.5, 2.5, 2, 1)) / ", >+ " vec4(3, 5, 4, 2) + ", >+ " vec4(0.5, 0.5, 0.5, 0.5);"].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-cos.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-cos.html >new file mode 100644 >index 00000000000..38077b9f9a2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-cos.html >@@ -0,0 +1,120 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL cos function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+ >+var piConstants = [ >+ "const float kPI = 3.14159265358979323846;", >+ "const float kHalfPI = (kPI * 0.5);", >+ "const float k2PI = (kPI * 2.0);" >+].join("\n"); >+ >+var kPI = Math.PI; >+var kHalfPI = Math.PI * 0.5; >+var k2PI = Math.PI * 2.0; >+var cos = Math.cos; // shorthand >+ >+GLSLGenerator.runReferenceImageTest({ >+ feature: "cos", >+ args: "$(type) value", >+ testFunc: "$(func)($(type))", >+ gridRes: 8, >+ tolerance: 3, >+ extra: piConstants, >+ tests: [ >+ { >+ source: ["$(output) = vec4(", >+ " $(func)($(input).x * kHalfPI + kHalfPI),", >+ " $(func)($(input).y * kHalfPI),", >+ " 0,", >+ " 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ cos(x * kHalfPI + kHalfPI), >+ cos(y * kHalfPI), >+ 0, >+ 1 ]; >+ }, >+ }, >+ { >+ source: ["$(output) = vec4(", >+ " $(func)($(input).xy * vec2(kPI, k2PI)) * 0.5 + vec2(0.5, 0.5),", >+ " 0, 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ cos(x * kPI) * 0.5 + 0.5, >+ cos(y * k2PI) * 0.5 + 0.5, >+ 0, >+ 1 ]; >+ }, >+ }, >+ { >+ // FIXME: for some reason, this test requires a higher tolerance when run in a vertex shader. >+ source: ["$(output) = vec4(", >+ " $(func)($(input).xyz * vec3(kPI, k2PI, 4.0)) * ", >+ " 0.5 + vec3(0.5, 0.5, 0.5),", >+ " 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ cos(x * kPI) * 0.5 + 0.5, >+ cos(y * k2PI) * 0.5 + 0.5, >+ cos(z * 4.0) * 0.5 + 0.5, >+ 1 ]; >+ }, >+ tolerance: 7, >+ }, >+ { >+ source: ["$(output) = ", >+ " $(func)($(input) * vec4(k2PI, 4.0, kHalfPI, kPI)) *", >+ " 0.5 + vec4(0.5, 0.5, 0.5, 1);", >+ ].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ cos(x * k2PI) * 0.5 + 0.5, >+ cos(y * 4.0) * 0.5 + 0.5, >+ cos(z * kHalfPI) * 0.5 + 0.5, >+ cos(w * kPI) * 0.5 + 1.0 ]; >+ }, >+ }, >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-cross.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-cross.html >new file mode 100644 >index 00000000000..492b1578531 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-cross.html >@@ -0,0 +1,74 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL cross function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+ >+GLSLGenerator.runFeatureTest({ >+ feature: "cross", >+ args: "$(type) x, $(type) y", >+ baseArgs: "value$(field)", >+ testFunc: "$(func)($(type),$(type))", >+ emuFuncs: [ >+ { type: "vec3", >+ code: [ >+ "vec3 $(func)_emu($(args)) {", >+ " return vec3(", >+ " x[1] * y[2] - y[1] * x[2],", >+ " x[2] * y[0] - y[2] * x[0],", >+ " x[0] * y[1] - y[0] * x[1]);", >+ "}"].join("\n") >+ }, >+ ], >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)(", >+ " normalize($(input).xyz - 0.5),", >+ " normalize($(input).yzw - 0.5)) * 0.5 + 0.5,", >+ " 1);"].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-distance.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-distance.html >new file mode 100644 >index 00000000000..76f8dd2994d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-distance.html >@@ -0,0 +1,109 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL distance function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+ >+GLSLGenerator.runFeatureTest({ >+ feature: "distance", >+ args: "$(type) p1, $(type) p2", >+ baseArgs: "value$(field)", >+ testFunc: "$(func)($(type),$(type))", >+ emuFuncs: [ >+ { type: "float", >+ code: [ >+ "float $(func)_emu($(args)) {", >+ " return abs(p1 - p2);", >+ "}"].join("\n") >+ }, >+ { type: "vec2", >+ code: [ >+ "float $(func)_emu($(args)) {", >+ " return length(p1 - p2);", >+ "}"].join("\n") >+ }, >+ { type: "vec3", >+ code: [ >+ "float $(func)_emu($(args)) {", >+ " return length(p1 - p2);", >+ "}"].join("\n") >+ }, >+ { type: "vec4", >+ code: [ >+ "float $(func)_emu($(args)) {", >+ " return length(p1 - p2);", >+ "}"].join("\n") >+ } >+ ], >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)(", >+ " $(input).x * 8.0 - 4.0,", >+ " $(input).y * 8.0 - 4.0) / 8.0,", >+ " 0,", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " 0,", >+ " $(func)(", >+ " $(input).xy * 8.0 - 4.0,", >+ " $(input).wz * 8.0 - 4.0) / 8.0,", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " 0, 0,", >+ " $(func)(", >+ " $(input).xyz * 8.0 - 4.0,", >+ " $(input).yzw * 8.0 - 4.0) / 8.0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(", >+ " vec4($(input).xyz, 0) * 8.0 - 4.0,", >+ " vec4(0, $(input).wzy) * 8.0 - 4.0) / 8.0,", >+ " 0, 0, 1);", >+ ].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-dot.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-dot.html >new file mode 100644 >index 00000000000..993a0339b9d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-dot.html >@@ -0,0 +1,111 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL dot function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+ >+GLSLGenerator.runFeatureTest({ >+ feature: "dot", >+ args: "$(type) p1, $(type) p2", >+ baseArgs: "value$(field)", >+ testFunc: "$(func)($(type),$(type))", >+ fragmentTolerance: 1, >+ emuFuncs: [ >+ { type: "float", >+ code: [ >+ "float $(func)_emu($(args)) {", >+ " return p1 * p2;", >+ "}"].join("\n") >+ }, >+ { type: "vec2", >+ code: [ >+ "float $(func)_emu($(args)) {", >+ " return p1.x * p2.x + p1.y * p2.y;", >+ "}"].join("\n") >+ }, >+ { type: "vec3", >+ code: [ >+ "float $(func)_emu($(args)) {", >+ " return p1.x * p2.x + p1.y * p2.y + p1.z * p2.z;", >+ "}"].join("\n") >+ }, >+ { type: "vec4", >+ code: [ >+ "float $(func)_emu($(args)) {", >+ " return p1.x * p2.x + p1.y * p2.y + p1.z * p2.z + p1.w * p2.w;", >+ "}"].join("\n") >+ } >+ ], >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)(", >+ " $(input).x * 8.0 - 4.0,", >+ " $(input).y * 8.0 - 4.0) / 8.0,", >+ " 0,", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " 0,", >+ " $(func)(", >+ " $(input).xy * 8.0 - 4.0,", >+ " $(input).wz * 8.0 - 4.0) / 8.0,", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " 0, 0,", >+ " $(func)(", >+ " $(input).xyz * 8.0 - 4.0,", >+ " $(input).yzw * 8.0 - 4.0) / 8.0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(", >+ " vec4($(input).xyz, 0) * 8.0 - 4.0,", >+ " vec4(0, $(input).wzy) * 8.0 - 4.0) / 8.0,", >+ " 0, 0, 1);", >+ ].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-faceforward.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-faceforward.html >new file mode 100644 >index 00000000000..d91f52540eb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-faceforward.html >@@ -0,0 +1,87 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL faceforward function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+ >+GLSLGenerator.runFeatureTest({ >+ feature: "faceforward", >+ args: "$(type) N, $(type) I, $(type) Nref", >+ baseArgs: "value$(field)", >+ testFunc: "$(func)($(type),$(type),$(type))", >+ simpleEmu: [ >+ "$(type) $(func)_emu($(args)) {", >+ " return dot(Nref, I) < 0.0 ? N : -N;", >+ "}"].join("\n"), >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)(", >+ " $(input).x * 2.0 - 1.0,", >+ " $(input).y * 2.0 - 1.0,", >+ " $(input).z * 2.0 - 1.0),", >+ " 0,", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(", >+ " $(input).xy * 2.0 - 1.0,", >+ " $(input).yz * 2.0 - 1.0,", >+ " $(input).zw * 2.0 - 1.0),", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(", >+ " $(input).xyz * 2.0 - 1.0,", >+ " $(input).yzw * 2.0 - 1.0,", >+ " $(input).zwx * 2.0 - 1.0),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)(", >+ " $(input).xyzw * 2.0 - 1.0,", >+ " $(input).yzwx * 2.0 - 1.0,", >+ " $(input).zwxy * 2.0 - 1.0);" >+ ].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-floor.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-floor.html >new file mode 100644 >index 00000000000..bb470ec865e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-floor.html >@@ -0,0 +1,73 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL floor function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "floor", >+ testFunc: "$(func)($(arg0))", >+ emuFunc: ["float $(func)_base(float value) {", >+ " return value - mod(value, 1.0);", >+ "}"].join("\n"), >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)($(input).x * 8.0 - 4.0) / 8.0 + 0.5,", >+ " $(func)($(input).y * 8.0 - 4.0) / 8.0 + 0.5,", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xy * 8.0 - vec2(4, 4)) / 8.0 + vec2(0.5, 0.5),", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xyz * 8.0 - vec3(4, 4, 4)) / 8.0 + ", >+ " vec3(0.5, 0.5, 0.5),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)($(input) * 8.0 - vec4(4, 4, 4, 4)) / 8.0 + ", >+ " vec4(0.5, 0.5, 0.5, 0.5);"].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-fract.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-fract.html >new file mode 100644 >index 00000000000..5f8960999fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-fract.html >@@ -0,0 +1,71 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL fract function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "fract", >+ testFunc: "$(func)($(arg0))", >+ emuFunc: ["float $(func)_base(float value) {", >+ " return value - floor(value);", >+ "}"].join("\n"), >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)($(input).x * 4.0 - 2.0),", >+ " $(func)($(input).y * 4.0 - 2.0),", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xy * 4.0 - vec2(2, 2)),", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xyz * 4.0 - vec3(2, 2, 2)),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)($(input) * 4.0 - vec4(2, 2, 2, 2));"].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-length.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-length.html >new file mode 100644 >index 00000000000..d2e7e910878 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-length.html >@@ -0,0 +1,108 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL length function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+ >+GLSLGenerator.runFeatureTest({ >+ feature: "length", >+ args: "$(type) value", >+ baseArgs: "value$(field)", >+ testFunc: "$(func)($(type))", >+ fragmentTolerance: 1, >+ emuFuncs: [ >+ { type: "float", >+ code: [ >+ "float $(func)_emu($(args)) {", >+ " return abs($(baseArgs));", >+ "}"].join("\n") >+ }, >+ { type: "vec2", >+ code: [ >+ "float $(func)_emu($(args)) {", >+ " return sqrt(", >+ " $(baseArgsX) * $(baseArgsX) + ", >+ " $(baseArgsY) * $(baseArgsY));", >+ "}"].join("\n") >+ }, >+ { type: "vec3", >+ code: [ >+ "float $(func)_emu($(args)) {", >+ " return sqrt(", >+ " $(baseArgsX) * $(baseArgsX) + ", >+ " $(baseArgsY) * $(baseArgsY) + ", >+ " $(baseArgsZ) * $(baseArgsZ));", >+ "}"].join("\n") >+ }, >+ { type: "vec4", >+ code: [ >+ "float $(func)_emu($(args)) {", >+ " return sqrt(", >+ " $(baseArgsX) * $(baseArgsX) + ", >+ " $(baseArgsY) * $(baseArgsY) + ", >+ " $(baseArgsZ) * $(baseArgsZ) + ", >+ " $(baseArgsW) * $(baseArgsW));", >+ "}"].join("\n") >+ } >+ ], >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)($(input).x * 8.0 - 4.0) / 4.0,", >+ " $(func)($(input).y * 8.0 - 4.0) / 4.0,", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xy * 8.0 - 4.0) / 4.0,", >+ " 0, 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xyz * 8.0 - 4.0) / 4.0,", >+ " 0, 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input) * 8.0 - 4.0) / 4.0, 0, 0, 1);", >+ ].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-lessThan.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-lessThan.html >new file mode 100644 >index 00000000000..647fce0b292 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-lessThan.html >@@ -0,0 +1,73 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL lessThan function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "lessThan", >+ args: "$(type) x, $(type) y", >+ bvecTest: true, >+ baseArgs: "x, y", >+ testFunc: "$(func)($(type), $(type))", >+ emuFunc: ["bool $(func) _base(float x, float y) {", >+ " return x < y;", >+ "}"].join("\n"), >+ gridRes: 8, >+ tests: [ >+ ["bvec2 r = bvec2($(func)($(input).xy, $(input).yw));", >+ "$(output) = vec4(", >+ " r.x ? 0.2: 0.8,", >+ " r.y ? 0.2: 0.8,", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xyz * 8.0 - vec3(4, 4, 4)) / 8.0 + ", >+ " vec3(0.5, 0.5, 0.5),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)($(input) * 8.0 - vec4(4, 4, 4, 4)) / 8.0 + ", >+ " vec4(0.5, 0.5, 0.5, 0.5);"].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-float.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-float.html >new file mode 100644 >index 00000000000..2c99677a747 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-float.html >@@ -0,0 +1,73 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL max-float function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "max", >+ args: "$(type) value, float maxValue", >+ baseArgs: "value$(field), maxValue", >+ testFunc: "$(func)($(arg0), float)", >+ emuFunc: ["float $(func)_base(float value, float maxValue) {", >+ " return value > maxValue ? value : maxValue;", >+ "}"].join("\n"), >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)($(input).x, 0.5),", >+ " $(func)($(input).y, 0.5),", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xy, 0.5),", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xyz, 0.5),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)($(input), 0.5);"].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-gentype.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-gentype.html >new file mode 100644 >index 00000000000..5fcb9b7c398 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-max-gentype.html >@@ -0,0 +1,73 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL max-gentype function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "max", >+ args: "$(type) value, $(type) maxValue", >+ baseArgs: "value$(field), maxValue$(field)", >+ testFunc: "$(func)($(type), $(type))", >+ emuFunc: ["float $(func)_base(float value, float maxValue) {", >+ " return value > maxValue ? value : maxValue;", >+ "}"].join("\n"), >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)($(input).x, 0.5),", >+ " $(func)($(input).y, 0.5),", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xy, vec2(0.5, 0.5)),", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xyz, vec3(0.5, 0.5, 0.5)),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)($(input), vec4(0.5, 0.5, 0.5, 0.5));"].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-float.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-float.html >new file mode 100644 >index 00000000000..1fac0d758ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-float.html >@@ -0,0 +1,73 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL min-float function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "min", >+ args: "$(type) value, float divisor", >+ baseArgs: "value$(field), divisor", >+ testFunc: "$(func)($(arg0), float)", >+ emuFunc: ["float $(func)_base(float value, float divisor) {", >+ " return value < divisor ? value : divisor;", >+ "}"].join("\n"), >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)($(input).x, 0.5),", >+ " $(func)($(input).y, 0.5),", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xy, 0.5),", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xyz, 0.5),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)($(input), 0.5);"].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-gentype.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-gentype.html >new file mode 100644 >index 00000000000..2f2b65382fb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-min-gentype.html >@@ -0,0 +1,73 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL min-gentype function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "min", >+ args: "$(type) value, $(type) minValue", >+ baseArgs: "value$(field), minValue$(field)", >+ testFunc: "$(func)($(type), $(type))", >+ emuFunc: ["float $(func)_base(float value, float minValue) {", >+ " return value < minValue ? value : minValue;", >+ "}"].join("\n"), >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)($(input).x, 0.5),", >+ " $(func)($(input).y, 0.5),", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xy, vec2(0.5, 0.5)),", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xyz, vec3(0.5, 0.5, 0.5)),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)($(input), vec4(0.5, 0.5, 0.5, 0.5));"].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-float.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-float.html >new file mode 100644 >index 00000000000..d514b8a1b0e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-float.html >@@ -0,0 +1,75 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL mix-float function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "mix", >+ args: "$(type) startValue, $(type) endValue, float mixValue", >+ baseArgs: "startValue$(field), endValue$(field), mixValue", >+ testFunc: "$(func)($(type), $(type), float)", >+ emuFunc: [ >+ "float $(func)_base(float startValue, float endValue, float mixValue) {", >+ " return startValue * (1.0 - mixValue) + endValue * mixValue;", >+ "}"].join("\n"), >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)(1.0, 0.0, $(input).x),", >+ " ($(func)(-2.0, 3.0, $(input).y) + 2.0) / 5.0,", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(vec2(1, -2), vec2(0, 2), $(input).z), ", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(vec3(1, -2, -1), vec3(0, 2, 3), $(input).y),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)(vec4(1, -2, -1, 0.5), vec4(0, 2, 3, 1), $(input).w);" >+ ].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-gentype.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-gentype.html >new file mode 100644 >index 00000000000..18b1ef92561 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mix-gentype.html >@@ -0,0 +1,75 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL mix-gentype function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "mix", >+ args: "$(type) startValue, $(type) endValue, $(type) mixValue", >+ baseArgs: "startValue$(field), endValue$(field), mixValue$(field)", >+ testFunc: "$(func)($(type), $(type), $(type))", >+ emuFunc: [ >+ "float $(func)_base(float startValue, float endValue, float mixValue) {", >+ " return startValue * (1.0 - mixValue) + endValue * mixValue;", >+ "}"].join("\n"), >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)(1.0, 0.0, $(input).x),", >+ " ($(func)(-2.0, 3.0, $(input).y) + 2.0) / 5.0,", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(vec2(1, -2), vec2(0, 2), $(input).xy), ", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(vec3(1, -2, -1), vec3(0, 2, 3), $(input).xyz),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)(vec4(1, -2, -1, 0.5), vec4(0, 2, 3, 1), $(input));" >+ ].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-float.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-float.html >new file mode 100644 >index 00000000000..fb822c315c8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-float.html >@@ -0,0 +1,74 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL mod-float function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "mod", >+ args: "$(type) value, float divisor", >+ baseArgs: "value$(field), divisor", >+ testFunc: "$(func)($(arg0), float)", >+ fragmentTolerance: 1, >+ emuFunc: ["float $(func)_base(float value, float divisor) {", >+ " return value - divisor * floor(value / divisor);", >+ "}"].join("\n"), >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)($(input).x * 6.0 - 3.0, 1.5) / 1.5,", >+ " $(func)($(input).y * 6.0 - 3.0, 1.5) / 1.5,", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xy * 6.0 - vec2(3, 3), 1.5) / 1.5,", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xyz * 6.0 - vec3(3, 3, 3), 1.5) / 1.5,", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)($(input) * 6.0 - vec4(3, 3, 3, 3), 1.5) / 1.5;"].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-gentype.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-gentype.html >new file mode 100644 >index 00000000000..58726401367 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-mod-gentype.html >@@ -0,0 +1,77 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL mod-gentype function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "mod", >+ args: "$(type) value, $(type) divisor", >+ baseArgs: "value$(field), divisor$(field)", >+ testFunc: "$(func)($(type), $(type))", >+ emuFunc: ["float $(func)_base(float value, float divisor) {", >+ " return value - divisor * floor(value / divisor);", >+ "}"].join("\n"), >+ gridRes: 8, >+ tolerance: 1, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)($(input).x * 6.0 - 3.0, 1.5) / 1.5,", >+ " $(func)($(input).y * 10.0 - 5.0, 2.1) / 2.1,", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xy * vec2(6, 10) - vec2(3, 5), ", >+ " vec2(1.5, 2.1)) / vec2(1.5, 2.1),", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xyz * vec3(6, 10, 8) - vec3(3, 5, 4), ", >+ " vec3(1.5, 2.1, 3.2)) / vec3(1.5, 2.1, 3.2),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)($(input) * vec4(6, 10, 8, 4) - vec4(3, 5, 4, 2),", >+ " vec4(1.5, 2.1, 3.2, 1.1)) / vec4(1.5, 2.1, 3.2, 1.1);"].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-normalize.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-normalize.html >new file mode 100644 >index 00000000000..c4bcdbb163f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-normalize.html >@@ -0,0 +1,80 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL normalize function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "normalize", >+ args: "$(type) value", >+ testFunc: "$(func)($(type))", >+ simpleEmu: [ >+ "$(type) $(func)_emu($(args)) {", >+ " return value / length(value);", >+ "}"].join("\n"), >+ gridRes: 8, >+ tolerance: 1, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)(", >+ " $(input).x * 8.0 - 4.1) * 0.5 + 0.5,", >+ " 0.5,", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(", >+ " $(input).xy * 8.0 - 4.1) * 0.5 + 0.5,", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(", >+ " $(input).xyz * 8.0 - 4.1) * 0.5 + 0.5,", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)(", >+ " vec4($(input).xyz, 0) * 8.0 - 4.1) * 0.5 + 0.5 + vec4(0,0,0,0.5);", >+ ].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-reflect.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-reflect.html >new file mode 100644 >index 00000000000..a4d6753e9d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-reflect.html >@@ -0,0 +1,82 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL reflect function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "reflect", >+ args: "$(type) I, $(type) N", >+ baseArgs: "value$(field)", >+ testFunc: "$(func)($(type),$(type))", >+ simpleEmu: [ >+ "$(type) $(func)_emu($(args)) {", >+ " return I - 2.0 * dot(N, I) * N;", >+ "}"].join("\n"), >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)(", >+ " $(input).x * 2.0 - 1.0,", >+ " $(input).y * 2.0 - 1.0),", >+ " 0,", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(", >+ " $(input).xy * 2.0 - 1.0,", >+ " $(input).yz * 2.0 - 1.0),", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(", >+ " $(input).xyz * 2.0 - 1.0,", >+ " $(input).yzw * 2.0 - 1.0),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)(", >+ " $(input).xyzw * 2.0 - 1.0,", >+ " $(input).yzwx * 2.0 - 1.0);" >+ ].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-refract.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-refract.html >new file mode 100644 >index 00000000000..59069595749 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-refract.html >@@ -0,0 +1,91 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL refract function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "refract", >+ args: "$(type) I, $(type) N, float eta", >+ baseArgs: "value$(field)", >+ testFunc: "$(func)($(type),$(type),float)", >+ simpleEmu: [ >+ "$(type) $(func)_emu($(args)) {", >+ " float dotNI = dot(N, I);", >+ " float k = 1.0 - eta * eta * (1.0 - dotNI * dotNI);", >+ " if (k < 0.0) {", >+ " return $(type)(0.0);", >+ " }", >+ " return eta * I - (eta * dotNI * sqrt(k)) * N;", >+ "}"].join("\n"), >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)(", >+ " $(input).x * 2.0 - 1.0,", >+ " $(input).y * 2.0 - 1.0,", >+ " $(input).w),", >+ " 0,", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(", >+ " $(input).xy * 2.0 - 1.0,", >+ " $(input).yz * 2.0 - 1.0,", >+ " $(input).w),", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(", >+ " $(input).xyz * 2.0 - 1.0,", >+ " $(input).yzw * 2.0 - 1.0,", >+ " $(input).w),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)(", >+ " $(input).xyzw * 2.0 - 1.0,", >+ " $(input).yzwx * 2.0 - 1.0,", >+ " $(input).w);" >+ ].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-sign.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-sign.html >new file mode 100644 >index 00000000000..5f6882b5051 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-sign.html >@@ -0,0 +1,73 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL sign function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "sign", >+ testFunc: "$(func)($(arg0))", >+ emuFunc: ["float $(func)_base(float value) {", >+ " if (value == 0.0) return 0.0;", >+ " return value > 0.0 ? 1.0 : -1.0;", >+ "}"].join("\n"), >+ gridRes: 4, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)($(input).x * 2.0 - 1.0) * 0.5 + 0.5,", >+ " 0.5,", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xy * 2.0 - vec2(1, 1)) * 0.5 + vec2(0.5, 0.5),", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)($(input).xyz * 2.0 - vec3(1, 1, 1)) * 0.5 + ", >+ " vec3(0.5, 0.5, 0.5),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)($(input) * 2.0 - vec4(1, 1, 1, 1)) * 0.5 + ", >+ " vec4(0.5, 0.5, 0.5, 0.5);"].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-sin.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-sin.html >new file mode 100644 >index 00000000000..edf1d87092c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-sin.html >@@ -0,0 +1,117 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL sin function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+ >+var piConstants = [ >+ "const float kPI = 3.14159265358979323846;", >+ "const float kHalfPI = (kPI * 0.5);", >+ "const float k2PI = (kPI * 2.0);" >+].join("\n"); >+ >+var kPI = Math.PI; >+var kHalfPI = Math.PI * 0.5; >+var k2PI = Math.PI * 2.0; >+var sin = Math.sin; // shorthand >+ >+GLSLGenerator.runReferenceImageTest({ >+ feature: "sin", >+ args: "$(type) value", >+ testFunc: "$(func)($(type))", >+ gridRes: 8, >+ tolerance: 4, >+ extra: piConstants, >+ tests: [ >+ { >+ source: ["$(output) = vec4(", >+ " $(func)($(input).x * kHalfPI + kHalfPI),", >+ " $(func)($(input).y * kHalfPI),", >+ " 0,", >+ " 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ sin(x * kHalfPI + kHalfPI), >+ sin(y * kHalfPI), >+ 0, >+ 1 ]; >+ }, >+ }, >+ { >+ source: ["$(output) = vec4(", >+ " $(func)($(input).xy * vec2(kPI, k2PI)) * 0.5 + vec2(0.5, 0.5),", >+ " 0, 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ sin(x * kPI) * 0.5 + 0.5, >+ sin(y * k2PI) * 0.5 + 0.5, >+ 0, >+ 1 ]; >+ }, >+ }, >+ { >+ source: ["$(output) = vec4(", >+ " $(func)($(input).xyz * vec3(kPI, k2PI, 4.0)) * ", >+ " 0.5 + vec3(0.5, 0.5, 0.5),", >+ " 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ sin(x * kPI) * 0.5 + 0.5, >+ sin(y * k2PI) * 0.5 + 0.5, >+ sin(z * 4.0) * 0.5 + 0.5, >+ 1 ]; >+ }, >+ }, >+ { >+ source: ["$(output) = ", >+ " $(func)($(input) * vec4(k2PI, 4.0, kHalfPI, kPI)) *", >+ " 0.5 + vec4(0.5, 0.5, 0.5, 1);", >+ ].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ sin(x * k2PI) * 0.5 + 0.5, >+ sin(y * 4.0) * 0.5 + 0.5, >+ sin(z * kHalfPI) * 0.5 + 0.5, >+ sin(w * kPI) * 0.5 + 1 ]; >+ }, >+ }, >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-smoothstep-float.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-smoothstep-float.html >new file mode 100644 >index 00000000000..c74371ebdb4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-smoothstep-float.html >@@ -0,0 +1,118 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL smoothstep-float function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+ >+function clamp(value, min, max) { >+ return Math.max(min, Math.min(value, max)); >+} >+ >+function smoothstep(edge0, edge1, value) { >+ var t = clamp((value - edge0) / (edge1 - edge0), 0, 1); >+ return t * t * (3 - 2 * t); >+} >+ >+GLSLGenerator.runReferenceImageTest({ >+ feature: "smoothstep", >+ args: "float edge0, float edge1, $(type) value", >+ testFunc: "$(func)(float, float, $(type))", >+ gridRes: 8, >+ tolerance: 4, >+ tests: [ >+ { >+ source: ["$(output) = vec4(", >+ " $(func)(0.3, 0.7, $(input).x),", >+ " $(func)(0.2, 0.8, $(input).y),", >+ " 0,", >+ " 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ smoothstep(0.3, 0.7, x), >+ smoothstep(0.2, 0.8, y), >+ 0, >+ 1 ]; >+ }, >+ }, >+ { >+ source: [ "$(output) = vec4(", >+ " $(func)(0.4, 0.8, $(input).xy),", >+ " 0, 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ smoothstep(0.4, 0.8, x), >+ smoothstep(0.4, 0.8, y), >+ 0, >+ 1 ]; >+ }, >+ }, >+ { >+ // FIXME: this test seems to need a higher tolerance when run in a vertex shader. >+ source: [ "$(output) = vec4(", >+ " $(func)(0.3, 0.7, $(input).xyz),", >+ " 1);"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ smoothstep(0.3, 0.7, x), >+ smoothstep(0.3, 0.7, y), >+ smoothstep(0.3, 0.7, z), >+ 1 ]; >+ }, >+ tolerance: 12, >+ fragmentTolerance: 3, >+ }, >+ { >+ // FIXME: this test seems to need a higher tolerance when run in a vertex shader. >+ source: ["$(output) = ", >+ " $(func)(0.3, 0.9, $(input));"].join("\n"), >+ generator: function(x, y, z, w) { >+ return [ smoothstep(0.3, 0.9, x), >+ smoothstep(0.3, 0.9, y), >+ smoothstep(0.3, 0.9, z), >+ smoothstep(0.3, 0.9, w) ]; >+ }, >+ tolerance: 7, >+ fragmentTolerance: 3, >+ }, >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-smoothstep-gentype.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-smoothstep-gentype.html >new file mode 100644 >index 00000000000..6c31eff3c4b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-smoothstep-gentype.html >@@ -0,0 +1,77 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL smoothstep-gentype function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+ >+GLSLGenerator.runFeatureTest({ >+ feature: "smoothstep", >+ args: "$(type) edge0, $(type) edge1, $(type) value", >+ baseArgs: "edge0$(field), edge1$(field), value$(field)", >+ testFunc: "$(func)($(type), $(type), $(type))", >+ emuFunc: ["float $(func)_base(float edge0, float edge1, float value) {", >+ " float t = clamp((value - edge0) / (edge1 - edge0), 0.0, 1.0);", >+ " return t * t * (3.0 - 2.0 * t);", >+ "}"].join("\n"), >+ gridRes: 8, >+ tolerance: 1, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)(0.3, 0.7, $(input).x),", >+ " $(func)(0.2, 0.8, $(input).y),", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(vec2(0.4, 0.6), vec2(0.8, 0.9), $(input).xy),", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(vec3(0.3, 0.5, 0.7), vec3(0.7, 0.9, 1.0), $(input).xyz),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)(vec4(0.3, 0.4, 0.5, 0.2), ", >+ " vec4(0.7, 0.6, 0.9, 0.8), ", >+ " $(input));"].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-float.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-float.html >new file mode 100644 >index 00000000000..2df9d97853a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-float.html >@@ -0,0 +1,73 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL step-float function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "step", >+ args: "float edge, $(type) value", >+ baseArgs: "edge, value$(field)", >+ testFunc: "$(func)(float, $(type))", >+ emuFunc: ["float $(func)_base(float edge, float value) {", >+ " return value < edge ? 0.0 : 1.0;", >+ "}"].join("\n"), >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)(0.3, $(input).x),", >+ " $(func)(0.7, $(input).y),", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(0.4, $(input).xy),", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(0.4, $(input).xyz),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)(0.4, $(input));"].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-gentype.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-gentype.html >new file mode 100644 >index 00000000000..1426a4a1db7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function-step-gentype.html >@@ -0,0 +1,72 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL step-gentype function test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "step", >+ args: "$(type) edge, $(type) value", >+ baseArgs: "edge$(field), value$(field)", >+ testFunc: "$(func)($(type), $(type))", >+ emuFunc: ["float $(func)_base(float edge, float value) {", >+ " return value < edge ? 0.0 : 1.0;", >+ "}"].join("\n"), >+ gridRes: 8, >+ tests: [ >+ ["$(output) = vec4(", >+ " $(func)(0.3, $(input).x),", >+ " $(func)(0.7, $(input).y),", >+ " 0,", >+ " 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(vec2(0.4, 0.6), $(input).xy),", >+ " 0, 1);"].join("\n"), >+ ["$(output) = vec4(", >+ " $(func)(vec3(0.3, 0.5, 0.7), $(input).xyz),", >+ " 1);"].join("\n"), >+ ["$(output) = ", >+ " $(func)( vec4(0.3, 0.4, 0.5, 0.2), $(input));"].join("\n") >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function.html >new file mode 100644 >index 00000000000..489c64604eb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/functions/glsl-function.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL function test test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+GLSLGenerator.runFeatureTest({ >+ feature: "the_GLSL_test_harness", >+ testFunc: "pass through", >+ emuFunc: "float $(func)_base(float value) { return 0.0; }", >+ gridRes: 4, >+ tests: [ >+ "$(output) = vec4($(input).x, 0, 0, 1);", >+ "$(output) = vec4(0, $(input).xy, 1);", >+ "$(output) = vec4($(input).xyz, 1);", >+ "$(output) = $(input);" >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/00_test_list.txt >new file mode 100644 >index 00000000000..d700b29a563 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/00_test_list.txt >@@ -0,0 +1,65 @@ >+add_int_float.vert.html >+add_int_mat2.vert.html >+add_int_mat3.vert.html >+add_int_mat4.vert.html >+add_int_vec2.vert.html >+add_int_vec3.vert.html >+add_int_vec4.vert.html >+add_ivec2_vec2.vert.html >+add_ivec3_vec3.vert.html >+add_ivec4_vec4.vert.html >+assign_int_to_float.vert.html >+assign_ivec2_to_vec2.vert.html >+assign_ivec3_to_vec3.vert.html >+assign_ivec4_to_vec4.vert.html >+construct_struct.vert.html >+divide_int_float.vert.html >+divide_int_mat2.vert.html >+divide_int_mat3.vert.html >+divide_int_mat4.vert.html >+divide_int_vec2.vert.html >+divide_int_vec3.vert.html >+divide_int_vec4.vert.html >+divide_ivec2_vec2.vert.html >+divide_ivec3_vec3.vert.html >+divide_ivec4_vec4.vert.html >+equal_int_float.vert.html >+equal_ivec2_vec2.vert.html >+equal_ivec3_vec3.vert.html >+equal_ivec4_vec4.vert.html >+function_int_float.vert.html >+function_ivec2_vec2.vert.html >+function_ivec3_vec3.vert.html >+function_ivec4_vec4.vert.html >+greater_than.vert.html >+greater_than_equal.vert.html >+less_than.vert.html >+less_than_equal.vert.html >+multiply_int_float.vert.html >+multiply_int_mat2.vert.html >+multiply_int_mat3.vert.html >+multiply_int_mat4.vert.html >+multiply_int_vec2.vert.html >+multiply_int_vec3.vert.html >+multiply_int_vec4.vert.html >+multiply_ivec2_vec2.vert.html >+multiply_ivec3_vec3.vert.html >+multiply_ivec4_vec4.vert.html >+not_equal_int_float.vert.html >+not_equal_ivec2_vec2.vert.html >+not_equal_ivec3_vec3.vert.html >+not_equal_ivec4_vec4.vert.html >+subtract_int_float.vert.html >+subtract_int_mat2.vert.html >+subtract_int_mat3.vert.html >+subtract_int_mat4.vert.html >+subtract_int_vec2.vert.html >+subtract_int_vec3.vert.html >+subtract_int_vec4.vert.html >+subtract_ivec2_vec2.vert.html >+subtract_ivec3_vec3.vert.html >+subtract_ivec4_vec4.vert.html >+ternary_int_float.vert.html >+ternary_ivec2_vec2.vert.html >+ternary_ivec3_vec3.vert.html >+ternary_ivec4_vec4.vert.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_float.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_float.vert.html >new file mode 100644 >index 00000000000..7b9beffd847 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_float.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast adding integer to float should fail >+void main() >+{ >+ float f = 1.0 + 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_mat2.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_mat2.vert.html >new file mode 100644 >index 00000000000..3c4df411f21 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_mat2.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast adding integer to mat2 should fail >+void main() >+{ >+ mat2 f = mat2(1.0) + 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_mat3.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_mat3.vert.html >new file mode 100644 >index 00000000000..080bd1d2686 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_mat3.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast adding integer to mat3 should fail >+void main() >+{ >+ mat3 f = mat3(1.0) + 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_mat4.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_mat4.vert.html >new file mode 100644 >index 00000000000..04f97cd72a0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_mat4.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast adding integer to mat4 should fail >+void main() >+{ >+ mat4 f = mat4(1.0) + 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_vec2.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_vec2.vert.html >new file mode 100644 >index 00000000000..f7d45342f78 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_vec2.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast adding integer to vec2 should fail >+void main() >+{ >+ vec2 f = vec2(1.0, 2.0) + 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_vec3.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_vec3.vert.html >new file mode 100644 >index 00000000000..c160126b47e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_vec3.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast adding integer to vec3 should fail >+void main() >+{ >+ vec3 f = vec3(1.0, 2.0, 3.0) + 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_vec4.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_vec4.vert.html >new file mode 100644 >index 00000000000..cf42cdef1b8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_int_vec4.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast adding integer to vec4 should fail >+void main() >+{ >+ vec4 f = vec4(1.0, 2.0, 3.0, 4.0) + 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_ivec2_vec2.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_ivec2_vec2.vert.html >new file mode 100644 >index 00000000000..e656a2a1a23 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_ivec2_vec2.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast adding ivec2 to vec2 should fail >+void main() >+{ >+ vec2 f = vec2(1.0, 2.0) + ivec2(1, 2); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_ivec3_vec3.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_ivec3_vec3.vert.html >new file mode 100644 >index 00000000000..c5f3206d79a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_ivec3_vec3.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast adding ivec3 to vec3 should fail >+void main() >+{ >+ vec3 f = vec3(1.0, 2.0, 3.0) + ivec3(1, 2, 3); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_ivec4_vec4.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_ivec4_vec4.vert.html >new file mode 100644 >index 00000000000..00edf89554d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/add_ivec4_vec4.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast adding ivec4 to vec4 should fail >+void main() >+{ >+ vec4 f = vec4(1.0, 2.0, 3.0, 4.0) + ivec4(1, 2, 3, 4); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/assign_int_to_float.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/assign_int_to_float.vert.html >new file mode 100644 >index 00000000000..92bd2113f7e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/assign_int_to_float.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast assing int to float should fail >+void main() >+{ >+ float f = -123; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html >new file mode 100644 >index 00000000000..7458e29801f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast assigning ivec2 to vec2 should fail >+void main() >+{ >+ vec2 f = ivec2(1, 2); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html >new file mode 100644 >index 00000000000..b2ba393acdb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast assigning ivec3 to vec3 should fail >+void main() >+{ >+ vec3 f = ivec3(1, 2, 3); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html >new file mode 100644 >index 00000000000..8e972d4ed18 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast assigning ivec4 to vec4 should fail >+void main() >+{ >+ vec4 f = ivec4(1, 2, 3, 4); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/construct_struct.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/construct_struct.vert.html >new file mode 100644 >index 00000000000..34269224128 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/construct_struct.vert.html >@@ -0,0 +1,61 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast from int to float in struct initializer should fail >+struct Foo { >+ float bar; >+}; >+ >+void main() { >+ Foo foo = Foo(1); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_float.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_float.vert.html >new file mode 100644 >index 00000000000..76db5eef740 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_float.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of float divided by int should fail >+void main() >+{ >+ float f = 1.0 / 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat2.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat2.vert.html >new file mode 100644 >index 00000000000..a58c1959ae2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat2.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of mat2 divided by int should fail >+void main() >+{ >+ mat2 f = mat2(1.0) / 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat3.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat3.vert.html >new file mode 100644 >index 00000000000..8f159b97a00 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat3.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of mat3 divided by int should fail >+void main() >+{ >+ mat3 f = mat3(1.0) / 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat4.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat4.vert.html >new file mode 100644 >index 00000000000..f80f18febe6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_mat4.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of mat4 divided by int should fail >+void main() >+{ >+ mat4 f = mat4(1.0) / 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec2.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec2.vert.html >new file mode 100644 >index 00000000000..f1c355424c0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec2.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of vec2 divided by int should fail >+void main() >+{ >+ vec2 f = vec2(1.0, 2.0) / 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec3.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec3.vert.html >new file mode 100644 >index 00000000000..9039b08048f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec3.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of vec3 divided by int should fail >+void main() >+{ >+ vec3 f = vec3(1.0, 2.0, 3.0) / 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec4.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec4.vert.html >new file mode 100644 >index 00000000000..fc507e81e66 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_int_vec4.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of vec4 divided by int should fail >+void main() >+{ >+ vec4 f = vec4(1.0, 2.0, 3.0, 4.0) / 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_ivec2_vec2.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_ivec2_vec2.vert.html >new file mode 100644 >index 00000000000..6a869e33282 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_ivec2_vec2.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of vec2 divided by ivec2 should fail >+void main() >+{ >+ vec2 f = vec2(1.0, 2.0) / ivec2(1, 2); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_ivec3_vec3.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_ivec3_vec3.vert.html >new file mode 100644 >index 00000000000..e1a8a1437d3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_ivec3_vec3.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of vec3 divided by ivec3 should fail >+void main() >+{ >+ vec3 f = vec3(1.0, 2.0, 3.0) / ivec3(1, 2, 3); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_ivec4_vec4.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_ivec4_vec4.vert.html >new file mode 100644 >index 00000000000..cb6468dde41 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/divide_ivec4_vec4.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of vec4 divided by ivec4 should fail >+void main() >+{ >+ vec4 f = vec4(1.0, 2.0, 3.0, 4.0) / ivec4(1, 2, 3, 4); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/equal_int_float.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/equal_int_float.vert.html >new file mode 100644 >index 00000000000..89d234ab36a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/equal_int_float.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to float in comparision should fail >+void main() >+{ >+ bool b = 1.0 == 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/equal_ivec2_vec2.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/equal_ivec2_vec2.vert.html >new file mode 100644 >index 00000000000..e85bdea0227 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/equal_ivec2_vec2.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of ivec2 to vec2 in comparision should fail >+void main() >+{ >+ bool b = vec2(1.0, 2.0) == ivec2(1, 2); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/equal_ivec3_vec3.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/equal_ivec3_vec3.vert.html >new file mode 100644 >index 00000000000..f906a1b2df1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/equal_ivec3_vec3.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of ivec3 to vec3 in comparision should fail >+void main() >+{ >+ bool b = vec3(1.0, 2.0, 3.0) == ivec3(1, 2, 3); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/equal_ivec4_vec4.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/equal_ivec4_vec4.vert.html >new file mode 100644 >index 00000000000..97587a8393e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/equal_ivec4_vec4.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of ivec4 to vec4 in comparision should fail >+void main() >+{ >+ bool b = vec4(1.0, 2.0, 3.0, 4.0) == ivec4(1, 2, 3, 4); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/function_int_float.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/function_int_float.vert.html >new file mode 100644 >index 00000000000..88ea4adff58 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/function_int_float.vert.html >@@ -0,0 +1,61 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to float in function argument should fail >+float foo(float f) { >+ return f; >+} >+ >+void main() { >+ float f = foo(1); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/function_ivec2_vec2.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/function_ivec2_vec2.vert.html >new file mode 100644 >index 00000000000..014c0ddc060 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/function_ivec2_vec2.vert.html >@@ -0,0 +1,61 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of ivec2 to vec2 in function argument should fail >+vec2 foo(vec2 f) { >+ return f; >+} >+ >+void main() { >+ vec2 f = foo(ivec2(1, 2)); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/function_ivec3_vec3.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/function_ivec3_vec3.vert.html >new file mode 100644 >index 00000000000..3e8ff779c99 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/function_ivec3_vec3.vert.html >@@ -0,0 +1,61 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of ivec3 to vec3 in function argument should fail >+vec3 foo(vec3 f) { >+ return f; >+} >+ >+void main() { >+ vec3 f = foo(ivec3(1, 2, 3)); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/function_ivec4_vec4.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/function_ivec4_vec4.vert.html >new file mode 100644 >index 00000000000..53892ccf78d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/function_ivec4_vec4.vert.html >@@ -0,0 +1,61 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of ivec4 to vec4 in function argument should fail >+vec4 foo(vec4 f) { >+ return f; >+} >+ >+void main() { >+ vec4 f = foo(ivec4(1, 2, 3, 4)); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/greater_than.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/greater_than.vert.html >new file mode 100644 >index 00000000000..0d74749a6c9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/greater_than.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to float with greater than should fail >+void main() >+{ >+ bool b = 1.0 > 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/greater_than_equal.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/greater_than_equal.vert.html >new file mode 100644 >index 00000000000..c468be83703 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/greater_than_equal.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to float with greater than or equal to should fail >+void main() >+{ >+ bool b = 1.0 >= 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/less_than.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/less_than.vert.html >new file mode 100644 >index 00000000000..aff3d0d4e0b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/less_than.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to float with less than should fail >+void main() >+{ >+ bool b = 1.0 < 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/less_than_equal.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/less_than_equal.vert.html >new file mode 100644 >index 00000000000..373a59df4f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/less_than_equal.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to float with less than or equal to should fail >+void main() >+{ >+ bool b = 1.0 <= 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_float.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_float.vert.html >new file mode 100644 >index 00000000000..691e20cd9a6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_float.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to float in multiply should fail >+void main() >+{ >+ float f = 1.0 * 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat2.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat2.vert.html >new file mode 100644 >index 00000000000..143963fcf22 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat2.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to mat2 in multiply should fail >+void main() >+{ >+ mat2 f = mat2(1.0) * 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat3.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat3.vert.html >new file mode 100644 >index 00000000000..ed0ee541db9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat3.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to mat3 in multiply should fail >+void main() >+{ >+ mat3 f = mat3(1.0) * 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat4.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat4.vert.html >new file mode 100644 >index 00000000000..df9eeb0a243 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_mat4.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to mat4 in multiply should fail >+void main() >+{ >+ mat4 f = mat4(1.0) * 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec2.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec2.vert.html >new file mode 100644 >index 00000000000..6fc2c6ba109 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec2.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to vec2 in multiply should fail >+void main() >+{ >+ vec2 f = vec2(1.0, 2.0) * 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec3.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec3.vert.html >new file mode 100644 >index 00000000000..a1ec600b27a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec3.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to vec3 in multiply should fail >+void main() >+{ >+ vec3 f = vec3(1.0, 2.0, 3.0) * 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec4.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec4.vert.html >new file mode 100644 >index 00000000000..3198d321973 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_int_vec4.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to vec4 in multiply should fail >+void main() >+{ >+ vec4 f = vec4(1.0, 2.0, 3.0, 4.0) * 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html >new file mode 100644 >index 00000000000..4c93ef297a2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of ivec2 to vec2 in multiply should fail >+void main() >+{ >+ vec2 f = vec2(1.0, 2.0) * ivec2(1, 2); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html >new file mode 100644 >index 00000000000..6ff18d568f9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of ivec3 to vec3 in multiply should fail >+void main() >+{ >+ vec3 f = vec3(1.0, 2.0, 3.0) * ivec3(1, 2, 3); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html >new file mode 100644 >index 00000000000..613eb041fcd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of ivec4 to vec4 in multiply should fail >+void main() >+{ >+ vec4 f = vec4(1.0, 2.0, 3.0, 4.0) * ivec4(1, 2, 3, 4); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/not_equal_int_float.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/not_equal_int_float.vert.html >new file mode 100644 >index 00000000000..be59c934ec6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/not_equal_int_float.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to float in not equal comparison should fail >+void main() >+{ >+ bool b = 1.0 != 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html >new file mode 100644 >index 00000000000..97f8ea780fe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of ivec2 to vec2 in not equal comparison should fail >+void main() >+{ >+ bool b = vec2(1.0, 2.0) != ivec2(1, 2); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html >new file mode 100644 >index 00000000000..d87b7f7d51d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of ivec3 to vec3 in not equal comparison should fail >+void main() >+{ >+ bool b = vec3(1.0, 2.0, 3.0) != ivec3(1, 2, 3); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html >new file mode 100644 >index 00000000000..6c76a0a60f9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of ivec4 to vec4 in not equal comparison should fail >+void main() >+{ >+ bool b = vec4(1.0, 2.0, 3.0, 4.0) != ivec4(1, 2, 3, 4); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_float.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_float.vert.html >new file mode 100644 >index 00000000000..fb5525c187c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_float.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to float in subtraction should fail >+void main() >+{ >+ float f = 1.0 - 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat2.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat2.vert.html >new file mode 100644 >index 00000000000..8eeb768f4bd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat2.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to mat2 in subtraction should fail >+void main() >+{ >+ mat2 f = mat2(1.0) - 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat3.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat3.vert.html >new file mode 100644 >index 00000000000..2f323250d47 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat3.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to mat3 in subtraction should fail >+void main() >+{ >+ mat3 f = mat3(1.0) - 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat4.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat4.vert.html >new file mode 100644 >index 00000000000..338632595a0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_mat4.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to mat4 in subtraction should fail >+void main() >+{ >+ mat4 f = mat4(1.0) - 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec2.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec2.vert.html >new file mode 100644 >index 00000000000..f2a5696b0dd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec2.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to vec2 in subtraction should fail >+void main() >+{ >+ vec2 f = vec2(1.0, 2.0) - 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec3.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec3.vert.html >new file mode 100644 >index 00000000000..f7653321507 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec3.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to vec3 in subtraction should fail >+void main() >+{ >+ vec3 f = vec3(1.0, 2.0, 3.0) - 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec4.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec4.vert.html >new file mode 100644 >index 00000000000..8a28c628ac6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_int_vec4.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to vec4 in subtraction should fail >+void main() >+{ >+ vec4 f = vec4(1.0, 2.0, 3.0, 4.0) - 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html >new file mode 100644 >index 00000000000..97d0574375b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of ivec2 to vec2 in subtraction should fail >+void main() >+{ >+ vec2 f = vec2(1.0, 2.0) - ivec2(1, 2); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html >new file mode 100644 >index 00000000000..f653848d847 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of ivec3 to vec3 in subtraction should fail >+void main() >+{ >+ vec3 f = vec3(1.0, 2.0, 3.0) - ivec3(1, 2, 3); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html >new file mode 100644 >index 00000000000..4e2ab8d065e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of ivec4 to vec4 in subtraction should fail >+void main() >+{ >+ vec4 f = vec4(1.0, 2.0, 3.0, 4.0) - ivec4(1, 2, 3, 4); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/ternary_int_float.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/ternary_int_float.vert.html >new file mode 100644 >index 00000000000..69cd11fa5b8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/ternary_int_float.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of int to float in ternary expression should fail >+void main() >+{ >+ float f = true ? 1.0 : 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html >new file mode 100644 >index 00000000000..ba95e284bff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of ivec2 to vec2 in ternary expression should fail >+void main() >+{ >+ vec2 f = true ? vec2(1.0, 2.0) : ivec2(1, 2); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html >new file mode 100644 >index 00000000000..62a12557fe9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of ivec3 to vec3 in ternary expression should fail >+void main() >+{ >+ vec3 f = true ? vec3(1.0, 2.0, 3.0) : ivec3(1, 2, 3); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html >new file mode 100644 >index 00000000000..a4748b94cb2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// implicit cast of ivec4 to vec4 in ternary expression should fail >+void main() >+{ >+ vec4 f = true ? vec4(1.0, 2.0, 3.0, 4.0) : ivec4(1, 2, 3, 4); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/literals/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/literals/00_test_list.txt >new file mode 100644 >index 00000000000..50802bf3464 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/literals/00_test_list.txt >@@ -0,0 +1,3 @@ >+float_literal.vert.html >+--min-version 1.0.3 literal_precision.html >+overflow_leak.vert.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/literals/float_literal.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/literals/float_literal.vert.html >new file mode 100644 >index 00000000000..951e4767692 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/literals/float_literal.vert.html >@@ -0,0 +1,72 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// parsing floating point literals should succeed >+void main() { >+ float zero = 0.0; >+ float fractionalConstant = 1.0; >+ float fractionalConstantExponent = 1.0e1; >+ float fractionalConstantPosExponent = 1.0e+1; >+ float fractionalConstantNegExponent = 1.0e-1; >+ float digitSequenceExponent = 1e1; >+ float digitSequencePosExponent = 1e+1; >+ float digitSequenceNegExponent = 1e-1; >+ float pointDigit = .1; >+ float digitPoint= 1.; >+ float upperCaseExponent = 1.0E1; >+ highp float posInRange = 4611686018427387903.; // 2^62 - 1 >+ highp float posOutRange = 4611686018427387905.; // 2^62 + 1 >+ highp float posHuge = 1E100; >+ highp float negInRange = -4611686018427387903.; >+ highp float negOutRange = -4611686018427387905.; >+ highp float negHuge = -1E100; >+ gl_Position = vec4(0.0, 0.0, 0.0, 1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/literals/literal_precision.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/literals/literal_precision.html >new file mode 100644 >index 00000000000..536441ce1fb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/literals/literal_precision.html >@@ -0,0 +1,56 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// parsing floating point literals with precision should fail >+void main() { >+ mediump float zero = mediump 0.0; >+ gl_Position = vec4(zero, 0.0, 0.0, 1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/literals/overflow_leak.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/literals/overflow_leak.vert.html >new file mode 100644 >index 00000000000..1f3a582ea97 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/literals/overflow_leak.vert.html >@@ -0,0 +1,82 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="example" width="2" height="2"> </canvas> >+<script id="vshader" type="x-shader/x-vertex"> >+// float literal overflow should not affect next literal parsing. >+precision mediump float; >+ >+varying vec4 v_color; >+attribute vec4 a_position; >+void main() { >+ highp float floatOverflow = 1E100; >+ int i = 10; >+ if (i == 10) >+ v_color = vec4(0.0, 1.0, 0.0, 1.0); >+ else >+ v_color = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_Position = a_position; >+} >+</script> >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+ >+varying vec4 v_color; >+void main() { >+ gl_FragColor = v_color; >+} >+</script> >+<script> >+"use strict"; >+description(); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+wtu.setupUnitQuad(gl); >+var program = wtu.setupProgram(gl, ["vshader", "fshader"]); >+if (!program) >+ testFailed("Fail to setup program"); >+wtu.clearAndDrawUnitQuad(gl); >+wtu.checkCanvas(gl, [0, 255, 0, 255], "should be green"); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/matrices/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/matrices/00_test_list.txt >new file mode 100644 >index 00000000000..74693de0eae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/matrices/00_test_list.txt >@@ -0,0 +1,3 @@ >+glsl-mat4-to-mat3.html >+--min-version 1.0.3 glsl-mat3-construction.html >+--min-version 1.0.4 matrix-compound-multiply.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/matrices/glsl-mat3-construction.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/matrices/glsl-mat3-construction.html >new file mode 100644 >index 00000000000..85abb9420e7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/matrices/glsl-mat3-construction.html >@@ -0,0 +1,93 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL mat3 construction test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="shader_emu" type="something-not-js"> >+mat3 mat3_emu(vec3 v3_0, vec3 v3_1, vec3 v3_2) { >+ mat3 test; >+ test[0] = v3_0; >+ test[1] = v3_1; >+ test[2] = v3_2; >+ return test; >+} >+</script> >+<script id="shader_test" type="something-not-js"> >+ vec3 v3 = vec3($(input).xyz); >+ mat3 m3 = $(conversion)(v3, v3, v3); >+ vec3 c; >+ if ($(input).y < 0.33) { >+ c = m3[0]; >+ } else if ($(input).y > 0.66) { >+ c = m3[1]; >+ } else { >+ c = m3[2]; >+ } >+ $(output) = vec4(c, 1); >+</script> >+<script> >+"use strict"; >+// See resources glsl-generator runBasicTest for how this works >+var wtu = WebGLTestUtils; >+GLSLGenerator.runBasicTest({ >+ gridRes: 8, >+ tests: [ >+ { >+ name: "vec3 to mat3", >+ reference: { >+ shader: wtu.getScript("shader_test"), >+ subs: { >+ emu: wtu.getScript("shader_emu"), >+ conversion: "mat3_emu" >+ } >+ }, >+ test: { >+ shader: wtu.getScript("shader_test"), >+ subs: { >+ conversion: "mat3" >+ }, >+ } >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/matrices/glsl-mat4-to-mat3.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/matrices/glsl-mat4-to-mat3.html >new file mode 100644 >index 00000000000..e7e420a2a0b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/matrices/glsl-mat4-to-mat3.html >@@ -0,0 +1,91 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL mat4 to mat3 test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-generator.js"> </script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="shader_emu" type="something-not-js"> >+mat3 mat3_emu(mat4 m4) { >+ return mat3( >+ m4[0][0], m4[0][1], m4[0][2], >+ m4[1][0], m4[1][1], m4[1][2], >+ m4[2][0], m4[2][1], m4[2][2]); >+} >+</script> >+<script id="shader_test" type="something-not-js"> >+ mat4 m4 = mat4($(input), $(input).yzwx, $(input).zwxy, $(input).wxyz); >+ mat3 m3 = $(conversion)(m4); >+ vec3 c; >+ if ($(input).y < 0.33) { >+ c = m3[0]; >+ } else if ($(input).y > 0.66) { >+ c = m3[1]; >+ } else { >+ c = m3[2]; >+ } >+ $(output) = vec4(c, 1); >+</script> >+<script> >+"use strict"; >+// See resources glsl-generator runBasicTest for how this works >+var wtu = WebGLTestUtils; >+GLSLGenerator.runBasicTest({ >+ gridRes: 8, >+ tests: [ >+ { >+ name: "mat4 to mat3", >+ reference: { >+ shader: wtu.getScript("shader_test"), >+ subs: { >+ emu: wtu.getScript("shader_emu"), >+ conversion: "mat3_emu" >+ } >+ }, >+ test: { >+ shader: wtu.getScript("shader_test"), >+ subs: { >+ conversion: "mat3" >+ }, >+ } >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/matrices/matrix-compound-multiply.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/matrices/matrix-compound-multiply.html >new file mode 100644 >index 00000000000..828a52adef9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/matrices/matrix-compound-multiply.html >@@ -0,0 +1,92 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Matrix compound multiplication test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<canvas id="canvas" width="256" height="256"> </canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec3 aPosition; >+ >+void main() { >+ gl_Position = vec4(aPosition, 1); >+} >+</script> >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+ >+void main() { >+ $(type) a = $(type)(0.0); >+ $(type) b = $(type)(0.0); >+ a[1][1] = 3.0; // 2nd column, 2nd row >+ b[0][1] = 2.0; // 1st column, 2nd row >+ $(type) c = a * b; >+ a *= b; >+ $(type) diffMat = a - c; >+ float diff = length(diffMat[0]) + length(diffMat[1]); >+ gl_FragColor = vec4(0.0, diff < 0.01 ? 1.0 : 0.0, 0.0, 1.0); >+} >+</script> >+<script type="application/javascript"> >+"use strict"; >+description("Matrix compound multiplication test comparing against normal multiplication."); >+debug(""); >+var wtu = WebGLTestUtils; >+function test() { >+ var gl = wtu.create3DContext("canvas"); >+ if (!gl) { >+ testFailed("context does not exist"); >+ return; >+ } >+ wtu.setupUnitQuad(gl); >+ var fshaderTemplate = wtu.getScript('fshader'); >+ >+ var types = ['mat2', 'mat3', 'mat4']; >+ for (var i = 0; i < types.length; ++i) { >+ debug(''); >+ debug('Testing type ' + types[i]); >+ var fshaderSource = wtu.replaceParams(fshaderTemplate, {type: types[i]}); >+ var program = wtu.setupProgram(gl, ['vshader', fshaderSource], ["aPosition"], undefined, true); >+ wtu.drawUnitQuad(gl); >+ wtu.checkCanvas(gl, [0, 255, 0, 255], 'should be green'); >+ } >+}; >+ >+test(); >+finishTest(); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/00_test_list.txt >new file mode 100644 >index 00000000000..9fc81113666 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/00_test_list.txt >@@ -0,0 +1,118 @@ >+--max-version 1.9.9 attrib-location-length-limits.html >+--min-version 1.0.3 boolean_precision.html >+--min-version 1.0.4 const-variable-initialization.html >+embedded-struct-definitions-forbidden.html >+--min-version 1.0.4 empty-declaration.html >+empty_main.vert.html >+--min-version 1.0.3 expression-list-in-declarator-initializer.html >+--min-version 1.0.4 fragcolor-fragdata-invariant.html >+gl_position_unset.vert.html >+--min-version 1.0.4 global-variable-init.html >+# this test is intentionally disabled as it is too strict and to hard to simulate >+# glsl-2types-of-textures-on-same-unit.html >+glsl-function-nodes.html >+--min-version 1.0.2 glsl-vertex-branch.html >+glsl-long-variable-names.html >+--min-version 1.0.4 local-variable-shadowing-outer-function.html >+non-ascii-comments.vert.html >+non-ascii.vert.html >+--min-version 1.0.2 re-compile-re-link.html >+--min-version 1.0.4 sequence-operator-returns-constant.html >+--min-version 1.0.3 shader-precision-format-obeyed.html >+--min-version 1.0.3 shader-struct-scope.html >+--min-version 1.0.2 shader-uniform-packing-restrictions.html >+--min-version 1.0.2 shader-varying-packing-restrictions.html >+--min-version 1.0.2 shader-with-256-character-define.html >+shader-with-256-character-identifier.frag.html >+--min-version 1.0.2 --max-version 1.9.9 shader-with-257-character-define.html >+--max-version 1.9.9 shader-with-257-character-identifier.frag.html >+shader-with-_webgl-identifier.vert.html >+shader-with-arbitrary-indexing.frag.html >+shader-with-arbitrary-indexing.vert.html >+--min-version 1.0.2 shader-with-array-of-structs-containing-arrays.html >+--min-version 1.0.2 shader-with-array-of-structs-uniform.html >+shader-with-attrib-array.vert.html >+shader-with-attrib-struct.vert.html >+shader-with-clipvertex.vert.html >+--min-version 1.0.2 shader-with-conditional-scoping.html >+--min-version 1.0.2 shader-with-conditional-scoping-negative.html >+shader-with-default-precision.frag.html >+shader-with-default-precision.vert.html >+--max-version 1.9.9 shader-with-define-line-continuation.frag.html >+shader-with-dfdx-no-ext.frag.html >+shader-with-dfdx.frag.html >+--min-version 1.0.2 shader-with-do-loop.html >+shader-with-error-directive.html >+shader-with-explicit-int-cast.vert.html >+shader-with-float-return-value.frag.html >+--min-version 1.0.2 shader-with-for-scoping.html >+--min-version 1.0.2 shader-with-for-loop.html >+shader-with-frag-depth.frag.html >+shader-with-function-recursion.frag.html >+--min-version 1.0.2 shader-with-function-scoped-struct.html >+--min-version 1.0.2 shader-with-functional-scoping.html >+--min-version 1.0.2 shader-with-comma-assignment.html >+--min-version 1.0.2 shader-with-comma-conditional-assignment.html >+--min-version 1.0.4 shader-with-comma-separated-variable-declarations.html >+shader-with-glcolor.vert.html >+shader-with-gles-1.frag.html >+shader-with-gles-symbol.frag.html >+shader-with-glprojectionmatrix.vert.html >+shader-with-implicit-vec3-to-vec4-cast.vert.html >+shader-with-include.vert.html >+shader-with-int-return-value.frag.html >+shader-with-invalid-identifier.frag.html >+shader-with-ivec2-return-value.frag.html >+shader-with-ivec3-return-value.frag.html >+shader-with-ivec4-return-value.frag.html >+shader-with-limited-indexing.frag.html >+--min-version 1.0.2 shader-with-hex-int-constant-macro.html >+shader-with-long-line.html >+shader-with-non-ascii-error.frag.html >+--min-version 1.0.2 shader-with-non-reserved-words.html >+shader-with-precision.frag.html >+--min-version 1.0.3 shader-with-preprocessor-whitespace.html >+shader-with-quoted-error.frag.html >+--min-version 1.0.2 shader-with-reserved-words.html >+--min-version 1.0.2 shader-with-similar-uniform-array-names.html >+--min-version 1.0.2 shader-with-too-many-uniforms.html >+--min-version 1.0.4 shader-with-two-initializer-types.html >+shader-with-undefined-preprocessor-symbol.frag.html >+shader-with-uniform-in-loop-condition.vert.html >+shader-with-vec2-return-value.frag.html >+shader-with-vec3-return-value.frag.html >+shader-with-vec4-return-value.frag.html >+--min-version 1.0.2 shader-with-vec4-vec3-vec4-conditional.html >+shader-with-version-100.frag.html >+shader-with-version-100.vert.html >+shader-with-version-120.vert.html >+shader-with-version-130.vert.html >+shader-with-webgl-identifier.vert.html >+--min-version 1.0.2 shader-with-while-loop.html >+shader-without-precision.frag.html >+--min-version 1.0.3 shaders-with-constant-expression-loop-conditions.html >+--min-version 1.0.3 shaders-with-invariance.html >+--min-version 1.0.3 shaders-with-name-conflicts.html >+--min-version 1.0.2 shaders-with-mis-matching-uniforms.html >+--min-version 1.0.2 shaders-with-mis-matching-varyings.html >+--min-version 1.0.2 shaders-with-missing-varyings.html >+--min-version 1.0.3 shaders-with-uniform-structs.html >+--min-version 1.0.2 shaders-with-varyings.html >+shared.html >+struct-nesting-exceeds-maximum.html >+struct-nesting-under-maximum.html >+--max-version 1.9.9 uniform-location-length-limits.html >+--min-version 1.0.2 shader-with-short-circuiting-operators.html >+--min-version 1.0.2 shader-with-global-variable-precision-mismatch.html >+--min-version 1.0.2 large-loop-compile.html >+--min-version 1.0.3 struct-equals.html >+--min-version 1.0.4 struct-assign.html >+--min-version 1.0.3 struct-mixed-array-declarators.html >+--min-version 1.0.3 struct-nesting-of-variable-names.html >+--min-version 1.0.3 struct-specifiers-in-uniforms.html >+--min-version 1.0.3 struct-unary-operators.html >+--min-version 1.0.4 ternary-operator-on-arrays.html >+--min-version 1.0.3 ternary-operators-in-global-initializers.html >+--min-version 1.0.3 ternary-operators-in-initializers.html >+--min-version 1.0.4 uninitialized-local-global-variables.html >+--min-version 1.0.4 sampler-operand.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/attrib-location-length-limits.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/attrib-location-length-limits.html >new file mode 100644 >index 00000000000..f63844d42ef >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/attrib-location-length-limits.html >@@ -0,0 +1,110 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<title>WebGL attrib location length tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="50" height="50"> >+There is supposed to be an example drawing here, but it's not important. >+</canvas> >+<div id="description">Verify limits on the lengths of attribute locations per WebGL spec, "Maximum Uniform and Attribute Location Lengths".</div> >+<div id="console"></div> >+<script id="goodVertexShader" type="x-shader/x-vertex"> >+// A vertex shader where the needed attrib location is exactly 256 characters. >+attribute vec4 vPosition0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456; >+ >+void main() >+{ >+ gl_Position = vPosition0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456; >+} >+</script> >+<script id="badVertexShader" type="x-shader/x-vertex"> >+// A vertex shader where the needed attrib location is 257 characters. >+attribute vec4 vPosition01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567; >+ >+void main() >+{ >+ gl_Position = vPosition01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567; >+} >+</script> >+<script id="fragmentShader" type="x-shader/x-fragment"> >+precision mediump float; >+ >+void main() { >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+} >+</script> >+<script> >+"use strict"; >+description("test attrib location length limit"); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+ >+debug("Test attrib location underneath the length limit"); >+var program = wtu.loadProgramFromScript(gl, "goodVertexShader", "fragmentShader"); >+shouldBe('gl.getProgramParameter(program, gl.LINK_STATUS)', 'true'); >+var attrib256Name = "vPosition0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456"; >+gl.bindAttribLocation(program, 0, attrib256Name); >+wtu.glErrorShouldBe(gl, gl.NONE); >+var attribLoc = gl.getAttribLocation(program, attrib256Name); >+if (attribLoc == -1) { >+ testFailed("attrib location was -1, should not be"); >+} else { >+ testPassed("attrib location should not be -1"); >+} >+wtu.glErrorShouldBe(gl, gl.NONE); >+ >+debug("Test attrib location over the length limit"); >+var attrib257Name = attrib256Name + "7"; >+ >+debug("Shader compilation or link should fail"); >+shouldBe('wtu.loadProgramFromScriptExpectError(gl, "badVertexShader", "fragmentShader")', 'null'); >+wtu.glErrorShouldBe(gl, gl.NONE); >+ >+debug("Attempt to bind too-long attrib location should produce error"); >+program = gl.createProgram(); >+gl.bindAttribLocation(program, 0, attrib257Name); >+wtu.glErrorShouldBe(gl, gl.INVALID_VALUE); >+ >+debug("Attempt to fetch too-long attrib location should produce error"); >+program = wtu.loadStandardProgram(gl); >+shouldBe('gl.getAttribLocation(program, attrib257Name)', '-1'); >+wtu.glErrorShouldBe(gl, gl.INVALID_VALUE); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/boolean_precision.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/boolean_precision.html >new file mode 100644 >index 00000000000..1213010544c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/boolean_precision.html >@@ -0,0 +1,93 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexTest" type="text/something-not-javascript"> >+// parsing boolean variables with precision should fail >+void main() { >+ mediump $(type) fail = $(initializer); >+ gl_Position = vec4(0.0, 0.0, 0.0, 1.0); >+} >+</script> >+<script id="fragmentTest" type="text/something-not-javascript"> >+// parsing boolean variables with precision should fail >+void main() { >+ mediump $(type) fail = $(initializer); >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+} >+</script> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+ >+var types = ['bool', 'bvec2', 'bvec3', 'bvec4']; >+var tests = []; >+var vTestSource = wtu.getScript("vertexTest"); >+var fTestSource = wtu.getScript("fragmentTest"); >+ >+for (var i = 0; i < types.length; ++i) { >+ var initializer = 'true'; >+ if (types[i] !== 'bool') { >+ initializer = types[i] + "(true"; >+ for (var j = 0; j < i; ++j) { >+ initializer += ", true"; >+ } >+ initializer += ")"; >+ } >+ var subs = {type: types[i], initializer: initializer}; >+ tests.push({ >+ vShaderSource: wtu.replaceParams(vTestSource, subs), >+ vShaderSuccess: false, >+ passMsg: "vertex shader with a " + types[i] + " variable with precision should fail." >+ }); >+ tests.push({ >+ fShaderSource: wtu.replaceParams(fTestSource, subs), >+ fShaderSuccess: false, >+ passMsg: "fragment shader with a " + types[i] + " variable with precision should fail." >+ }); >+} >+GLSLConformanceTester.runTests(tests); >+ >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/const-variable-initialization.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/const-variable-initialization.html >new file mode 100644 >index 00000000000..4f771779d33 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/const-variable-initialization.html >@@ -0,0 +1,265 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>All valid constant expressions should be allowed in the initialization of const variables</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<script id="VertexTemplate" type="x-shader/x-vertex"> >+precision mediump float; >+ >+$(init) >+ >+void main() { >+ const $(constType) c = $(constantExpression); >+ gl_Position = vec4(float(c$(constTypeToScalar))); >+} >+</script> >+<script id="FragmentTemplate" type="x-shader/x-fragment"> >+precision mediump float; >+ >+$(init) >+ >+void main() { >+ const $(constType) c = $(constantExpression); >+ gl_FragColor = vec4(float(c$(constTypeToScalar))); >+} >+</script> >+</head> >+<body onload="runTest()"> >+<div id="description"></div> >+<div id="console"></div> >+<script type="application/javascript"> >+"use strict"; >+description(); >+ >+var wtu = WebGLTestUtils; >+ >+// ESSL 1.00 spec section 4.3.2. >+// Initializers for const declarations must be a constant expression. >+ >+// ESSL 1.00 spec section 5.10. >+// A constant expression is one of >+// * a literal value (e.g., 5 or true) >+// * a global or local variable qualified as const excluding function parameters >+// * an expression formed by an operator on operands that are constant expressions, including getting >+// an element of a constant vector or a constant matrix, or a field of a constant structure >+// * a constructor whose arguments are all constant expressions >+// * a built-in function call whose arguments are all constant expressions, with the exception of the >+// texture lookup functions. >+ >+var binaryOpsGenTypeRValuesToGenType = [ >+ '+', >+ '-', >+ '*', >+ '/' >+]; >+ >+var binaryOpsScalarsToBool = [ >+ '<', >+ '>', >+ '<=', >+ '>=' >+]; >+ >+var binaryOpsRValuesToBool = [ >+ '==', >+ '!=' >+]; >+ >+var binaryOpsBoolsToBool = [ >+ '&&', >+ '^^', >+ '||' >+]; >+ >+var builtInsGenTypeToGenType = [ >+ 'radians', >+ 'degrees', >+ 'sin', >+ 'cos', >+ 'tan', >+ 'asin', >+ 'acos', >+ 'atan', >+ 'exp', >+ 'log', >+ 'exp2', >+ 'log2', >+ 'sqrt', >+ 'inversesqrt', >+ 'abs', >+ 'sign', >+ 'floor', >+ 'ceil', >+ 'fract' >+]; >+ >+var builtIns2VecToBvec = [ >+ 'lessThan', >+ 'lessThanEqual', >+ 'greaterThan', >+ 'greaterThanEqual', >+ 'equal', >+ 'notEqual' >+]; >+ >+var builtIns2GenTypeToGenType = [ >+ 'atan', >+ 'pow', >+ 'mod', >+ 'min', >+ 'max', >+ 'step' >+]; >+ >+var runTest = function() { >+ var vsTemplate = document.getElementById('VertexTemplate').text; >+ var fsTemplate = document.getElementById('FragmentTemplate').text; >+ >+ var tests = []; >+ var i; >+ var op; >+ var builtIn; >+ >+ var pushTest = function(constType, constantExpression, expectSuccess, opt_init) { >+ if (opt_init === undefined) { >+ opt_init = ''; >+ } >+ var constTypeToScalar = ''; >+ if (constType.substring(0, 3) == 'vec' || constType.substring(1, 4) == 'vec') { >+ constTypeToScalar = '.x'; >+ } else if (constType.substring(0, 3) == 'mat') { >+ constTypeToScalar = '[0].x'; >+ } else if (constType == 'my_struct') { >+ constTypeToScalar = '.field'; >+ } >+ var vs = wtu.replaceParams(vsTemplate, {constType: constType, constantExpression: constantExpression, constTypeToScalar: constTypeToScalar, init: opt_init}); >+ var fs = wtu.replaceParams(fsTemplate, {constType: constType, constantExpression: constantExpression, constTypeToScalar: constTypeToScalar, init: opt_init}); >+ tests.push({ >+ vShaderSource: vs, >+ vShaderSuccess: expectSuccess, >+ linkSuccess: expectSuccess, >+ passMsg: "Assigning " + constantExpression + " to a const in a vertex shader should " + (expectSuccess ? "compile." : "fail compilation.") >+ }); >+ tests.push({ >+ fShaderSource: fs, >+ fShaderSuccess: expectSuccess, >+ linkSuccess: expectSuccess, >+ passMsg: "Assigning " + constantExpression + " to a const in a fragment shader should " + (expectSuccess ? "compile." : "fail compilation.") >+ }); >+ } >+ >+ // Handle some one of a kind cases first >+ pushTest('float', 'vec4(0.5).x', true); >+ pushTest('float', 'vec4(0.5)[0]', true); >+ pushTest('float', 'true ? 0.5 : 0.2', true); >+ pushTest('my_struct', 'my_struct(0.5, 0.2)', true, 'struct my_struct { float field; float field2; };'); >+ pushTest('float', '(0.2, 0.5)', true); >+ >+ pushTest('float', 'clamp(0.2, 0.3, 0.4)', true); >+ pushTest('float', 'mix(0.2, 0.3, 0.4)', true); >+ pushTest('float', 'smoothstep(0.2, 0.3, 0.4)', true); >+ pushTest('float', 'length(vec4(0.5))', true); >+ pushTest('float', 'distance(vec4(0.5), vec4(0.2))', true); >+ pushTest('float', 'dot(vec4(0.5), vec4(0.2))', true); >+ pushTest('vec3', 'cross(vec3(0.5), vec3(0.2))', true); >+ pushTest('vec4', 'normalize(vec4(0.5))', true); >+ pushTest('vec4', 'faceforward(vec4(0.2), vec4(0.3), vec4(0.4))', true); >+ pushTest('vec4', 'reflect(vec4(0.2), vec4(0.5))', true); >+ pushTest('vec4', 'refract(vec4(0.2), vec4(0.3), 0.4)', true); >+ pushTest('mat4', 'matrixCompMult(mat4(0.2), mat4(0.5))', true); >+ >+ // Handle built-in constructors >+ for (i = 2; i <= 4; ++i) { >+ var vecType = 'vec' + i; >+ pushTest(vecType, vecType + '(0.5)', true); >+ pushTest('i' + vecType, 'i' + vecType + '(1)', true); >+ pushTest('b' + vecType, 'b' + vecType + '(true)', true); >+ pushTest('mat' + i, 'mat' + i + '(0.5)', true); >+ } >+ >+ // Handle ops >+ for (i = 0; i < binaryOpsGenTypeRValuesToGenType.length; ++i) { >+ var op = binaryOpsGenTypeRValuesToGenType[i]; >+ pushTest('float', '0.2 ' + op + ' 0.5', true); >+ pushTest('vec4', 'vec4(0.2) ' + op + ' vec4(0.5)', true); >+ pushTest('mat4', 'mat4(0.2) ' + op + ' mat4(0.5)', true); >+ } >+ >+ for (i = 0; i < binaryOpsScalarsToBool.length; ++i) { >+ var op = binaryOpsScalarsToBool[i]; >+ pushTest('bool', '0.2 ' + op + ' 0.5', true); >+ } >+ >+ for (i = 0; i < binaryOpsRValuesToBool.length; ++i) { >+ var op = binaryOpsRValuesToBool[i]; >+ pushTest('bool', '0.2 ' + op + ' 0.5', true); >+ pushTest('bool', 'vec4(0.2) ' + op + ' vec4(0.5)', true); >+ } >+ >+ for (i = 0; i < binaryOpsBoolsToBool.length; ++i) { >+ var op = binaryOpsBoolsToBool[i]; >+ pushTest('bool', 'false ' + op + ' true', true); >+ } >+ >+ // Handle allowed built-ins >+ for (i = 0; i < builtInsGenTypeToGenType.length; ++i) { >+ builtIn = builtInsGenTypeToGenType[i]; >+ pushTest('float', builtIn + '(0.5)', true); >+ pushTest('vec4', builtIn + '(vec4(0.5))', true); >+ } >+ >+ for (i = 0; i < builtIns2VecToBvec.length; ++i) { >+ builtIn = builtIns2VecToBvec[i]; >+ pushTest('bvec4', builtIn + '(vec4(0.2), vec4(0.5))', true); >+ } >+ >+ for (i = 0; i < builtIns2GenTypeToGenType.length; ++i) { >+ builtIn = builtIns2GenTypeToGenType[i]; >+ pushTest('float', builtIn + '(0.2, 0.5)', true); >+ pushTest('vec4', builtIn + '(vec4(0.2), vec4(0.5))', true); >+ } >+ >+ // Include some expressions with a constant variable reference >+ pushTest('float', 'cc', true, 'const float cc = 0.5;'); >+ pushTest('float', 'cc + cc2', true, 'const float cc = 0.5; const float cc2 = 0.2;'); >+ pushTest('float', 'sqrt(cc)', true, 'const float cc = 0.5;'); >+ >+ GLSLConformanceTester.runTests(tests); >+} >+ >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/embedded-struct-definitions-forbidden.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/embedded-struct-definitions-forbidden.html >new file mode 100644 >index 00000000000..449d306a969 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/embedded-struct-definitions-forbidden.html >@@ -0,0 +1,62 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// embedded structure definitions are forbidden per GLSL ES section 4.1.8, "Structures", and should fail >+struct nesting1 { >+ struct nesting2 { >+ vec4 vector; >+ } field2; >+}; >+ >+uniform nesting1 uniform1; >+void main() >+{ >+ gl_Position = uniform1.field2.vector; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/empty-declaration.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/empty-declaration.html >new file mode 100644 >index 00000000000..720f8881670 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/empty-declaration.html >@@ -0,0 +1,132 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests - empty declarations</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexEmptyDeclaration" type="text/something-not-javascript"> >+// Vertex shader with an empty declaration should succeed. >+// See shading language grammar rules init_declarator_list and single_declaration >+// in ESSL specs. >+// Empty declarations are a side effect of how grammar for structs is defined. >+void main() { >+ float; >+ gl_Position = vec4(0.0); >+} >+</script> >+<script id="vertexEmptyDeclarationPlus" type="text/something-not-javascript"> >+// Vertex shader with an empty declaration followed by declarator should succeed. >+// See shading language grammar rules init_declarator_list and single_declaration >+// in ESSL specs. >+void main() { >+ float, a = 0.0; >+ gl_Position = vec4(a); >+} >+</script> >+<script id="vertexEmptyStructDeclarationPlus" type="text/something-not-javascript"> >+// Vertex shader with an empty declaration followed by declarator should succeed. >+// See shading language grammar rules init_declarator_list and single_declaration >+// in ESSL specs. >+ >+struct S { >+ float member; >+}, a; >+ >+void main() { >+ a.member = 0.0; >+ gl_Position = vec4(a.member); >+} >+</script> >+<script id="vertexEmptyDeclarationInStruct" type="text/something-not-javascript"> >+// Vertex shader with an empty declaration inside struct should fail. >+// In-struct declarations have different grammar from declarations outside structs. >+struct S { >+ float; >+ float a; >+}; >+ >+void main() { >+ gl_Position = vec4(0.0); >+} >+</script> >+<script id="vertexEmptyDeclarationPlusInStruct" type="text/something-not-javascript"> >+// Vertex shader with an empty declaration inside struct should fail. >+// In-struct declarations have different grammar from declarations outside structs. >+struct S { >+ float, a; >+ float b; >+}; >+ >+void main() { >+ gl_Position = vec4(0.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTests([ >+ { vShaderId: 'vertexEmptyDeclaration', >+ vShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'Vertex shader with an empty declaration should succeed' >+ }, >+ { vShaderId: 'vertexEmptyDeclarationPlus', >+ vShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'Vertex shader with an empty declaration followed by declarator should succeed' >+ }, >+ { vShaderId: 'vertexEmptyStructDeclarationPlus', >+ vShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'Vertex shader with an empty struct declaration followed by declarator should succeed' >+ }, >+ { vShaderId: 'vertexEmptyDeclarationInStruct', >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'Vertex shader with an empty declaration in a struct should fail' >+ }, >+ { vShaderId: 'vertexEmptyDeclarationPlusInStruct', >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'Vertex shader with an empty declaration followed by declarator in a struct should fail' >+ } >+]); >+ >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/empty_main.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/empty_main.vert.html >new file mode 100644 >index 00000000000..80d1a14ca6a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/empty_main.vert.html >@@ -0,0 +1,54 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader with an empty main() should succeed >+void main() { } >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/expression-list-in-declarator-initializer.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/expression-list-in-declarator-initializer.html >new file mode 100644 >index 00000000000..4cea555a35e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/expression-list-in-declarator-initializer.html >@@ -0,0 +1,87 @@ >+<!-- >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css" /> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<title></title> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+precision mediump float; >+void main() { >+ $(type) a, b; >+ $(type) c = (b = $(initializer), a = b); >+ gl_FragColor = $(asVec4); >+} >+</script> >+<script> >+"use strict"; >+description("Verifies expression lists in declarator initializers work correctly."); >+var tests = []; >+var wtu = WebGLTestUtils; >+var typeInfos = [ >+ { type: 'float', initializer: '1.0', asVec4: 'vec4(0.0,$(var),0.0,1.0)' }, >+ { type: 'vec2', initializer: 'vec2(0.0, 1.0)', asVec4: 'vec4($(var),0.0,1.0)' }, >+ { type: 'vec3', initializer: 'vec3(0.0, 1.0, 0.0)', asVec4: 'vec4($(var),1.0)' }, >+ { type: 'vec4', initializer: 'vec4(0.0, 1.0, 0.0, 1.0)', asVec4: '$(var)' }, >+ { type: 'int', initializer: '1', asVec4: 'vec4(0.0,$(var),0.0,1.0)' }, >+ { type: 'ivec2', initializer: 'ivec2(0, 1)', asVec4: 'vec4($(var),0.0,1.0)' }, >+ { type: 'ivec3', initializer: 'ivec3(0, 1, 0)', asVec4: 'vec4($(var),1.0)' }, >+ { type: 'ivec4', initializer: 'ivec4(0, 1, 0, 1)', asVec4: 'vec4($(var))' }, >+ { type: 'bool', initializer: 'true', asVec4: 'vec4(0.0,$(var),0.0,1.0)' }, >+ { type: 'bvec2', initializer: 'bvec2(false, true)', asVec4: 'vec4($(var),0.0,1.0)' }, >+ { type: 'bvec3', initializer: 'bvec3(false, true, false)', asVec4: 'vec4($(var),1.0)' }, >+ { type: 'bvec4', initializer: 'bvec4(false,true,false,true)',asVec4: 'vec4($(var))' }, >+]; >+// Ensure that each variable is properly initialized to green, not just c. >+['a', 'b', 'c'].forEach(function(varName) { >+ typeInfos.forEach(function (typeInfo) { >+ var replaceParams = { >+ type: typeInfo.type, >+ initializer: typeInfo.initializer, >+ asVec4: wtu.replaceParams(typeInfo.asVec4, {var: varName}), >+ }; >+ tests.push({ >+ fShaderSource: wtu.replaceParams(wtu.getScript('fragmentShader'), replaceParams), >+ passMsg: typeInfo.type + ' with contents of ' + varName + ' rendered', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ render:true >+ }); >+ }); >+}); >+GLSLConformanceTester.runTests(tests); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/fragcolor-fragdata-invariant.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/fragcolor-fragdata-invariant.html >new file mode 100644 >index 00000000000..632dd0e22fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/fragcolor-fragdata-invariant.html >@@ -0,0 +1,61 @@ >+<!-- >+ >+/* >+** Copyright (c) 2018 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests - gl_FragColor and gl_FragData both declared as invariant</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// Declaring both gl_FragColor and gl_FragData invariant should succeed. >+precision mediump float; >+ >+// Static write of both gl_FragColor and gl_FragData is disallowed. However, simply declaring a variable invariant is not really accessing the variable, so it should be ok. >+invariant gl_FragColor; >+invariant gl_FragData; >+ >+void main() >+{ >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/gl_position_unset.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/gl_position_unset.vert.html >new file mode 100644 >index 00000000000..3ee953d4014 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/gl_position_unset.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader without gl_Position being written should succeed >+void main() { >+ vec4 a = vec4(0.0, 0.0, 0.0, 1.0); >+ float f = a.x; >+ a.y = f; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/global-variable-init.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/global-variable-init.html >new file mode 100644 >index 00000000000..d6365ee76c1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/global-variable-init.html >@@ -0,0 +1,344 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Global variable initializer restrictions</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="constGlobalShader" type="x-shader/x-vertex"> >+precision mediump float; >+attribute vec4 aPosition; >+varying float v; >+ >+const float c = 1.0; >+float f = c; >+ >+void main() { >+ v = f; >+ gl_Position = aPosition; >+} >+</script> >+<script id="globalShader" type="x-shader/x-vertex"> >+precision mediump float; >+attribute vec4 aPosition; >+varying float v; >+ >+float c = 1.0; >+float f = c; >+ >+void main() { >+ v = f; >+ gl_Position = aPosition; >+} >+</script> >+<script id="uniformShader" type="x-shader/x-vertex"> >+precision mediump float; >+attribute vec4 aPosition; >+varying float v; >+ >+uniform float u; >+float f = u; >+ >+void main() { >+ v = f; >+ gl_Position = aPosition; >+} >+</script> >+<script id="builtinFunctionShader" type="x-shader/x-vertex"> >+precision mediump float; >+attribute vec4 aPosition; >+varying float v; >+ >+float c = 1.0; >+float f = sin(c); >+ >+void main() { >+ v = f; >+ gl_Position = aPosition; >+} >+</script> >+<script id="builtinTextureFunctionShader" type="x-shader/x-vertex"> >+precision mediump float; >+attribute vec4 aPosition; >+varying float v; >+ >+uniform sampler2D s; >+float f = texture2DLod(s, vec2(0.5, 0.5), 0.0).x; >+ >+void main() { >+ v = f; >+ gl_Position = aPosition; >+} >+</script> >+<script id="attributeShader" type="x-shader/x-vertex"> >+precision mediump float; >+attribute vec4 aPosition; >+varying float v; >+ >+float f = aPosition.x; >+ >+void main() { >+ v = f; >+ gl_Position = aPosition; >+} >+</script> >+<script id="userDefinedFunctionShader" type="x-shader/x-vertex"> >+precision mediump float; >+attribute vec4 aPosition; >+varying float v; >+ >+float foo() { >+ return 1.0; >+} >+float f = foo(); >+ >+void main() { >+ v = f; >+ gl_Position = aPosition; >+} >+</script> >+<script id="varyingShader" type="x-shader/x-fragment"> >+precision mediump float; >+varying float v; >+float f = v; >+ >+void main() { >+ gl_FragColor = vec4(f); >+} >+</script> >+<script id="globalLValueShader" type="x-shader/x-vertex"> >+precision mediump float; >+attribute vec4 aPosition; >+varying float v; >+ >+float c = 1.0; >+float f = (c = 0.0); >+ >+void main() { >+ v = f; >+ gl_Position = aPosition; >+} >+</script> >+<script id="globalLValueShader2" type="x-shader/x-vertex"> >+precision mediump float; >+attribute vec4 aPosition; >+varying float v; >+ >+float c = 1.0; >+float f = (c++); >+ >+void main() { >+ v = f; >+ gl_Position = aPosition; >+} >+</script> >+<script id="globalNonConstTernary" type="x-shader/x-fragment"> >+precision mediump float; >+float green = 1.0; >+float black = 0.0; >+float f = true ? green : black; >+ >+void main() { >+ gl_FragColor = vec4(0.0, f, 0.0, 1.0); >+} >+</script> >+<script id="globalUniformTernary" type="x-shader/x-fragment"> >+precision mediump float; >+uniform float u_zero; >+float green = 1.0 + u_zero; >+float f = true ? green : u_zero; >+ >+void main() { >+ gl_FragColor = vec4(0.0, f, 0.0, 1.0); >+} >+</script> >+<script id="globalUniformTernary2" type="x-shader/x-fragment"> >+precision mediump float; >+uniform float u_zero; >+float green = 1.0; >+float f = (u_zero < 0.1) ? green : 0.0; >+ >+void main() { >+ gl_FragColor = vec4(0.0, f, 0.0, 1.0); >+} >+</script> >+<script id="globalUniformStruct" type="x-shader/x-fragment"> >+precision mediump float; >+struct S { >+ float zero; >+ int one; >+}; >+uniform S us; >+S s = us; >+ >+void main() { >+ float green = (s.one == 1) ? 1.0 : 0.0; >+ gl_FragColor = vec4(0.0, green, 0.0, 1.0); >+} >+</script> >+<script id="builtInConstant" type="x-shader/x-fragment"> >+precision mediump float; >+int i = gl_MaxFragmentUniformVectors; >+ >+void main() { >+ float green = (i > 0) ? 1.0 : 0.0; >+ gl_FragColor = vec4(0.0, green, 0.0, 1.0); >+} >+</script> >+<script id="builtInNonConstant" type="x-shader/x-fragment"> >+precision mediump float; >+vec4 v = gl_FragCoord; >+ >+void main() { >+ gl_FragColor = v; >+} >+</script> >+<script type="application/javascript"> >+"use strict"; >+description(); >+GLSLConformanceTester.runTests([ >+ { >+ vShaderId: "constGlobalShader", >+ vShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "A const global in a global variable initializer should be accepted by WebGL." >+ }, >+ { >+ vShaderId: "globalShader", >+ vShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Another global in a global variable initializer should be accepted by WebGL." >+ }, >+ { >+ vShaderId: "uniformShader", >+ vShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "A uniform in a global variable initializer should be accepted by WebGL." >+ }, >+ { >+ vShaderId: "builtinFunctionShader", >+ vShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "A built-in math function in a global variable initializer should be accepted by WebGL." >+ }, >+ { >+ vShaderId: "builtinTextureFunctionShader", >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "A texture lookup function in a global variable initializer should not be accepted by WebGL." >+ }, >+ { >+ vShaderId: "attributeShader", >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "An attribute in a global variable initializer should not be accepted by WebGL." >+ }, >+ { >+ vShaderId: "userDefinedFunctionShader", >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "A user-defined function call in a global variable initializer should not be accepted by WebGL." >+ }, >+ { >+ vShaderId: "constGlobalShader", >+ vShaderSuccess: true, >+ fShaderId: "varyingShader", >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "A varying in a global variable initializer should not be accepted by WebGL." >+ }, >+ { >+ vShaderId: "globalLValueShader", >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "Another global as an l-value in a global variable initializer should not be accepted by WebGL." >+ }, >+ { >+ vShaderId: "globalLValueShader2", >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "Another global as an l-value (parameter of ++) in a global variable initializer should not be accepted by WebGL." >+ }, >+ { >+ fShaderId: "globalNonConstTernary", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ render: true, >+ passMsg: "Non-const global variables as operands for a ternary operator in a global variable initializer should be accepted by WebGL." >+ }, >+ { >+ fShaderId: "globalUniformTernary", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ render: true, >+ passMsg: "A uniform as the second operand for a ternary operator in a global variable initializer should be accepted by WebGL." >+ }, >+ { >+ fShaderId: "globalUniformTernary2", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ render: true, >+ passMsg: "Referencing a uniform inside the first operand for a ternary operator in a global variable initializer should be accepted by WebGL." >+ }, >+ { >+ fShaderId: "globalUniformStruct", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ render: true, >+ uniforms: [ >+ { name: 'us.one', functionName: 'uniform1i', value: 1 } >+ ], >+ passMsg: "A global struct initialized with a uniform struct should be accepted by WebGL." >+ }, >+ { >+ fShaderId: "builtInConstant", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ render: true, >+ passMsg: "Referencing a built-in constant in a global variable initializer should be accepted by WebGL." >+ }, >+ { >+ fShaderId: "builtInNonConstant", >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "Referencing a built-in non-constant in a global variable initializer should not be accepted by WebGL." >+ } >+]); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/glsl-2types-of-textures-on-same-unit.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/glsl-2types-of-textures-on-same-unit.html >new file mode 100644 >index 00000000000..11573e9c218 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/glsl-2types-of-textures-on-same-unit.html >@@ -0,0 +1,153 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+ <head> >+<meta charset="utf-8"> >+ <title>WebGL GLSL 2 types of textures on same unit conformance test.</title> >+ <link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+ <script src="../../../js/js-test-pre.js"></script> >+ <script src="../../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="2" height="2" style="width: 40px; height: 40px;"></canvas> >+<canvas id="canvas2d" width="1" height="1" style="width: 40px; height: 40px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+attribute vec2 texCoord0; >+varying vec2 texCoord; >+void main() >+{ >+ gl_Position = vPosition; >+ texCoord = texCoord0; >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+ >+uniform sampler2D tex2d; >+uniform samplerCube texCube; >+varying vec2 texCoord; >+void main() >+{ >+ gl_FragColor = texture2D(tex2d, texCoord) + >+ textureCube(texCube, vec3(0,1,0)); >+} >+</script> >+ >+ <script> >+ "use strict"; >+function init() >+{ >+ description( >+ "Tests that using 2 types of textures on the same texture unit" + >+ "and referencing them both in the same program fails as per" + >+ "OpenGL ES 2.0.24 spec section 2.10.4, Samplers subsection."); >+ >+ var canvas2d = document.getElementById("canvas2d"); >+ var ctx2d = canvas2d.getContext("2d"); >+ >+ var wtu = WebGLTestUtils; >+ var gl = wtu.create3DContext("example"); >+ var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["vPosition", "texCoord0"]); >+ >+ var vertexObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ gl.bufferData( >+ gl.ARRAY_BUFFER, >+ new Float32Array([ >+ -1, 1,0, 1,1,0, -1,-1,0, >+ -1,-1,0, 1,1,0, 1,-1,0]), >+ gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(0); >+ gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+ >+ var vertexObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ gl.bufferData( >+ gl.ARRAY_BUFFER, >+ new Float32Array([ >+ 0,0, 1,0, 0,1, >+ 0,1, 1,0, 1,1]), >+ gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(1); >+ gl.vertexAttribPointer(1, 2, gl.FLOAT, false, 0, 0); >+ >+ // Make texture unit 1 active. >+ gl.activeTexture(gl.TEXTURE1); >+ >+ // Make a 2d texture >+ var tex2d = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex2d); >+ ctx2d.fillStyle = "rgba(0, 0, 255, 255)"; >+ ctx2d.fillRect(0, 0, 1, 1); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, canvas2d); >+ >+ // make a cube texture >+ var texCube = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_CUBE_MAP, texCube); >+ ctx2d.fillStyle = "rgba(0, 255, 0, 64)"; >+ ctx2d.fillRect(0, 0, 1, 1); >+ var targets = [ >+ gl.TEXTURE_CUBE_MAP_POSITIVE_X, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_X, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_Y, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_Y, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_Z, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_Z]; >+ for (var ii = 0; ii < targets.length; ++ii) { >+ gl.texImage2D(targets[ii], 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, canvas2d); >+ } >+ >+ var tex2dLoc = gl.getUniformLocation(program, "tex2d"); >+ var texCubeLoc = gl.getUniformLocation(program, "texCube"); >+ gl.uniform1i(tex2dLoc, 1); >+ gl.uniform1i(texCubeLoc, 1); >+ >+ gl.clearColor(1,0,0,1); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ >+ for (var ii = 0; ii < 4; ++ii) { >+ var x = ii % 2; >+ var y = Math.floor(ii / 2); >+ gl.drawArrays(gl.TRIANGLES, 0, 6); >+ wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, >+ "drawing with 2 different targets on the same texture unit should generate INVALID_VALUE"); >+ } >+} >+ >+init(); >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/glsl-function-nodes.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/glsl-function-nodes.html >new file mode 100644 >index 00000000000..fd1be0495e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/glsl-function-nodes.html >@@ -0,0 +1,155 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL function nodes Test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+ >+<script id="vshaderFunction" type="x-shader/x-vertex"> >+attribute vec4 aPosition; >+varying vec4 vColor; >+ >+float sign_emu(float value) { >+ if (value == 0.0) return 0.0; >+ return value > 0.0 ? 1.0 : -1.0; >+} >+ >+void main() >+{ >+ gl_Position = aPosition; >+ vec2 texcoord = vec2(aPosition.xy * 0.5 + vec2(0.5, 0.5)); >+ vec4 color = vec4( >+ texcoord, >+ texcoord.x * texcoord.y, >+ (1.0 - texcoord.x) * texcoord.y * 0.5 + 0.5); >+ vColor = vec4( >+ sign_emu(color.x * 2.0 - 1.0) * 0.5 + 0.5, >+ sign_emu(color.y * 2.0 - 1.0) * 0.5 + 0.5, >+ 0, >+ 1); >+} >+</script> >+ >+<script id="vshaderMacro" type="x-shader/x-vertex"> >+attribute vec4 aPosition; >+varying vec4 vColor; >+ >+#define sign_emu(value) ((value) == 0.0 ? 0.0 : ((value) > 0.0 ? 1.0 : -1.0)) >+ >+void main() >+{ >+ gl_Position = aPosition; >+ vec2 texcoord = vec2(aPosition.xy * 0.5 + vec2(0.5, 0.5)); >+ vec4 color = vec4( >+ texcoord, >+ texcoord.x * texcoord.y, >+ (1.0 - texcoord.x) * texcoord.y * 0.5 + 0.5); >+ vColor = vec4( >+ sign_emu(color.x * 2.0 - 1.0) * 0.5 + 0.5, >+ sign_emu(color.y * 2.0 - 1.0) * 0.5 + 0.5, >+ 0, >+ 1); >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec4 vColor; >+void main() >+{ >+ gl_FragColor = vColor; >+} >+</script> >+</head> >+<body> >+<canvas id="canvasFunction" width="50" height="50"></canvas> >+<canvas id="canvasMacro" width="50" height="50"></canvas> >+<div id="description">This tests against a Mac driver bug related to function calls.</div> >+<div id="console"></div> >+<script> >+"use strict"; >+var width = 50; >+var height = 50; >+var wtu = WebGLTestUtils; >+ >+function drawAndRead(canvasID, vshaderID, buffer) >+{ >+ var gl = wtu.create3DContext(canvasID); >+ var program = wtu.setupProgram(gl, [vshaderID, "fshader"], ["aPosition"]); >+ var vertexObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ 0,0.5,0, -0.5,-0.5,0, 0.5,-0.5,0 ]), gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(0); >+ gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+ >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ gl.drawArrays(gl.TRIANGLES, 0, 3); >+ gl.readPixels(0, 0, width, height, gl.RGBA, gl.UNSIGNED_BYTE, buffer); >+ if (gl.getError() != gl.NO_ERROR) >+ return false; >+ return true; >+} >+ >+function compareRendering(buffer1, buffer2, tol) >+{ >+ for (var i = 0; i < width * height * 4; ++i) { >+ if (Math.abs(buffer1[i] - buffer2[i]) > tol) >+ return false; >+ } >+ return true; >+} >+ >+function init() >+{ >+ description("tests function nodes"); >+ >+ var bufFunction = new Uint8Array(width * height * 4); >+ var bufMacro = new Uint8Array(width * height * 4); >+ >+ if (drawAndRead("canvasFunction", "vshaderFunction", bufFunction) == false || >+ drawAndRead("canvasMacro", "vshaderMacro", bufMacro) == false) { >+ testFailed("Setup failed"); >+ } else { >+ if (compareRendering(bufFunction, bufMacro, 4) == false) >+ testFailed("Rendering results are different"); >+ else >+ testPassed("Rendering results are the same"); >+ } >+} >+ >+init(); >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/glsl-long-variable-names.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/glsl-long-variable-names.html >new file mode 100644 >index 00000000000..631e3182c26 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/glsl-long-variable-names.html >@@ -0,0 +1,248 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>glsl long variable name mapping tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="50" height="50"> >+There is supposed to be an example drawing here, but it's not important. >+</canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader_shared_uniform" type="x-shader/x-vertex"> >+attribute vec3 vPosition; >+uniform mediump float value01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890; >+void main() >+{ >+ gl_Position = vec4(vPosition, value01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890); >+} >+</script> >+ >+<script id="fshader_shared_uniform" type="x-shader/x-fragment"> >+precision mediump float; >+uniform float value01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890; >+void main() >+{ >+ gl_FragColor = vec4(1.0, 0.0, value01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890, 1.0); >+} >+</script> >+ >+<script id="vshader_uniform_array" type="x-shader/x-vertex"> >+attribute vec3 vPosition; >+void main() >+{ >+ gl_Position = vec4(vPosition, 1.0); >+} >+</script> >+ >+<script id="fshader_uniform_array" type="x-shader/x-fragment"> >+precision mediump float; >+uniform float color01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567[2]; >+void main() >+{ >+ gl_FragColor = vec4(color01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567[0], color01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567[1], 1.0, 1.0); >+} >+</script> >+ >+<script id="vshader_varying" type="x-shader/x-vertex"> >+attribute vec3 vPosition; >+varying float value01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890; >+void main() >+{ >+ value01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 = 1.0; >+ gl_Position = vec4(vPosition, 1.0); >+} >+</script> >+ >+<script id="fshader_varying" type="x-shader/x-fragment"> >+precision mediump float; >+varying float value01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890; >+void main() >+{ >+ gl_FragColor = vec4(value01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890, 0.0, 1.0, 1.0); >+} >+</script> >+ >+<script id="vshader_local" type="x-shader/x-vertex"> >+attribute vec3 vPosition; >+void main() >+{ >+ for (int i012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234 = 0; i012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234 < 1; ++i012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234) >+ { >+ gl_Position = vec4(vPosition, 1.0); >+ } >+} >+</script> >+ >+<script id="fshader_local" type="x-shader/x-fragment"> >+precision mediump float; >+void main() >+{ >+ for (int i012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234 = 0; i012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234 < 1; ++i012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234) >+ { >+ gl_FragColor = vec4(1.0, 0.0, 1.0, 1.0); >+ } >+} >+</script> >+ >+<script id="vshader_attrib" type="x-shader/x-vertex"> >+attribute vec3 vPosition0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456; >+void main() >+{ >+ gl_Position = vec4(vPosition0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456, 1.0); >+} >+</script> >+ >+<script id="fshader_attrib" type="x-shader/x-fragment"> >+precision mediump float; >+void main() >+{ >+ gl_FragColor = vec4(1.0, 0.0, 1.0, 1.0); >+} >+</script> >+ >+<script> >+"use strict"; >+description("Verify that shader long variable names works fine if they are within 256 characters."); >+ >+debug("Test same long uniform name in both vertex shader and fragment shader"); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+var program = wtu.setupProgram(gl, ["vshader_shared_uniform", "fshader_shared_uniform"], ["vPosition"]); >+shouldBeNonNull("gl"); >+shouldBe("gl.getError()", "gl.NO_ERROR"); >+var prog = gl.getParameter(gl.CURRENT_PROGRAM); >+shouldBeNonNull("prog"); >+var valueLoc = gl.getUniformLocation(prog, "value01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"); >+shouldBeNonNull("valueLoc"); >+shouldBe("gl.getProgramParameter(prog, gl.ACTIVE_UNIFORMS)", "1"); >+var activeUniform = gl.getActiveUniform(prog, 0); >+shouldBeNonNull("activeUniform"); >+shouldBe("activeUniform.type", "gl.FLOAT"); >+shouldBe("activeUniform.size", "1"); >+shouldBe("activeUniform.name", "'value01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'"); >+gl.uniform1f(valueLoc, 1.0); >+drawAndCheckPixels(gl); >+shouldBe("gl.getError()", "gl.NO_ERROR"); >+debug(""); >+ >+debug("Test long uniform array name"); >+var gl = wtu.create3DContext("example"); >+var program = wtu.setupProgram(gl, ["vshader_uniform_array", "fshader_uniform_array"], ["vPosition"]); >+shouldBeNonNull("gl"); >+shouldBe("gl.getError()", "gl.NO_ERROR"); >+var prog = gl.getParameter(gl.CURRENT_PROGRAM); >+shouldBeNonNull("prog"); >+var redLoc = gl.getUniformLocation(prog, "color01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567[0]"); >+shouldBeNonNull("redLoc"); >+var greenLoc = gl.getUniformLocation(prog, "color01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567[1]"); >+shouldBeNonNull("greenLoc"); >+shouldBe("gl.getProgramParameter(prog, gl.ACTIVE_UNIFORMS)", "1"); >+var activeUniform = gl.getActiveUniform(prog, 0); >+shouldBeNonNull("activeUniform"); >+shouldBe("activeUniform.type", "gl.FLOAT"); >+shouldBe("activeUniform.size", "2"); >+shouldBe("activeUniform.name", "'color01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567[0]'"); >+gl.uniform1f(redLoc, 1.0); >+gl.uniform1f(greenLoc, 0.0); >+drawAndCheckPixels(gl); >+shouldBe("gl.getError()", "gl.NO_ERROR"); >+debug(""); >+ >+debug("Test long varying name"); >+var gl = wtu.create3DContext("example"); >+var program = wtu.setupProgram(gl, ["vshader_varying", "fshader_varying"], ["vPosition"]); >+shouldBeNonNull("gl"); >+shouldBe("gl.getError()", "gl.NO_ERROR"); >+var prog = gl.getParameter(gl.CURRENT_PROGRAM); >+shouldBeNonNull("prog"); >+drawAndCheckPixels(gl); >+shouldBe("gl.getError()", "gl.NO_ERROR"); >+debug(""); >+ >+debug("Test long local variable name"); >+var gl = wtu.create3DContext("example"); >+var program = wtu.setupProgram(gl, ["vshader_varying", "fshader_varying"], ["vPosition"]); >+shouldBeNonNull("gl"); >+shouldBe("gl.getError()", "gl.NO_ERROR"); >+var prog = gl.getParameter(gl.CURRENT_PROGRAM); >+shouldBeNonNull("prog"); >+drawAndCheckPixels(gl); >+shouldBe("gl.getError()", "gl.NO_ERROR"); >+debug(""); >+ >+debug("Test long attribute name"); >+var gl = wtu.create3DContext("example"); >+var program = wtu.setupProgram(gl, ["vshader_attrib", "fshader_attrib"], ["vPosition0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456"]); >+shouldBeNonNull("gl"); >+shouldBe("gl.getError()", "gl.NO_ERROR"); >+var prog = gl.getParameter(gl.CURRENT_PROGRAM); >+shouldBeNonNull("prog"); >+shouldBe("gl.getProgramParameter(prog, gl.ACTIVE_ATTRIBUTES)", "1"); >+var activeAttrib = gl.getActiveAttrib(prog, 0); >+shouldBeNonNull("activeAttrib"); >+shouldBe("activeAttrib.size", "1"); >+shouldBe("activeAttrib.type", "gl.FLOAT_VEC3"); >+shouldBe("activeAttrib.name", "'vPosition0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456'"); >+drawAndCheckPixels(gl); >+shouldBe("gl.getError()", "gl.NO_ERROR"); >+debug(""); >+ >+function drawAndCheckPixels(gl) >+{ >+ var vertexObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ 0,0.5,0, -0.5,-0.5,0, 0.5,-0.5,0 ]), gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(0); >+ gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+ >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ gl.drawArrays(gl.TRIANGLES, 0, 3); >+ >+ // Test several locations >+ // First line should be all black >+ wtu.checkCanvasRect(gl, 0, 0, 50, 1, [0, 0, 0, 0]); >+ >+ // Line 15 should be magenta for at least 10 pixels starting 20 pixels in >+ wtu.checkCanvasRect(gl, 20, 15, 10, 1, [255, 0, 255, 255]); >+ >+ // Last line should be all black >+ wtu.checkCanvasRect(gl, 0, 49, 50, 1, [0, 0, 0, 0]); >+} >+ >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/glsl-vertex-branch.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/glsl-vertex-branch.html >new file mode 100644 >index 00000000000..b790a89b225 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/glsl-vertex-branch.html >@@ -0,0 +1,149 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL function nodes Test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+ >+<script id="vshaderNoBranch" type="x-shader/x-vertex"> >+attribute vec3 aPosition; >+uniform float redIntensity; >+ >+varying vec4 vColor; >+ >+float MADBug(float paramValue) { >+ float localVar = 1.0; >+ return 0.25 * ceil(localVar) + paramValue; >+} >+ >+void main(void) { >+ gl_Position = vec4(aPosition, 1.0); >+ vColor = vec4(MADBug(redIntensity), 0., 0., 1.); >+} >+</script> >+ >+<script id="vshaderBranch" type="x-shader/x-vertex"> >+attribute vec3 aPosition; >+uniform float redIntensity; >+ >+varying vec4 vColor; >+ >+float MADBug(float paramValue) { >+ float localVar = 1.0; >+ return 0.25 * ceil(localVar) + paramValue; >+} >+ >+void main(void) { >+ float condition = 42.; >+ if (condition == 0.) {} >+ gl_Position = vec4(aPosition, 1.0); >+ vColor = vec4(MADBug(redIntensity), 0., 0., 1.); >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+ >+varying vec4 vColor; >+void main() >+{ >+ gl_FragColor = vColor; >+} >+</script> >+</head> >+<body> >+<canvas id="canvasNoBranch" width="50" height="50"></canvas> >+<canvas id="canvasBranch" width="50" height="50"></canvas> >+<div id="description">This tests against a Mac driver bug related to branches >+ inside of Vertex Shaders.</div> >+<div id="console"></div> >+<script> >+"use strict"; >+var width = 50; >+var height = 50; >+var wtu = WebGLTestUtils; >+ >+function drawAndRead(canvasID, vshaderID, buffer) >+{ >+ var gl = wtu.create3DContext(canvasID); >+ var program = wtu.setupProgram(gl, [vshaderID, "fshader"], ["aPosition"]); >+ var vertexObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ 0,0.5,0, -1,-1,0, 1,-1,0 ]), gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(0); >+ gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+ >+ var loc = gl.getUniformLocation(program, "redIntensity"); >+ gl.uniform1f(loc, 0.75); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ gl.drawArrays(gl.TRIANGLES, 0, 3); >+ gl.readPixels(0, 0, width, height, gl.RGBA, gl.UNSIGNED_BYTE, buffer); >+ if (gl.getError() != gl.NO_ERROR) >+ return false; >+ return true; >+} >+ >+function compareRendering(buffer1, buffer2, tol) >+{ >+ for (var i = 0; i < width * height * 4; ++i) { >+ if (Math.abs(buffer1[i] - buffer2[i]) > tol) >+ return false; >+ } >+ return true; >+} >+ >+function init() >+{ >+ description("tests vertex shader with branch"); >+ >+ var bufBranch = new Uint8Array(width * height * 4); >+ var bufNoBranch = new Uint8Array(width * height * 4); >+ >+ if (drawAndRead("canvasBranch", "vshaderBranch", bufBranch) == false || >+ drawAndRead("canvasNoBranch", "vshaderNoBranch", bufNoBranch) == false) { >+ testFailed("Setup failed"); >+ } else { >+ if (compareRendering(bufBranch, bufNoBranch, 4) == false) >+ testFailed("Rendering results are different"); >+ else >+ testPassed("Rendering results are the same"); >+ } >+} >+ >+init(); >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/include.vs b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/include.vs >new file mode 100644 >index 00000000000..50970e6ccfe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/include.vs >@@ -0,0 +1,4 @@ >+// Do not delete! >+// Needed to help glsl-conformance tests. >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/large-loop-compile.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/large-loop-compile.html >new file mode 100644 >index 00000000000..f264b08a4ce >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/large-loop-compile.html >@@ -0,0 +1,193 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+attribute vec2 position; >+ >+void main(){ >+ gl_Position = vec4(position, 0.0, 1.0); >+} >+</script> >+<script id="fragmentShader" type="text/something-not-javascript"> >+precision mediump float; >+uniform sampler2D source; >+ >+mat3 front = mat3( >+ 1.0, 0.0, 0.0, >+ 0.0, 1.0, 0.0, >+ 0.0, 0.0, 1.0 >+); >+ >+mat3 back = mat3( >+ -1.0, 0.0, 0.0, >+ 0.0, 1.0, 0.0, >+ 0.0, 0.0, -1.0 >+); >+ >+mat3 left = mat3( >+ 0.0, 0.0, -1.0, >+ 0.0, 1.0, 0.0, >+ 1.0, 0.0, 0.0 >+); >+ >+mat3 right = mat3( >+ 0.0, 0.0, 1.0, >+ 0.0, 1.0, 0.0, >+ -1.0, 0.0, 0.0 >+); >+ >+mat3 up = mat3( >+ 1.0, 0.0, 0.0, >+ 0.0, 0.0, 1.0, >+ 0.0, -1.0, 0.0 >+); >+ >+mat3 down = mat3( >+ 1.0, 0.0, 0.0, >+ 0.0, 0.0, -1.0, >+ 0.0, 1.0, 0.0 >+); >+ >+float coefficient(vec3 normal){ >+ int index = int(gl_FragCoord.x); >+ float x = normal.x; >+ float y = normal.y; >+ float z = normal.z; >+ >+ if(index==0){ >+ return 1.0; >+ } >+ else if(index==1){ >+ return y; >+ } >+ else if(index==2){ >+ return z; >+ } >+ else if(index==3){ >+ return x; >+ } >+ else if(index==4){ >+ return x*y; >+ } >+ else if(index==5){ >+ return y*z; >+ } >+ else if(index==6){ >+ return 3.0*z*z - 1.0; >+ } >+ else if(index==7){ >+ return x*z; >+ } >+ else{ >+ return x*x - y*y; >+ } >+} >+ >+vec3 sample(float cidx, mat3 side){ >+ vec3 result = vec3(0.0); >+ float divider = 0.0; >+ >+ for(int i=0; i<256; i++){ >+ float x = mod(float(i), 16.0); >+ float y = float(i/16); >+ vec2 texcoord = (vec2(x+cidx*16.0, y+floor(gl_FragCoord.y)*16.0)+0.5)/6.0; >+ vec2 sidecoord = ((vec2(x,y)+vec2(0.5, 0.5))/vec2(16.0))*2.0-1.0; >+ vec3 normal = normalize(vec3(sidecoord, -1.0)); >+ vec3 texel = texture2D(source, texcoord).rgb; >+ result += coefficient(side*normal) * texel * -normal.z; >+ divider += -normal.z; >+ } >+ return result/divider; >+} >+ >+void main(){ >+ vec3 result = ( >+ //sample(0.0, front) + >+ //sample(1.0, back) + >+ sample(2.0, left) + >+ sample(3.0, right) + >+ sample(4.0, up) + >+ sample(5.0, down) >+ )/6.0; >+ gl_FragColor = vec4(result, 1.0); >+} >+</script> >+<script> >+"use strict"; >+var receivedContextLost = false; >+description("Ensures that compilation of a large loop completes in a reasonable period of time and does not cause the WebGL context to be lost"); >+var wtu = WebGLTestUtils; >+var canvas = document.createElement('canvas'); >+canvas.width = 32; >+canvas.height = 32; >+canvas.addEventListener("webglcontextlost", function(e) { >+ testFailed("context was lost during shader compilation or linking"); >+ receivedContextLost = true; >+}); >+var gl = wtu.create3DContext(canvas); >+if (!gl) { >+ testFailed("context does not exist"); >+ finishTest(); >+} else { >+ var startTime = Date.now(); >+ wtu.setupProgram(gl, ["vertexShader", "fragmentShader"], undefined, undefined, true); >+ gl.clearColor(0.0, 1.0, 0.0, 1.0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "should be green", 0); >+ var endTime = Date.now(); >+ >+ // Delay for some period to increase chances that context lost event will be delivered. >+ setTimeout(function() { >+ if (!receivedContextLost) { >+ testPassed("Large loop compiled and linked without terminating the WebGL context"); >+ if (endTime - startTime < 5000) { >+ testPassed("Shader compilation completed in a reasonable amount of time"); >+ } else { >+ testFailed("Shader compilation took an unreasonably long time"); >+ } >+ } >+ finishTest(); >+ }, 500); >+} >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/local-variable-shadowing-outer-function.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/local-variable-shadowing-outer-function.html >new file mode 100644 >index 00000000000..744d9799bdb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/local-variable-shadowing-outer-function.html >@@ -0,0 +1,80 @@ >+<!-- >+ >+/* >+** Copyright (c) 2017 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Test - Local Variable Shadowing Outer Function</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader must succeed >+attribute vec3 vertex; >+varying float interp; >+void main() { >+ interp = vertex.x; >+ gl_Position = vec4(vertex, 1.0); >+} >+</script> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// local variable shadowing outer function definition must succeed >+precision mediump float; >+ >+varying float interp; >+ >+float rsquared(float radius) >+{ >+ return radius * radius; >+} >+ >+void some_computation(float radius, out float bsdf) { >+ bsdf = 0.0; >+ float rsquared = rsquared(radius); >+ bsdf += rsquared; >+} >+ >+void main() { >+ float comp; >+ some_computation(interp, comp); >+ gl_FragColor = vec4(comp, 0.0, 0.0, 1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/non-ascii-comments.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/non-ascii-comments.vert.html >new file mode 100644 >index 00000000000..a817654f530 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/non-ascii-comments.vert.html >@@ -0,0 +1,59 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// Non ascii comments in source should succeed >+// ±êÍ`rbhhÅÍȢŷB >+// s@h@m@`rbhh >+/* >+ * s@h@m@`rbhh >+ */ >+void main() { >+ gl_Position = vec4(1,1,1,1); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/non-ascii.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/non-ascii.vert.html >new file mode 100644 >index 00000000000..61428b0cbb4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/non-ascii.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// Non ascii data in source should fail >+// See GLSL ES Spec 1.0.17 section 3.1 and 3.2 >+// ±êÍ`rbhhÅÍȢŷB >+// s@h@m@`rbhh >+uniform mat4 m`rbhh; >+void main() { >+ gl_Position = vec4(1,1,1,1); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/re-compile-re-link.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/re-compile-re-link.html >new file mode 100644 >index 00000000000..aa131a671d7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/re-compile-re-link.html >@@ -0,0 +1,171 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Re-Compile and Re-link Shader conformance test.</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="4" height="4" style="width: 40px; height: 30px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute float column; >+attribute float height; >+uniform float position; >+void main() { >+ gl_Position = vec4(mod(column - position, 1.0) * 2.0 - 1.0, height, 0, 1); >+} >+</script> >+ >+<script id="fshader1" type="x-shader/x-fragment"> >+precision mediump float; >+void main() { >+ gl_FragColor = vec4(1,0,0,1); >+} >+</script> >+<script id="fshader2" type="x-shader/x-fragment"> >+precision mediump float; >+uniform float foobar; >+void main() { >+ gl_FragColor = vec4(1,0,foobar,1); >+} >+</script> >+<script id="vshaderB" type="not-js"> >+attribute vec2 position; >+varying vec2 v_texCoord; >+void main() { >+ gl_Position = vec4(position, 0, 1); >+ v_texCoord = vec2(position * 0.5 + 0.5); >+} >+</script> >+<script id="fshaderB" type="not-js"> >+precision mediump float; >+varying vec2 v_texCoord; >+uniform sampler2D tex; >+void main() { >+ gl_FragColor = texture2D(tex, v_texCoord); >+} >+</script> >+ >+<script> >+"use strict"; >+description(document.title); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+ >+var vsSource = document.getElementById("vshader").text; >+var fs1Source = document.getElementById("fshader1").text; >+var fs2Source = document.getElementById("fshader2").text; >+ >+var vsSourceB = document.getElementById("vshaderB").text; >+var fsSourceB = document.getElementById("fshaderB").text; >+ >+var vShader = gl.createShader(gl.VERTEX_SHADER); >+var fShader = gl.createShader(gl.FRAGMENT_SHADER); >+ >+var vShaderB = gl.createShader(gl.VERTEX_SHADER); >+var fShaderB = gl.createShader(gl.FRAGMENT_SHADER); >+ >+var program = gl.createProgram(); >+var programB = gl.createProgram(); >+ >+gl.attachShader(program, vShader); >+gl.attachShader(program, fShader); >+ >+gl.attachShader(programB, vShaderB); >+gl.attachShader(programB, fShaderB); >+ >+var success; >+var shader; >+ >+function checkShaderStatus(s) { >+ shader = s; >+ shouldBeTrue("success = gl.getShaderParameter(shader, gl.COMPILE_STATUS)"); >+ if (!success) { >+ debug("error: " + gl.getShaderInfoLog()); >+ } >+} >+ >+var prg; >+function checkProgramStatus(p) { >+ prg = p; >+ shouldBeTrue("success = gl.getProgramParameter(prg, gl.LINK_STATUS)"); >+ if (!success) { >+ debug("error: " + gl.getProgramInfoLog(prg)); >+ } >+} >+ >+for (var i = 0; i < 10; ++i) { >+ gl.shaderSource(vShader, vsSource); >+ gl.compileShader(vShader); >+ checkShaderStatus(vShader) >+ gl.shaderSource(fShader, fs1Source); >+ gl.compileShader(fShader); >+ checkShaderStatus(fShader) >+ >+ gl.linkProgram(program); >+ checkProgramStatus(program) >+ gl.useProgram(program); >+ >+ gl.shaderSource(vShaderB, vsSourceB); >+ gl.compileShader(vShaderB); >+ checkShaderStatus(vShaderB) >+ gl.shaderSource(fShaderB, fsSourceB); >+ gl.compileShader(fShaderB); >+ checkShaderStatus(fShaderB) >+ >+ gl.linkProgram(programB); >+ checkProgramStatus(programB) >+ >+ gl.useProgram(programB); >+} >+ >+for (var i = 0; i < 10; ++i) { >+ // Now change the fragment shader >+ gl.shaderSource(fShader, fs2Source); >+ gl.compileShader(fShader); >+ checkShaderStatus(fShader) >+ >+ // And re-link >+ gl.linkProgram(program); >+ checkProgramStatus(program) >+} >+ >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors"); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/sampler-operand.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/sampler-operand.html >new file mode 100644 >index 00000000000..1512f1ff9f3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/sampler-operand.html >@@ -0,0 +1,72 @@ >+<!-- >+ >+/* >+** Copyright (c) 2017 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests - sampler operands</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+// ESSL(1.00, 3.00, 3.10) section 4.1.7 >+// Except for array indexing, structure field selection, and >+// parentheses, samplers are not allowed to be operands in expressions. >+</script> >+ >+<script id="samplerAdding" type="x-shader/x-fragment"> >+// This covers an ANGLE bug. >+// See https://bugs.chromium.org/p/angleproject/issues/detail?id=2028. >+uniform sampler2D s1; >+uniform sampler2D s2; >+void main() { >+ s1 + s2; >+} >+</script> >+ >+<script> >+"use strict"; >+GLSLConformanceTester.runTests([ >+ { fShaderId: 'samplerAdding', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'Adding on samplers should fail' >+ }, >+]); >+ >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/sequence-operator-returns-constant.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/sequence-operator-returns-constant.html >new file mode 100644 >index 00000000000..bd73f224ad8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/sequence-operator-returns-constant.html >@@ -0,0 +1,81 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Sequence operator returns constant test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshader-const-expression" type="x-shader/x-fragment"> >+precision mediump float; >+void main() >+{ >+ // RHS should be a constant expression (a compile-time constants) stated in section 4.3.2 from GLESSL 1.0.17 >+ const float a = (0.0, 1.0); >+} >+</script> >+<script id="fshader-non-const-expression" type="x-shader/x-fragment"> >+precision mediump float; >+void main() >+{ >+ float a[(2, 3)]; >+} >+</script> >+<script> >+"use strict"; >+description("Checks sequence operators returning constants and can be used as an array size."); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(); >+ >+GLSLConformanceTester.runTests([ >+{ fShaderId: 'fshader-const-expression', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Sequence operator can return a constant expression", >+}, >+{ fShaderId: 'fshader-non-const-expression', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Sequence operator return value can be used as array size", >+}, >+]); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-precision-format-obeyed.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-precision-format-obeyed.html >new file mode 100644 >index 00000000000..dbfdd3c7d68 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-precision-format-obeyed.html >@@ -0,0 +1,104 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshaderWithHighPrecision" type="text/something-not-javascript"> >+precision highp float; >+uniform vec4 constantColor; >+ >+void main() >+{ >+ gl_FragColor = constantColor; >+} >+</script> >+<script id="fshaderWhichCompilesWithHighp" type="text/something-not-javascript"> >+#ifdef GL_FRAGMENT_PRECISION_HIGH >+// Something which compiles >+#else >+somethingWhichDoesNotCompile(); >+#endif >+ >+void main() >+{ >+ gl_FragColor = vec4(0, 0, 0, 1); >+} >+</script> >+<script id="fshaderWhichCompilesWithoutHighp" type="text/something-not-javascript"> >+#ifndef GL_FRAGMENT_PRECISION_HIGH >+// Something which compiles >+#else >+somethingWhichDoesNotCompile(); >+#endif >+ >+void main() >+{ >+ gl_FragColor = vec4(0, 0, 0, 1); >+} >+</script> >+<script> >+"use strict"; >+description("Checks that getShaderPrecisionFormat's return value matches whether highp is supported in fragment shaders."); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(); >+var precision = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT); >+var highpSupported = (precision.rangeMin >= 62 && precision.rangeMax >= 62 && precision.precision >= 16); >+debug("highp is" + (highpSupported ? "" : " not") + " supported in fragment shaders"); >+ >+GLSLConformanceTester.runTests([ >+{ >+ fShaderId: 'fshaderWithHighPrecision', >+ fShaderSuccess: highpSupported, >+ linkSuccess: highpSupported, >+ passMsg: "getShaderPrecisionFormat's results agree with highp support in fragment shaders", >+}, >+{ >+ fShaderId: highpSupported ? 'fshaderWhichCompilesWithHighp' : 'fshaderWhichCompilesWithoutHighp', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "getShaderPrecisionFormat's results agree with definition of GL_FRAGMENT_PRECISION_HIGH", >+}, >+]); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-struct-scope.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-struct-scope.html >new file mode 100644 >index 00000000000..37340c5a1d5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-struct-scope.html >@@ -0,0 +1,252 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!-- author: Jamie Madill (jmadill at chromium) --> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Struct Scope Test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+ >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script id="shader-vs-1" type="x-shader/x-vertex"> >+void main(void) { >+ >+ gl_Position = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ { >+ struct T { >+ int v1; >+ }; >+ >+ T x; >+ gl_Position.x += float(x.v1); >+ } >+ >+ { >+ struct T { >+ float v2; >+ }; >+ >+ T x; >+ gl_Position.x += x.v2; >+ } >+ >+} >+</script> >+ >+<script id="shader-vs-2" type="x-shader/x-vertex"> >+void main(void) { >+ >+ gl_Position = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ struct T { >+ int v1; >+ }; >+ >+ T x; >+ gl_Position.x += float(x.v1); >+ >+ { >+ struct T { >+ float v2; >+ }; >+ >+ T x; >+ gl_Position.x += x.v2; >+ } >+ >+} >+</script> >+ >+<script id="shader-vs-3" type="x-shader/x-vertex"> >+void main(void) { >+ >+ gl_Position = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ { >+ struct T { >+ int v1; >+ }; >+ >+ T x; >+ gl_Position.x += float(x.v1); >+ } >+ >+ struct T { >+ float v2; >+ }; >+ >+ T x; >+ gl_Position.x += x.v2; >+} >+</script> >+ >+<script id="shader-vs-bad" type="x-shader/x-vertex"> >+void main(void) { >+ >+ gl_Position = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ struct T { >+ int v1; >+ }; >+ >+ T x; >+ gl_Position.x += float(x.v1); >+ >+ struct T { >+ float v2; >+ }; >+ >+ T y; >+ gl_Position.x += y.v2; >+} >+</script> >+ >+<script id="shader-vs-anglebug" type="x-shader/x-vertex"> >+ >+struct T_0 { >+ int v1; >+}; >+ >+void main(void) { >+ >+ gl_Position = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ struct T { >+ float v2; >+ }; >+ >+ T_0 x; >+ gl_Position.x += float(x.v1); >+ >+ T y; >+ gl_Position.x += y.v2; >+} >+</script> >+ >+<script id="shader-vs-masked-struct-variable" type="x-shader/x-vertex"> >+ >+struct T { >+ float f; >+}; >+ >+void main(void) { >+ >+ T a; >+ >+ gl_Position = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ struct T { >+ float q; >+ }; >+ >+ gl_Position.x += a.f; >+ >+ T b; >+ gl_Position.x += b.q; >+} >+</script> >+ >+<script id="shader-fs" type="x-shader/x-fragment"> >+precision mediump float; >+void main(void) { >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+} >+</script> >+ >+<script> >+"use strict"; >+description("Testing struct definition scope"); >+ >+var wtu = WebGLTestUtils; >+GLSLConformanceTester.runTests([ >+ { >+ vShaderId: "shader-vs-1", >+ vShaderSuccess: true, >+ fShaderId: "shader-fs", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Two structs defined within non-overlapping scopes should be able to use the same name", >+ }, >+ { >+ vShaderId: "shader-vs-2", >+ vShaderSuccess: true, >+ fShaderId: "shader-fs", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "A struct defined inside a scope overrides a struct defined in a outer scope with the same name", >+ }, >+ { >+ vShaderId: "shader-vs-3", >+ vShaderSuccess: true, >+ fShaderId: "shader-fs", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "A struct can use the same name of another out-of-scope struct", >+ }, >+ { >+ vShaderId: "shader-vs-bad", >+ vShaderSuccess: false, >+ fShaderId: "shader-fs", >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "A struct can't be defined with the same name as another struct defined in the same scope", >+ }, >+ { >+ vShaderId: "shader-vs-anglebug", >+ vShaderSuccess: true, >+ fShaderId: "shader-fs", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Structs with appended underscored numbers don't cause link errors (ANGLE bug)", >+ }, >+ { >+ vShaderId: "shader-vs-masked-struct-variable", >+ vShaderSuccess: true, >+ fShaderId: "shader-fs", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Variables of masked outer scope struct work with inner scope struct", >+ }, >+]); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-uniform-packing-restrictions.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-uniform-packing-restrictions.html >new file mode 100644 >index 00000000000..87d44927f5a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-uniform-packing-restrictions.html >@@ -0,0 +1,272 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL uniform packing restrctions Conformance Test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="example" width="2" height="2"> </canvas> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+void main() >+{ >+ gl_Position = a_position; >+} >+</script> >+<script id="fshader" type="x-shader/x-vertex"> >+precision mediump float; >+varying vec4 v_varying; >+void main() >+{ >+ gl_FragColor = v_varying; >+} >+</script> >+<script id="vshaderArrayTest" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+varying vec4 v_varying; >+uniform $(type) u_uniform[$(numTestType)]; >+void main() >+{ >+ v_varying = $(result); >+ gl_Position = a_position; >+} >+</script> >+<script id="fshaderArrayTest" type="x-shader/x-fragment"> >+precision mediump float; >+uniform $(type) u_uniform[$(numTestType)]; >+void main() >+{ >+ gl_FragColor = $(result); >+} >+</script> >+<script id="vshaderUniformTest" type="x-shader/x-fragment"> >+attribute vec4 a_position; >+varying vec4 v_varying; >+$(uniforms) >+void main() >+{ >+ $(code) >+ v_varying = $(result); >+ gl_Position = a_position; >+} >+</script> >+<script id="fshaderUniformTest" type="x-shader/x-fragment"> >+precision mediump float; >+$(uniforms) >+void main() >+{ >+ $(code) >+ gl_FragColor = $(result); >+} >+</script> >+<script> >+"use strict"; >+description(); >+debug(""); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+ >+var uniformTypes = [ >+ { type: "bool", componentsPerRow: 1, rows: 1, fType: "float", uniToF: "float(u_uniform$(id)$(index))", fToVec4: "vec4($(f), 0, 0, 0)"}, >+ { type: "float", componentsPerRow: 1, rows: 1, fType: "float", uniToF: "u_uniform$(id)$(index)", fToVec4: "vec4($(f), 0, 0, 0)"}, >+ { type: "int", componentsPerRow: 1, rows: 1, fType: "float", uniToF: "float(u_uniform$(id)$(index))", fToVec4: "vec4($(f), 0, 0, 0)"}, >+ { type: "vec2", componentsPerRow: 2, rows: 1, fType: "vec2", uniToF: "u_uniform$(id)$(index)", fToVec4: "vec4($(f), 0, 0)"}, >+ { type: "ivec2", componentsPerRow: 2, rows: 1, fType: "vec2", uniToF: "vec2(u_uniform$(id)$(index))", fToVec4: "vec4($(f), 0, 0)"}, >+ { type: "bvec2", componentsPerRow: 2, rows: 1, fType: "vec2", uniToF: "vec2(u_uniform$(id)$(index))", fToVec4: "vec4($(f), 0, 0)"}, >+ { type: "vec3", componentsPerRow: 3, rows: 1, fType: "vec3", uniToF: "u_uniform$(id)$(index)", fToVec4: "vec4($(f), 0)"}, >+ { type: "ivec3", componentsPerRow: 3, rows: 1, fType: "vec3", uniToF: "vec3(u_uniform$(id)$(index))", fToVec4: "vec4($(f), 0)"}, >+ { type: "bvec3", componentsPerRow: 3, rows: 1, fType: "vec3", uniToF: "vec3(u_uniform$(id)$(index))", fToVec4: "vec4($(f), 0)"}, >+ { type: "vec4", componentsPerRow: 4, rows: 1, fType: "vec4", uniToF: "u_uniform$(id)$(index)", fToVec4: "$(f)"}, >+ { type: "ivec4", componentsPerRow: 4, rows: 1, fType: "vec4", uniToF: "vec4(u_uniform$(id)$(index))", fToVec4: "$(f)"}, >+ { type: "bvec4", componentsPerRow: 4, rows: 1, fType: "vec4", uniToF: "vec4(u_uniform$(id)$(index))", fToVec4: "$(f)"}, >+// Yes, the spec says mat2 takes 4 columns, 2 rows. >+ { type: "mat2", componentsPerRow: 4, rows: 2, fType: "vec2", uniToF: "vec2(u_uniform$(id)$(index)[0])", fToVec4: "vec4($(f), 0, 0)"}, >+ { type: "mat3", componentsPerRow: 3, rows: 3, fType: "vec3", uniToF: "vec3(u_uniform$(id)$(index)[0])", fToVec4: "vec4($(f), 0)"}, >+ { type: "mat4", componentsPerRow: 4, rows: 4, fType: "vec4", uniToF: "vec4(u_uniform$(id)$(index)[0])", fToVec4: "$(f)"}, >+// Samplers generally have more restrictive limits. >+// { type: "sampler2D", componentsPerRow: 1, rows: 1, code: "vec4(texture2D(u_uniform[$(index)], vec2(0, 0)))", }, >+// { type: "samplerCube", componentsPerRow: 1, rows: 1, code: "vec4(textureCube(u_uniform[$(index)], vec3(0, 0, 0)))", }, >+]; >+ >+var vBaseSource = wtu.getScript("vshader"); >+var fBaseSource = wtu.getScript("fshader"); >+var vArrayTestSource = wtu.getScript("vshaderArrayTest"); >+var fArrayTestSource = wtu.getScript("fshaderArrayTest"); >+var vUniformTestSource = wtu.getScript("vshaderUniformTest"); >+var fUniformTestSource = wtu.getScript("fshaderUniformTest"); >+ >+var tests = []; >+var shaderTypes = [ >+ { type: "vertex", >+ // For tests that expect failure which shader might fail. >+ vertExpectation: false, >+ fragExpectation: true, >+ vertArrayTest: vArrayTestSource, >+ fragArrayTest: fBaseSource, >+ vertUniformTest: vUniformTestSource, >+ fragUniformTest: fBaseSource, >+ maxVectors: gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS), >+ minVectors: 127, // GLSL ES 1.0.17 Appendix A.7 and A.8. Reserve one row for constants in the code, hence 128 - 1. >+ }, >+ { type: "fragment", >+ // For tests that expect failure which shader might fail. >+ vertExpectation: true, >+ fragExpectation: false, >+ vertArrayTest: vBaseSource, >+ fragArrayTest: fArrayTestSource, >+ vertUniformTest: vBaseSource, >+ fragUniformTest: fUniformTestSource, >+ maxVectors: gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS), >+ minVectors: 15, // GLSL ES 1.0.17 Appendix A.8 - minimum value of gl_maxFragmentUniformVectors is 16. Again, reserve a row for constants. >+ }, >+]; >+for (var ss = 0; ss < shaderTypes.length; ++ss) { >+ var shaderType = shaderTypes[ss]; >+ debug("max " + shaderType.type + ": " + shaderType.maxVectors); >+ for (var ii = 0; ii < uniformTypes.length; ++ii) { >+ var info = uniformTypes[ii]; >+ wtu.log("checking: " + info.type); >+ // Compute the maximum amount of this type allowed in a single array. >+ var maxInArray = Math.floor(shaderType.maxVectors / info.rows); >+ // Compute the minimum required to work in a single array. >+ var minVars = Math.floor(shaderType.minVectors / info.rows); >+ // Compute the maximum allowed as single elements >+ var maxPerRow = Math.floor(4 / info.componentsPerRow); >+ var maxPacked = Math.floor(shaderType.maxVectors * maxPerRow / info.rows); >+ >+ // Test array[1] of the type >+ var uniToF = wtu.replaceParams(info.uniToF, {id: "", index: "[0]"}); >+ var vec4 = wtu.replaceParams(info.fToVec4, {f: uniToF}); >+ tests.push({ >+ vShaderSource: wtu.replaceParams(shaderType.vertArrayTest, {numTestType: 1, result: vec4}, info), >+ vShaderSuccess: true, >+ fShaderSource: wtu.replaceParams(shaderType.fragArrayTest, {numTestType: 1, result: vec4}, info), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: shaderType.type + " shader with uniform array of " + info.type + " with 1 element should succeed", >+ }); >+ >+ // Note: We can't test an array filling all uniform space as actual GL drivers are >+ // only required to be able to do the minimum number. After that it can fail for >+ // multiple reasons, including uniform registers being reserved for the implementation's >+ // own use. Constants also take up uniform registers. >+ >+ // Test required number of uniforms >+ var uniToF = wtu.replaceParams(info.uniToF, {id: "", index: "[" + (minVars - 1) + "]"}); >+ var vec4 = wtu.replaceParams(info.fToVec4, {f: uniToF}); >+ tests.push({ >+ vShaderSource: wtu.replaceParams(shaderType.vertArrayTest, {numTestType: minVars, result: vec4}, info), >+ vShaderSuccess: true, >+ fShaderSource: wtu.replaceParams(shaderType.fragArrayTest, {numTestType: minVars, result: vec4}, info), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: shaderType.type + " shader with uniform array of " + info.type + " with " + minVars + " elements (the minimum required) should succeed", >+ }); >+ >+ // Test array[max + 1] accessing last element. WebGL requires this to fail. >+ var uniToF = wtu.replaceParams(info.uniToF, {id: "", index: "[" + maxInArray + "]"}); >+ var vec4 = wtu.replaceParams(info.fToVec4, {f: uniToF}); >+ tests.push({ >+ vShaderSource: wtu.replaceParams(shaderType.vertArrayTest, {numTestType: maxInArray + 1, result: vec4}, info), >+ vShaderSuccess: shaderType.vertExpectation, >+ fShaderSource: wtu.replaceParams(shaderType.fragArrayTest, {numTestType: maxInArray + 1, result: vec4}, info), >+ fShaderSuccess: shaderType.fragExpectation, >+ linkSuccess: false, >+ passMsg: shaderType.type + " shader with uniform array of " + info.type + " with " + (maxInArray + 1) + " elements (one past maximum) accessing last element should fail", >+ }); >+ >+ // Test array[max + 1] accessing first element. WebGL requires this to fail but ES allows truncating array. >+ var uniToF = wtu.replaceParams(info.uniToF, {id: "", index: "[0]"}); >+ var vec4 = wtu.replaceParams(info.fToVec4, {f: uniToF}); >+ tests.push({ >+ vShaderSource: wtu.replaceParams(shaderType.vertArrayTest, {numTestType: maxInArray + 1, result: vec4}, info), >+ vShaderSuccess: shaderType.vertExpectation, >+ fShaderSource: wtu.replaceParams(shaderType.fragArrayTest, {numTestType: maxInArray + 1, result: vec4}, info), >+ fShaderSuccess: shaderType.fragExpectation, >+ linkSuccess: false, >+ passMsg: shaderType.type + " shader with uniform array of " + info.type + " with " + (maxInArray + 1) + " elements (one past maximum) accessing first element should fail", >+ }); >+ >+ // Note: We can't test max uniforms as actual GL drivers are only required to be able >+ // to do the minimum number. After that it can fail for multiple reasons, including >+ // uniform registers being reserved for the implementation's own use or also instruction >+ // space limitations. Strictly speaking, guaranteed supported length of a shader >+ // executable is defined by the GLES2 conformance tests according to GLSL ES 1.0.17 >+ // Appendix A.2. This does not give us an exact limit: this test only aims to fit within >+ // instruction space limits imposed by existing GLES2 compliant hardware. >+ >+ var generateCode = function(numVars) { >+ var uniforms = []; >+ var sumTerms = []; >+ for (var uu = 0; uu < numVars; ++uu) { >+ uniforms.push(" uniform " + info.type + " u_uniform" + uu + ";"); >+ sumTerms.push(wtu.replaceParams(info.uniToF, {id: uu, index: ""})); >+ } >+ return { >+ uniforms: uniforms.join("\n"), >+ code: info.fType + " sum = " + sumTerms.join(" + \n ") + ";", >+ result: wtu.replaceParams(info.fToVec4, {f: 'sum'}) >+ }; >+ }; >+ >+ // Test max+1 uniforms of type. >+ tests.push({ >+ vShaderSource: wtu.replaceParams(shaderType.vertUniformTest, generateCode(maxPacked + 1), info), >+ vShaderSuccess: shaderType.vertExpectation, >+ fShaderSource: wtu.replaceParams(shaderType.fragUniformTest, generateCode(maxPacked + 1), info), >+ fShaderSuccess: shaderType.fragExpectation, >+ linkSuccess: false, >+ passMsg: shaderType.type + " shader with " + (maxPacked + 1) + " uniforms of " + info.type + " (one past maximum) should fail", >+ }); >+ >+ // Test required uniforms of type. >+ tests.push({ >+ vShaderSource: wtu.replaceParams(shaderType.vertUniformTest, generateCode(minVars), info), >+ vShaderSuccess: true, >+ fShaderSource: wtu.replaceParams(shaderType.fragUniformTest, generateCode(minVars), info), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: shaderType.type + " shader with " + minVars + " uniforms of " + info.type + " (the minimum required) should succeed", >+ }); >+ } >+} >+GLSLConformanceTester.runTests(tests); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-varying-packing-restrictions.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-varying-packing-restrictions.html >new file mode 100644 >index 00000000000..24cf0f0e25f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-varying-packing-restrictions.html >@@ -0,0 +1,209 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL varying packing restrictions Conformance Test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="example" width="2" height="2"> </canvas> >+<script id="vshaderArrayTest" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+varying $(type) v_varying[$(numTestType)]; >+void main() >+{ >+ gl_Position = a_position; >+ $(vcode) >+} >+</script> >+<script id="fshaderArrayTest" type="x-shader/x-fragment"> >+precision mediump float; >+varying $(type) v_varying[$(numTestType)]; >+void main() >+{ >+ gl_FragColor = $(fcode); >+} >+</script> >+<script id="vshaderVaryingTest" type="x-shader/x-fragment"> >+attribute vec4 a_position; >+$(varyings) >+void main() >+{ >+ gl_Position = a_position; >+ $(vcode) >+} >+</script> >+<script id="fshaderVaryingTest" type="x-shader/x-fragment"> >+precision mediump float; >+$(varyings) >+void main() >+{ >+ gl_FragColor = $(fcode); >+} >+</script> >+<script> >+"use strict"; >+description(); >+debug(""); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+ >+var varyingTypes = [ >+ { type: "float", componentsPerRow: 1, rows: 1, vcode: "v_varying$(id)$(index) = 1.0;", fcode: "vec4(v_varying$(id)$(index), 0, 0, 0)", }, >+ { type: "vec2", componentsPerRow: 2, rows: 1, vcode: "v_varying$(id)$(index) = vec2(0, 0);", fcode: "vec4(v_varying$(id)$(index), 0, 0)", }, >+ { type: "vec3", componentsPerRow: 3, rows: 1, vcode: "v_varying$(id)$(index) = vec3(0, 0, 0);", fcode: "vec4(v_varying$(id)$(index), 0)", }, >+ { type: "vec4", componentsPerRow: 4, rows: 1, vcode: "v_varying$(id)$(index) = vec4(0, 0, 0, 0);", fcode: "vec4(v_varying$(id)$(index))", }, >+// Yes, the spec says mat2 takes 4 columns, 2 rows. >+ { type: "mat2", componentsPerRow: 4, rows: 2, vcode: "v_varying$(id)$(index) = mat2(1.0);", fcode: "vec4(v_varying$(id)$(index)[0], 0, 0)", }, >+ { type: "mat3", componentsPerRow: 3, rows: 3, vcode: "v_varying$(id)$(index) = mat3(1.0);", fcode: "vec4(v_varying$(id)$(index)[0], 0)", }, >+ { type: "mat4", componentsPerRow: 4, rows: 4, vcode: "v_varying$(id)$(index) = mat4(1.0);", fcode: "vec4(v_varying$(id)$(index)[0])", }, >+]; >+ >+var vArrayTestSource = wtu.getScript("vshaderArrayTest"); >+var fArrayTestSource = wtu.getScript("fshaderArrayTest"); >+var vVaryingTestSource = wtu.getScript("vshaderVaryingTest"); >+var fVaryingTestSource = wtu.getScript("fshaderVaryingTest"); >+ >+var minVaryingVectors = 8; >+var maxVaryingVectors = gl.getParameter(gl.MAX_VARYING_VECTORS); >+var tests = []; >+ >+for (var ii = 0; ii < varyingTypes.length; ++ii) { >+ var info = varyingTypes[ii]; >+ wtu.log("checking: " + info.type); >+ // Compute the maximum amount of this type allowed in a single array. >+ var numVars = Math.floor(maxVaryingVectors / info.rows); >+ // Compute the minimum required to work in a single array. >+ var minVars = Math.floor(minVaryingVectors / info.rows); >+ // Compute the maximum allowed as single elements >+ var numPerRow = Math.floor(4 / info.componentsPerRow); >+ var numMax = Math.floor(maxVaryingVectors * numPerRow / info.rows); >+ >+ // Test array[1] of the type >+ var vcode = wtu.replaceParams(info.vcode, {id: "", index: "[0]"}); >+ var fcode = wtu.replaceParams(info.fcode, {id: "", index: "[0]"}); >+ tests.push({ >+ vShaderSource: wtu.replaceParams(vArrayTestSource, {numTestType: 1, vcode: vcode}, info), >+ vShaderSuccess: true, >+ fShaderSource: wtu.replaceParams(fArrayTestSource, {numTestType: 1, fcode: fcode}, info), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "shaders with varying array of " + info.type + " with 1 element should succeed", >+ }); >+ >+ // Test required number of varyings >+ var vcode = wtu.replaceParams(info.vcode, {id: "", index: "[" + (minVars - 1) + "]"}); >+ var fcode = wtu.replaceParams(info.fcode, {id: "", index: "[" + (minVars - 1) + "]"}); >+ tests.push({ >+ vShaderSource: wtu.replaceParams(vArrayTestSource, {numTestType: minVars, vcode: vcode}, info), >+ vShaderSuccess: true, >+ fShaderSource: wtu.replaceParams(fArrayTestSource, {numTestType: minVars, fcode: fcode}, info), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "shaders with varying array of " + info.type + " with " + minVars + " elements (the minimum required) should succeed", >+ }); >+ >+ // Test array[max + 1] accessing last element. WebGL requires this to fail. >+ var vcode = wtu.replaceParams(info.vcode, {id: "", index: "[" + numVars + "]"}); >+ var fcode = wtu.replaceParams(info.fcode, {id: "", index: "[" + numVars + "]"}); >+ tests.push({ >+ vShaderSource: wtu.replaceParams(vArrayTestSource, {numTestType: numVars + 1, vcode: vcode}, info), >+ vShaderSuccess: false, >+ fShaderSource: wtu.replaceParams(fArrayTestSource, {numTestType: numVars + 1, fcode: fcode}, info), >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "shaders with varying array of " + info.type + " with " + (numVars + 1) + " elements (one past maximum) accessing last element should fail", >+ }); >+ >+ // Test array[max + 1] accessing first element. WebGL requires this to fail but ES allows truncating array. >+ var vcode = wtu.replaceParams(info.vcode, {id: "", index: "[0]"}); >+ var fcode = wtu.replaceParams(info.fcode, {id: "", index: "[0]"}); >+ tests.push({ >+ vShaderSource: wtu.replaceParams(vArrayTestSource, {numTestType: numVars + 1, vcode: vcode}, info), >+ vShaderSuccess: false, >+ fShaderSource: wtu.replaceParams(fArrayTestSource, {numTestType: numVars + 1, fcode: fcode}, info), >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "shaders with varying array of " + info.type + " with " + (numVars + 1) + " elements (one past maximum) accessing first element should fail", >+ }); >+ >+ // Note: We can't test max varyings as actual GL drivers are only required to be able to >+ // do the minimum number. After that it can fail for any reason, for example running out of >+ // instruction space. >+ >+ var generateCode = function(numVars) { >+ var varyings = []; >+ var vcodes = []; >+ var fcodes = []; >+ for (var uu = 0; uu < numVars; ++uu) { >+ varyings.push(" varying " + info.type + " v_varying" + uu + ";"); >+ vcodes.push(wtu.replaceParams(info.vcode, {id: uu, index: ""})); >+ fcodes.push(wtu.replaceParams(info.fcode, {id: uu, index: ""})); >+ } >+ return { >+ varyings: varyings.join("\n"), >+ vcode: vcodes.join("\n "), >+ fcode: fcodes.join(" + \n "), >+ }; >+ }; >+ >+ // Test max+1 varyings of type. >+ tests.push({ >+ vShaderSource: wtu.replaceParams(vVaryingTestSource, generateCode(numMax + 1), info), >+ vShaderSuccess: false, >+ fShaderSource: wtu.replaceParams(fVaryingTestSource, generateCode(numMax + 1), info), >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "shaders with " + (numMax + 1) + " varyings of " + info.type + " (one past maximum) should fail", >+ }); >+ >+ // Test required varyings of type. >+ tests.push({ >+ vShaderSource: wtu.replaceParams(vVaryingTestSource, generateCode(minVars), info), >+ vShaderSuccess: true, >+ fShaderSource: wtu.replaceParams(fVaryingTestSource, generateCode(minVars), info), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "shaders with " + minVars + " varyings of " + info.type + " (the minimum required) should succeed", >+ }); >+} >+ >+GLSLConformanceTester.runTests(tests); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-define.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-define.html >new file mode 100644 >index 00000000000..9d8a4ff19a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-define.html >@@ -0,0 +1,57 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader that uses 256 character token in #define should succeed >+#define LEN_256_OK XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX >+ >+void main() >+{ >+ gl_Position = vec4(1.0, 0.0, 0.0, 1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-identifier.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-identifier.frag.html >new file mode 100644 >index 00000000000..9d3892f23eb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-256-character-identifier.frag.html >@@ -0,0 +1,126 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader256" type="text/something-not-javascript"> >+// shader that uses 256 character identifier should succeed >+precision mediump float; >+uniform float a123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345; >+void main() >+{ >+ gl_FragColor = vec4(a123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345,0.0,0.0,1.0); >+} >+</script> >+<script id="fragmentShader_before" type="text/something-not-javascript"> >+// shader that uses 256 character identifier that starts with underscore should succeed >+precision mediump float; >+uniform float _a12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234; >+void main() >+{ >+ gl_FragColor = vec4(_a12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234,0.0,0.0,1.0); >+} >+</script> >+<script id="fragmentShader_after" type="text/something-not-javascript"> >+// shader that uses 256 character identifier that ends with underscore should succeed >+precision mediump float; >+uniform float a12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234_; >+void main() >+{ >+ gl_FragColor = vec4(a12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234_,0.0,0.0,1.0); >+} >+</script> >+<script id="fragmentShader256_odd" type="text/something-not-javascript"> >+// shader that uses 256 character identifier with odd characters as underscores should succeed >+precision mediump float; >+uniform float a_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_; >+void main() >+{ >+ gl_FragColor = vec4(a_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_6_8_0_2_4_,0.0,0.0,1.0); >+} >+</script> >+<script id="fragmentShader256_even" type="text/something-not-javascript"> >+// shader that uses 256 character identifier with even characters as underscores should succeed >+precision mediump float; >+uniform float a1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5; >+void main() >+{ >+ gl_FragColor = vec4(a1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5_7_9_1_3_5,0.0,0.0,1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTests([ >+ { >+ fShaderId: 'fragmentShader256', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'shader with 256 character identifier should succeed' >+ }, >+ { >+ fShaderId: 'fragmentShader_before', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'shader with 256 character identifier that starts with underscore should succeed' >+ }, >+ { >+ fShaderId: 'fragmentShader_after', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'shader with 256 character identifier that ends with underscore should succeed' >+ }, >+ { >+ fShaderId: 'fragmentShader256_odd', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'shader with 256 character identifier with odd characters as underscores should succeed' >+ }, >+ { >+ fShaderId: 'fragmentShader256_even', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'shader with 256 character identifier with even characters as underscores should succeed' >+ } >+]); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-define.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-define.html >new file mode 100644 >index 00000000000..203547e96a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-define.html >@@ -0,0 +1,57 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader that uses 257 character token in #define should fail >+#define LEN_257_BAD XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX >+ >+void main() >+{ >+ gl_Position = vec4(1.0, 0.0, 0.0, 1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-identifier.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-identifier.frag.html >new file mode 100644 >index 00000000000..a0ac931bb8a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-257-character-identifier.frag.html >@@ -0,0 +1,57 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// shader that uses 257 character identifier should fail >+precision mediump float; >+uniform float a1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456; >+void main() >+{ >+ gl_FragColor = vec4(a1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456,0.0,0.0,1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html >new file mode 100644 >index 00000000000..2e1c468b972 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader that uses _webgl identifier should fail >+attribute vec4 _webgl_vPosition; >+void main() >+{ >+ gl_Position = _webgl_vPosition; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html >new file mode 100644 >index 00000000000..f681fd6684e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html >@@ -0,0 +1,62 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader with arbitrary indexing expression should fail >+// http://www.khronos.org/registry/webgl/specs/latest/#SUPPORTED_GLSL_CONSTRUCTS >+precision mediump float; >+ >+uniform vec4 u_colors[8]; >+varying float a_index; >+ >+void main() >+{ >+ int index = int(floor(a_index)); >+ gl_FragColor = u_colors[index]; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html >new file mode 100644 >index 00000000000..d604ded4609 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html >@@ -0,0 +1,61 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader with arbitrary indexing expression should succeed >+// http://www.khronos.org/registry/webgl/specs/latest/#SUPPORTED_GLSL_CONSTRUCTS >+uniform mat4 u_matrices[8]; >+attribute vec4 a_vertex; >+attribute float a_index; >+ >+void main() >+{ >+ int index = int(floor(a_index)); >+ gl_Position = u_matrices[index] * a_vertex; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html >new file mode 100644 >index 00000000000..a74da59e331 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html >@@ -0,0 +1,154 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL Array of Structs Containing Arrays</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+ >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+void main(void) { >+ gl_Position = a_position; >+} >+</script> >+<script id="fshader0" type="x-shader/x-fragment"> >+precision mediump float; >+struct my_struct { >+ vec4 color[2]; >+}; >+uniform my_struct u_colors[2]; >+void main(void) { >+ gl_FragColor = u_colors[0].color[0]; >+} >+</script> >+<script id="fshader1" type="x-shader/x-fragment"> >+precision mediump float; >+struct my_struct { >+ vec4 color[2]; >+}; >+uniform my_struct u_colors[2]; >+void main(void) { >+ gl_FragColor = u_colors[0].color[1]; >+} >+</script> >+<script id="fshader-with-one-element-arrays" type="x-shader/x-fragment"> >+precision mediump float; >+struct my_struct { >+ vec4 color[1]; >+}; >+uniform my_struct u_colors[1]; >+void main(void) { >+ gl_FragColor = u_colors[0].color[0]; >+} >+</script> >+<script id="fshader3" type="x-shader/x-fragment"> >+precision mediump float; >+struct my_struct { >+ vec4 color1[2]; >+ vec4 color2[2]; >+}; >+uniform my_struct u_colors[2]; >+void main(void) { >+ gl_FragColor = u_colors[0].color1[0] + u_colors[0].color2[0] + u_colors[1].color1[1] +u_colors[1].color2[1]; >+} >+</script> >+</head> >+<body> >+<canvas id="canvas" width="50" height="50"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description(); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("canvas"); >+wtu.setupUnitQuad(gl); >+ >+for (var ii = 0; ii < 2; ++ii) { >+ var program = wtu.setupProgram(gl, ["vshader", "fshader" + ii], ["a_position"]); >+ var red_loc = gl.getUniformLocation(program, "u_colors[0].color[" + ii + "]"); >+ var green_loc = gl.getUniformLocation(program, "u_colors[0].color[" + (1 - ii) + "]"); >+ gl.uniform4fv(red_loc, [1, 0, 0, 1]); >+ gl.uniform4fv(green_loc, [0, 1, 0, 1]); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas(gl, [255, 0, 0, 255], "Should be red"); >+} >+ >+var program = wtu.setupProgram(gl, ["vshader", "fshader-with-one-element-arrays"], ["a_position"]); >+var green_loc = gl.getUniformLocation(program, "u_colors[0].color[0]"); >+gl.uniform4fv(green_loc, [0, 1, 0, 1]); >+wtu.clearAndDrawUnitQuad(gl); >+wtu.checkCanvas(gl, [0, 255, 0, 255], "Should be green"); >+ >+var program = wtu.setupProgram(gl, ["vshader", "fshader3"], ["a_position"]); >+var numUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS); >+shouldBe("numUniforms", "4"); >+var uniforms = [] >+for (var ii = 0; ii < numUniforms; ++ii) { >+ uniforms.push(gl.getActiveUniform(program, ii).name); >+} >+uniforms.sort(); >+shouldBe("uniforms[0]", '"u_colors[0].color1[0]"'); >+shouldBe("uniforms[1]", '"u_colors[0].color2[0]"'); >+shouldBe("uniforms[2]", '"u_colors[1].color1[0]"'); >+shouldBe("uniforms[3]", '"u_colors[1].color2[0]"'); >+var loc00 = gl.getUniformLocation(program, "u_colors[0].color1"); >+var loc01 = gl.getUniformLocation(program, "u_colors[0].color2"); >+var loc10 = gl.getUniformLocation(program, "u_colors[1].color1"); >+var loc11 = gl.getUniformLocation(program, "u_colors[1].color2"); >+shouldBeTrue("loc00 != undefined"); >+shouldBeTrue("loc01 != undefined"); >+shouldBeTrue("loc10 != undefined"); >+shouldBeTrue("loc11 != undefined"); >+gl.uniform4fv(loc00, [1, 0, 0, 0]); >+gl.uniform4fv(loc01, [0, 1, 0, 0]); >+gl.uniform4fv(loc10, [0, 0, 0, 0, 0, 0, 1, 0]); >+gl.uniform4fv(loc11, [0, 0, 0, 0, 0, 0, 0, 1]); >+var loc101 = gl.getUniformLocation(program, "u_colors[1].color1[1]"); >+var loc111 = gl.getUniformLocation(program, "u_colors[1].color2[1]"); >+shouldBeTrue("loc101 != undefined"); >+shouldBeTrue("loc111 != undefined"); >+wtu.clearAndDrawUnitQuad(gl, [0, 0, 0, 0]); >+gl.uniform4fv(loc101, [0, 0, 0, 0]); >+gl.uniform4fv(loc111, [0, 0, 0, 0]); >+wtu.clearAndDrawUnitQuad(gl, [0, 0, 0, 0]); >+wtu.checkCanvas(gl, [255, 255, 0, 0], "Should be yellow"); >+ >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-uniform.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-uniform.html >new file mode 100644 >index 00000000000..026e8d58653 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-uniform.html >@@ -0,0 +1,166 @@ >+ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL Array of Structs Uniform</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+ >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+void main(void) { >+ gl_Position = a_position; >+} >+</script> >+<script id="fshader0" type="x-shader/x-fragment"> >+precision mediump float; >+struct my_struct { >+ vec4 color; >+}; >+uniform my_struct u_colors[2]; >+void main(void) { >+ gl_FragColor = u_colors[0].color; >+} >+</script> >+<script id="fshader1" type="x-shader/x-fragment"> >+precision mediump float; >+struct my_struct { >+ vec4 color; >+}; >+uniform my_struct u_colors[2]; >+void main(void) { >+ gl_FragColor = u_colors[1].color; >+} >+</script> >+<script id="fshader2" type="x-shader/x-fragment"> >+precision mediump float; >+struct my_struct { >+ vec4 color1; >+ vec4 color2; >+}; >+uniform my_struct u_colors[2]; >+void main(void) { >+ gl_FragColor = u_colors[0].color1 + u_colors[0].color2 + u_colors[1].color1 +u_colors[1].color2; >+} >+</script> >+<script id="fshader3" type="x-shader/x-fragment"> >+precision mediump float; >+struct my_struct { >+ float r; >+ float g; >+ float b; >+ float a; >+}; >+uniform my_struct u_colors[2]; >+void main(void) { >+ gl_FragColor = vec4(u_colors[0].r, u_colors[0].g, u_colors[1].b, u_colors[1].a); >+} >+</script> >+</head> >+<body> >+<canvas id="canvas" width="50" height="50"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description(); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("canvas"); >+wtu.setupUnitQuad(gl); >+ >+for (var ii = 0; ii < 2; ++ii) { >+ var program = wtu.setupProgram(gl, ["vshader", "fshader" + ii], ["a_position"]); >+ var red_loc = gl.getUniformLocation(program, "u_colors[" + ii + "].color"); >+ var green_loc = gl.getUniformLocation(program, "u_colors[" + (1 - ii) + "].color"); >+ gl.uniform4fv(red_loc, [1, 0, 0, 1]); >+ gl.uniform4fv(green_loc, [0, 1, 0, 1]); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas(gl, [255, 0, 0, 255], "Should be red"); >+} >+ >+var program = wtu.setupProgram(gl, ["vshader", "fshader2"], ["a_position"]); >+var numUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS); >+shouldBe("numUniforms", "4"); >+var uniforms = [] >+for (var ii = 0; ii < numUniforms; ++ii) { >+ uniforms.push(gl.getActiveUniform(program, ii).name); >+} >+uniforms.sort(); >+shouldBe("uniforms[0]", '"u_colors[0].color1"'); >+shouldBe("uniforms[1]", '"u_colors[0].color2"'); >+shouldBe("uniforms[2]", '"u_colors[1].color1"'); >+shouldBe("uniforms[3]", '"u_colors[1].color2"'); >+var loc00 = gl.getUniformLocation(program, "u_colors[0].color1"); >+var loc01 = gl.getUniformLocation(program, "u_colors[0].color2"); >+var loc10 = gl.getUniformLocation(program, "u_colors[1].color1"); >+var loc11 = gl.getUniformLocation(program, "u_colors[1].color2"); >+shouldBeTrue("loc00 != undefined"); >+shouldBeTrue("loc01 != undefined"); >+shouldBeTrue("loc10 != undefined"); >+shouldBeTrue("loc11 != undefined"); >+gl.uniform4fv(loc00, [1, 0, 0, 0]); >+gl.uniform4fv(loc01, [0, 1, 0, 0]); >+gl.uniform4fv(loc10, [0, 0, 1, 0]); >+gl.uniform4fv(loc11, [0, 0, 0, 1]); >+wtu.clearAndDrawUnitQuad(gl, [0, 0, 0, 0]); >+wtu.checkCanvas(gl, [255, 255, 255, 255], "Should be white"); >+ >+program = wtu.setupProgram(gl, ["vshader", "fshader3"], ["a_position"]); >+var loc0r = gl.getUniformLocation(program, "u_colors[0].r"); >+var loc0g = gl.getUniformLocation(program, "u_colors[0].g"); >+var loc0b = gl.getUniformLocation(program, "u_colors[0].b"); >+var loc0a = gl.getUniformLocation(program, "u_colors[0].a"); >+var loc1r = gl.getUniformLocation(program, "u_colors[1].r"); >+var loc1g = gl.getUniformLocation(program, "u_colors[1].g"); >+var loc1b = gl.getUniformLocation(program, "u_colors[1].b"); >+var loc1a = gl.getUniformLocation(program, "u_colors[1].a"); >+shouldBeTrue("loc0r != undefined"); >+shouldBeTrue("loc0g != undefined"); >+shouldBeTrue("loc1b != undefined"); >+shouldBeTrue("loc1a != undefined"); >+gl.uniform1f(loc0r, 1); >+gl.uniform1f(loc0g, 1); >+gl.uniform1f(loc1b, 1); >+gl.uniform1f(loc1a, 1); >+wtu.clearAndDrawUnitQuad(gl, [0, 0, 0, 0]); >+wtu.checkCanvas(gl, [255, 255, 255, 255], "Should be white"); >+ >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-array.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-array.vert.html >new file mode 100644 >index 00000000000..0d4f78726a3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-array.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader that uses attribute array should fail as per GLSL page 110, appendix A, section 5 >+attribute vec4 vPosition[2]; >+void main() >+{ >+ gl_Position = vPosition[0] + vPosition[1]; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-struct.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-struct.vert.html >new file mode 100644 >index 00000000000..80a1c609ce1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-attrib-struct.vert.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader that uses attribute struct should fail per GLSL ES section 4.4.3, "Attribute", p. 30 >+struct UserType { >+ attribute vec4 position; >+}; >+ >+attribute UserType userAttr; >+void main() >+{ >+ gl_Position = userAttr.position; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-clipvertex.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-clipvertex.vert.html >new file mode 100644 >index 00000000000..5e5e8ba504a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-clipvertex.vert.html >@@ -0,0 +1,57 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader that uses gl_ClipVertex should fail >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+ gl_ClipVertex = vPosition; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-assignment.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-assignment.html >new file mode 100644 >index 00000000000..9a49db12639 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-assignment.html >@@ -0,0 +1,62 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader with comma assignment should succeed >+precision mediump float; >+void main() { >+ float a = 0.0; >+ float b = 0.0; >+ float c = 0.0; >+ float d = 0.0; >+ a = 1.1, b = 3.1; >+ c = 2.1, d = 4.1; >+ // Output green if successful, red if not. >+ gl_FragColor = ((a + b + c + d > 10.0) ? vec4(0,1,0,1) : vec4(1,0,0,1)); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runRenderTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-conditional-assignment.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-conditional-assignment.html >new file mode 100644 >index 00000000000..8606e0bb87e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-conditional-assignment.html >@@ -0,0 +1,213 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShaderAGreaterThanBCheckR" type="text/something-not-javascript"> >+// fragment shader with for scoping should succeed >+precision mediump float; >+void main() { >+ float a = 3.0; >+ float b = 2.0; >+ float r = 0.0; >+ float r0 = 0.5; >+ float r1 = 1.0; >+ float ab = a > b ? (r = r0, a) : (r = r1, b); >+ // Output green if successful, red if not. >+ gl_FragColor = ((r == r0) ? vec4(0,1,0,1) : vec4(1,0,0,1)); >+} >+</script> >+<script id="fragmentShaderAGreaterThanBCheckAB" type="text/something-not-javascript"> >+// fragment shader with for scoping should succeed >+precision mediump float; >+void main() { >+ float a = 3.0; >+ float b = 2.0; >+ float r = 0.0; >+ float r0 = 0.5; >+ float r1 = 1.0; >+ float ab = a > b ? (r = r0, a) : (r = r1, b); >+ // Output green if successful, red if not. >+ gl_FragColor = ((ab == a) ? vec4(0,1,0,1) : vec4(1,0,0,1)); >+} >+</script> >+<script id="fragmentShaderAGreaterThanBCheckT0" type="text/something-not-javascript"> >+// fragment shader with for scoping should succeed >+precision mediump float; >+void main() { >+ float a = 3.0; >+ float b = 2.0; >+ float t0 = 0.0; >+ float t1 = 0.0; >+ float r0 = 0.5; >+ float r1 = 1.0; >+ float ab = a > b ? (t0 = r0, a) : (t1 = r1, b); >+ // Output green if successful, red if not. >+ gl_FragColor = ((t0 == r0) ? vec4(0,1,0,1) : vec4(1,0,0,1)); >+} >+</script> >+<script id="fragmentShaderAGreaterThanBCheckT1" type="text/something-not-javascript"> >+// fragment shader with for scoping should succeed >+precision mediump float; >+void main() { >+ float a = 3.0; >+ float b = 2.0; >+ float t0 = 0.0; >+ float t1 = 0.0; >+ float r0 = 0.5; >+ float r1 = 1.0; >+ float ab = a > b ? (t0 = r0, a) : (t1 = r1, b); >+ // Output green if successful, red if not. >+ gl_FragColor = ((t1 == 0.0) ? vec4(0,1,0,1) : vec4(1,0,0,1)); >+} >+</script> >+<script id="fragmentShaderBGreaterThanACheckR" type="text/something-not-javascript"> >+// fragment shader with for scoping should succeed >+precision mediump float; >+void main() { >+ float a = 2.0; >+ float b = 3.0; >+ float r = 0.0; >+ float r0 = 0.5; >+ float r1 = 1.0; >+ float ab = a > b ? (r = r0, a) : (r = r1, b); >+ // Output green if successful, red if not. >+ gl_FragColor = ((r == r1) ? vec4(0,1,0,1) : vec4(1,0,0,1)); >+} >+</script> >+<script id="fragmentShaderBGreaterThanACheckAB" type="text/something-not-javascript"> >+// fragment shader with for scoping should succeed >+precision mediump float; >+void main() { >+ float a = 2.0; >+ float b = 3.0; >+ float r = 0.0; >+ float r0 = 0.5; >+ float r1 = 1.0; >+ float ab = a > b ? (r = r0, a) : (r = r1, b); >+ // Output green if successful, red if not. >+ gl_FragColor = ((ab == b) ? vec4(0,1,0,1) : vec4(1,0,0,1)); >+} >+</script> >+<script id="fragmentShaderBGreaterThanACheckT0" type="text/something-not-javascript"> >+// fragment shader with for scoping should succeed >+precision mediump float; >+void main() { >+ float a = 2.0; >+ float b = 3.0; >+ float t0 = 0.0; >+ float t1 = 0.0; >+ float r0 = 0.5; >+ float r1 = 1.0; >+ float ab = a > b ? (t0 = r0, a) : (t1 = r1, b); >+ // Output green if successful, red if not. >+ gl_FragColor = ((t0 == 0.0) ? vec4(0,1,0,1) : vec4(1,0,0,1)); >+} >+</script> >+<script id="fragmentShaderBGreaterThanACheckT1" type="text/something-not-javascript"> >+// fragment shader with for scoping should succeed >+precision mediump float; >+void main() { >+ float a = 2.0; >+ float b = 3.0; >+ float t0 = 0.0; >+ float t1 = 0.0; >+ float r0 = 0.5; >+ float r1 = 1.0; >+ float ab = a > b ? (t0 = r0, a) : (t1 = r1, b); >+ // Output green if successful, red if not. >+ gl_FragColor = ((t1 == r1) ? vec4(0,1,0,1) : vec4(1,0,0,1)); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runRenderTests([ >+{ >+ fShaderId: 'fragmentShaderAGreaterThanBCheckR', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "comma based conditional assignment works", >+}, >+{ >+ fShaderId: 'fragmentShaderAGreaterThanBCheckAB', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "comma based conditional assignment works", >+}, >+{ >+ fShaderId: 'fragmentShaderAGreaterThanBCheckT0', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "comma based conditional assignment works", >+}, >+{ >+ fShaderId: 'fragmentShaderAGreaterThanBCheckT1', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "comma based conditional assignment works", >+}, >+{ >+ fShaderId: 'fragmentShaderBGreaterThanACheckR', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "comma based conditional assignment works", >+}, >+{ >+ fShaderId: 'fragmentShaderBGreaterThanACheckAB', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "comma based conditional assignment works", >+}, >+{ >+ fShaderId: 'fragmentShaderBGreaterThanACheckT0', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "comma based conditional assignment works", >+}, >+{ >+ fShaderId: 'fragmentShaderBGreaterThanACheckT1', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "comma based conditional assignment works", >+} >+]); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-separated-variable-declarations.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-separated-variable-declarations.html >new file mode 100644 >index 00000000000..ad9a76c2de1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-comma-separated-variable-declarations.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// shader with comma separated uniform variable declarations should succeed >+precision mediump float; >+ >+uniform float x, y; >+ >+void main() { >+ gl_FragColor = vec4(x, y, 0.0, 1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping-negative.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping-negative.html >new file mode 100644 >index 00000000000..9b46e97fd88 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping-negative.html >@@ -0,0 +1,63 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader with illegal references to conditionally scoped variables should fail >+precision mediump float; >+void main() { >+ int k = 3; >+ >+ if (true) int g = k = 4; >+ else int q = k = 5; >+ >+ g = 3; // should error >+ q = 4; // should error >+ >+ gl_FragColor = vec4(1.); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping.html >new file mode 100644 >index 00000000000..17651c63e28 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-conditional-scoping.html >@@ -0,0 +1,66 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader with conditional scoping should succeed >+precision mediump float; >+void main() { >+ int k = 3; >+ >+ if (true) int g = k = 4; >+ else int q = k = 5; >+ >+ if (true) int g = 4; >+ else int k = 10; >+ >+ if (true) { int g = 10; } >+ else { int k = 20; } >+ >+ gl_FragColor = vec4(1.); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.frag.html >new file mode 100644 >index 00000000000..ca8c10cb544 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.frag.html >@@ -0,0 +1,59 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader with default precision should succeed >+precision mediump float; >+precision mediump int; >+precision lowp sampler2D; >+precision lowp samplerCube; >+void main() >+{ >+ gl_FragColor = vec4(1.0,0.0,0.0,1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.vert.html >new file mode 100644 >index 00000000000..a0001ca6aff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-default-precision.vert.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader with default precision should succeed >+precision mediump float; >+precision mediump int; >+precision lowp sampler2D; >+precision lowp samplerCube; >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-define-line-continuation.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-define-line-continuation.frag.html >new file mode 100644 >index 00000000000..73f6bb6d1f2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-define-line-continuation.frag.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader that uses line continuation macro should fail >+#define foo this \ >+ is a test >+precision mediump float; >+void main() >+{ >+ gl_FragColor = vec4(0.0,0.0,0.0,1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html >new file mode 100644 >index 00000000000..2040d7565e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader that uses dFdx without #extension should fail >+precision mediump float; >+void main() >+{ >+ gl_FragColor = vec4(dFdx(0.5),0.0,0.0,1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx.frag.html >new file mode 100644 >index 00000000000..7445f956978 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-dfdx.frag.html >@@ -0,0 +1,57 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader that uses dFdx should fail >+#extension GL_OES_standard_derivatives:enable >+precision mediump float; >+void main() >+{ >+ gl_FragColor = vec4(dFdx(0.5),0.0,0.0,1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-do-loop.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-do-loop.html >new file mode 100644 >index 00000000000..c5e02d95836 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-do-loop.html >@@ -0,0 +1,61 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader with do loop should fail >+precision mediump float; >+void main() { >+ int k = 0; >+ do { >+ k++; >+ } while (k < 5); >+ gl_FragColor = vec4(float(k)); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-error-directive.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-error-directive.html >new file mode 100644 >index 00000000000..45c1818e8f6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-error-directive.html >@@ -0,0 +1,72 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshaderWithErrorDirective" type="text/something-not-javascript"> >+#error testing123 testing123 >+void main() >+{ >+ gl_FragColor = vec4(0,0,0,0); >+} >+</script> >+<script> >+"use strict"; >+description("Checks shader with error directive"); >+ >+var wtu = WebGLTestUtils; >+GLSLConformanceTester.runTests([ >+{ vShaderId: undefined, >+ vShaderSuccess: true, >+ fShaderId: 'fshaderWithErrorDirective', >+ fShaderSuccess: false, >+ // We can't test for the actual error message as >+ // GLSL 1.0.17 11 says the messages are implementation dependant. >+ //fShaderTest: (function() { >+ // return wtu.getLastError().indexOf("testing123 testing123") >= 0; }), >+ linkSuccess: false, >+ passMsg: "error directive causes error", >+}, >+]); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html >new file mode 100644 >index 00000000000..52d990ccac5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html >@@ -0,0 +1,59 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader that explicit int to float cast should succeed >+attribute vec4 vPosition; >+void main() >+{ >+ int k = 123; >+ gl_Position = vec4(vPosition.x, vPosition.y, vPosition.z, float(k)); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-float-return-value.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-float-return-value.frag.html >new file mode 100644 >index 00000000000..cf4db0a0aa9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-float-return-value.frag.html >@@ -0,0 +1,67 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// Shader with float return value from function call should succeed >+precision mediump float; >+ >+float functionResult(); >+ >+void main() >+{ >+ float r = functionResult(); >+ gl_FragColor = vec4(r, r, r, r); >+} >+ >+float functionResult() >+{ >+ return 1.0; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-for-loop.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-for-loop.html >new file mode 100644 >index 00000000000..79b134132a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-for-loop.html >@@ -0,0 +1,104 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader with for loop should succeed >+ >+// TODO(gman): trim to min size to test bug. >+precision mediump float; >+uniform float time; >+uniform vec2 resolution; >+ >+// Saw-tooth function that is synced with the demo music (128bpm) >+float gBeat; >+ >+// Calculate the surface color >+vec3 surfColor(vec2 p) >+{ >+ vec2 q=vec2(sin(.08*p.x),4.*p.y); >+ vec3 c=vec3(0); >+ for(float i=0.;i<15.;i++) >+ c+=(1.+sin(i*sin(time)+vec3(0.,1.3,2.2)))*.2/length(q-vec2(sin(i),12.*sin(.3*time+i))); >+ return c+vec3(mix(mod(floor(p.x*.2)+floor(p.y*2.2),2.),.2,gBeat)); >+} >+ >+// Ray trace (cylinder) >+vec3 trace(vec3 o,vec3 d) >+{ >+ d.y*=.65+.1*sin(.5*time); >+ float D=1./(d.y*d.y+d.z*d.z), >+ a=(o.y*d.y+o.z*d.z)*D, >+ b=(o.y*o.y+o.z*o.z-36.)*D, >+ t=-a-sqrt(a*a-b); >+ o+=t*d; >+ return surfColor(vec2(o.x,atan(o.y,o.z)))*(1.+.01*t); >+} >+ >+void main() >+{ >+ gBeat=fract(time*3.2/3.); >+ // Screen setup >+ vec2 p=(2.*gl_FragCoord.xy-resolution)/resolution.y, >+ q=2.*gl_FragCoord.xy/resolution-1.; >+ >+ // Camera setup >+ vec3 cp=vec3(-time*20.+1.,1.6*sin(time*1.2),2.+2.*cos(time*.3)), >+ ct=cp+vec3(1.,.3*cos(time),-.2), >+ cd=normalize(ct-cp), >+ cr=normalize(cross(cd,vec3(.5*cos(.3*time),0.,1.))), >+ cu=cross(cr,cd), >+ rd=normalize(2.*cd+cr*p.x+cu*p.y); >+ >+ // Trace! (+some funky lens/raster effects) >+ vec3 c=trace(cp,rd)* >+ min(1.,1.8-dot(q,q))* >+ (.9+.1*sin(3.*sin(gBeat)*gl_FragCoord.y)); >+ >+ gl_FragColor=vec4(c,1); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-for-scoping.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-for-scoping.html >new file mode 100644 >index 00000000000..127b62ac152 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-for-scoping.html >@@ -0,0 +1,59 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader with illegal for scoping should fail >+precision mediump float; >+void main() { >+ int k = 0; >+ for (int i = 0; i < 10; i++) { int i = k+i; } // not a nested scope, in i's scope, nesting already happened >+ gl_FragColor = vec4(float(k)); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-frag-depth.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-frag-depth.frag.html >new file mode 100644 >index 00000000000..85cb0872e6f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-frag-depth.frag.html >@@ -0,0 +1,59 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader that uses gl_FragDepth should fail >+precision mediump float; >+void main() >+{ >+ gl_FragColor = vec4(0.0,0.0,0.0,1.0); >+ gl_FragDepth = 1.0; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-function-recursion.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-function-recursion.frag.html >new file mode 100644 >index 00000000000..0bb6ed79cfc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-function-recursion.frag.html >@@ -0,0 +1,66 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// shader with recursive function calls should fail >+void a(); >+void b(); >+void main() >+{ >+ a(); >+ gl_FragColor = vec4(0,0,0,0); >+} >+void a() >+{ >+ b(); >+} >+void b() >+{ >+ a(); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-function-scoped-struct.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-function-scoped-struct.html >new file mode 100644 >index 00000000000..41c12acd199 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-function-scoped-struct.html >@@ -0,0 +1,63 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader with private function scoped struct should fail. >+precision mediump float; >+int fun2(struct s { int m; } g) { return g.m; } >+ >+s a; >+ >+void main() { >+ int e = fun2(s(3)); >+ >+ gl_FragColor = vec4(1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-functional-scoping.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-functional-scoping.html >new file mode 100644 >index 00000000000..4221414b196 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-functional-scoping.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader with invalid functional scoping should fail >+precision mediump float; >+int f(int k) { >+ int k = k + 3; >+ return k; >+} >+ >+void main() { >+ gl_FragColor = vec4(f(100)); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-glcolor.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-glcolor.vert.html >new file mode 100644 >index 00000000000..68fc7412624 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-glcolor.vert.html >@@ -0,0 +1,56 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader that uses gl_Color should fail >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = gl_Color; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-1.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-1.frag.html >new file mode 100644 >index 00000000000..3930dfcb0c9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-1.frag.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader that expects GL_ES == 1 should succeed >+#if GL_ES == 1 >+ precision mediump float; >+ void main() >+ { >+ gl_FragColor = vec4(0.0,0.0,0.0,1.0); >+ } >+#else >+ foo >+#endif >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-symbol.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-symbol.frag.html >new file mode 100644 >index 00000000000..d3a37610716 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-gles-symbol.frag.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader that uses GL_ES preprocessor symbol should succeed >+#if defined(GL_ES) >+ precision mediump float; >+ void main() >+ { >+ gl_FragColor = vec4(0.0,0.0,0.0,1.0); >+ } >+#else >+ foo >+#endif >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-global-variable-precision-mismatch.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-global-variable-precision-mismatch.html >new file mode 100644 >index 00000000000..8b7fd4acc2c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-global-variable-precision-mismatch.html >@@ -0,0 +1,149 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshaderWithMediumpGlobal" type="text/something-not-javascript"> >+// There is no default float precision in fragment shaders, so specify mediump. >+precision mediump float; >+ >+uniform vec4 foo; >+ >+void main() >+{ >+ gl_FragColor = foo; >+} >+</script> >+<script id="fshaderWithMediumpGlobalInt" type="text/something-not-javascript"> >+// Default precision for int in fragment shaders is mediump. >+uniform int foo; >+ >+void main() >+{ >+ gl_FragColor = vec4(foo, 0, 0, 1); >+} >+</script> >+<script id="fshaderWithMediumpGlobalStruct" type="text/something-not-javascript"> >+// There is no default float precision in fragment shaders, so specify mediump. >+precision mediump float; >+ >+struct foo >+{ >+ vec4 bar; >+}; >+ >+uniform foo baz; >+ >+void main() >+{ >+ gl_FragColor = baz.bar; >+} >+</script> >+<script id="vshaderWithHighpGlobal" type="x-shader/x-vertex"> >+// Default precision for vertex shaders is highp. >+uniform vec4 foo; >+ >+void main() { >+ gl_Position = foo; >+} >+</script> >+<script id="vshaderWithHighpGlobalInt" type="x-shader/x-vertex"> >+// Default precision for int in vertex shaders is highp. >+uniform int foo; >+ >+void main() { >+ gl_Position = vec4(foo, 0, 0, 1); >+} >+</script> >+<script id="vshaderWithHighpGlobalStruct" type="x-shader/x-vertex"> >+// Default precision for vertex shaders is highp. >+struct foo >+{ >+ vec4 bar; >+}; >+ >+uniform foo baz; >+ >+void main() >+{ >+ gl_Position = baz.bar; >+} >+</script> >+<script> >+"use strict"; >+description("Checks shaders with global variables and precision qualifier mismatch."); >+ >+var wtu = WebGLTestUtils; >+ >+var glslTests = []; >+ >+glslTests.push({ >+ vShaderId: 'vshaderWithHighpGlobal', >+ vShaderSuccess: true, >+ fShaderId: 'fshaderWithMediumpGlobal', >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "mismatching precision for uniforms causes link error (as expected)", >+}); >+ >+glslTests.push({ >+ vShaderId: 'vshaderWithHighpGlobalInt', >+ vShaderSuccess: true, >+ fShaderId: 'fshaderWithMediumpGlobalInt', >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "mismatching precision for int uniforms with default precision causes link error (as expected)", >+}); >+ >+glslTests.push({ >+ vShaderId: 'vshaderWithHighpGlobalStruct', >+ vShaderSuccess: true, >+ fShaderId: 'fshaderWithMediumpGlobalStruct', >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "mismatching precision for structure uniforms causes link error (as expected)", >+}); >+ >+GLSLConformanceTester.runTests(glslTests); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html >new file mode 100644 >index 00000000000..add81bcc1e2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html >@@ -0,0 +1,56 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader that uses gl_ProjectionMatrix should fail >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition * gl_ProjectionMatrix; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-hex-int-constant-macro.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-hex-int-constant-macro.html >new file mode 100644 >index 00000000000..08022e493db >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-hex-int-constant-macro.html >@@ -0,0 +1,59 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader uses the long integer constant should succeed >+attribute vec4 vPosition; >+void main() >+{ >+ #define TEST 0x1F >+ int a = TEST; >+ >+ gl_Position = vPosition; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-illegal-default-precision.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-illegal-default-precision.frag.html >new file mode 100644 >index 00000000000..9bfcaeee5c0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-illegal-default-precision.frag.html >@@ -0,0 +1,259 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShaderVoid" type="text/something-not-javascript"> >+// fragment shader with default precision for illegal type should fail >+precision mediump void; >+void main() >+{ >+ mediump vec4 color = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_FragColor = color; >+} >+</script> >+<script id="fragmentShaderBool" type="text/something-not-javascript"> >+// fragment shader with default precision for illegal type should fail >+precision mediump bool; >+void main() >+{ >+ mediump vec4 color = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_FragColor = color; >+} >+</script> >+<script id="fragmentShaderVec2" type="text/something-not-javascript"> >+// fragment shader with default precision for illegal type should fail >+precision mediump vec2; >+void main() >+{ >+ mediump vec4 color = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_FragColor = color; >+} >+</script> >+<script id="fragmentShaderVec3" type="text/something-not-javascript"> >+// fragment shader with default precision for illegal type should fail >+precision mediump vec3; >+void main() >+{ >+ mediump vec4 color = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_FragColor = color; >+} >+</script> >+<script id="fragmentShaderVec4" type="text/something-not-javascript"> >+// fragment shader with default precision for illegal type should fail >+precision mediump vec4; >+void main() >+{ >+ mediump vec4 color = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_FragColor = color; >+} >+</script> >+<script id="fragmentShaderBvec2" type="text/something-not-javascript"> >+// fragment shader with default precision for illegal type should fail >+precision mediump bvec2; >+void main() >+{ >+ mediump vec4 color = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_FragColor = color; >+} >+</script> >+<script id="fragmentShaderBvec3" type="text/something-not-javascript"> >+// fragment shader with default precision for illegal type should fail >+precision mediump bvec3; >+void main() >+{ >+ mediump vec4 color = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_FragColor = color; >+} >+</script> >+<script id="fragmentShaderBvec4" type="text/something-not-javascript"> >+// fragment shader with default precision for illegal type should fail >+precision mediump bvec4; >+void main() >+{ >+ mediump vec4 color = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_FragColor = color; >+} >+</script> >+<script id="fragmentShaderIvec2" type="text/something-not-javascript"> >+// fragment shader with default precision for illegal type should fail >+precision mediump ivec2; >+void main() >+{ >+ mediump vec4 color = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_FragColor = color; >+} >+</script> >+<script id="fragmentShaderIvec3" type="text/something-not-javascript"> >+// fragment shader with default precision for illegal type should fail >+precision mediump ivec3; >+void main() >+{ >+ mediump vec4 color = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_FragColor = color; >+} >+</script> >+<script id="fragmentShaderIvec4" type="text/something-not-javascript"> >+// fragment shader with default precision for illegal type should fail >+precision mediump ivec4; >+void main() >+{ >+ mediump vec4 color = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_FragColor = color; >+} >+</script> >+<script id="fragmentShaderMat2" type="text/something-not-javascript"> >+// fragment shader with default precision for illegal type should fail >+precision mediump mat2; >+void main() >+{ >+ mediump vec4 color = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_FragColor = color; >+} >+</script> >+<script id="fragmentShaderMat3" type="text/something-not-javascript"> >+// fragment shader with default precision for illegal type should fail >+precision mediump mat3; >+void main() >+{ >+ mediump vec4 color = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_FragColor = color; >+} >+</script> >+<script id="fragmentShaderMat4" type="text/something-not-javascript"> >+// fragment shader with default precision for illegal type should fail >+precision mediump mat4; >+void main() >+{ >+ mediump vec4 color = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_FragColor = color; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTests([ >+ { >+ fShaderId: 'fragmentShaderVoid', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for void should fail' >+ }, >+ { >+ fShaderId: 'fragmentShaderBool', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for bool should fail' >+ }, >+ { >+ fShaderId: 'fragmentShaderVec2', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for vec2 should fail' >+ }, >+ { >+ fShaderId: 'fragmentShaderVec3', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for vec3 should fail' >+ }, >+ { >+ fShaderId: 'fragmentShaderVec4', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for vec4 should fail' >+ }, >+ { >+ fShaderId: 'fragmentShaderBvec2', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for bvec2 should fail' >+ }, >+ { >+ fShaderId: 'fragmentShaderBvec3', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for bvec3 should fail' >+ }, >+ { >+ fShaderId: 'fragmentShaderBvec4', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for bvec4 should fail' >+ }, >+ { >+ fShaderId: 'fragmentShaderIvec2', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for ivec2 should fail' >+ }, >+ { >+ fShaderId: 'fragmentShaderIvec3', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for ivec3 should fail' >+ }, >+ { >+ fShaderId: 'fragmentShaderIvec4', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for ivec4 should fail' >+ }, >+ { >+ fShaderId: 'fragmentShaderMat2', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for mat2 should fail' >+ }, >+ { >+ fShaderId: 'fragmentShaderMat3', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for mat3 should fail' >+ }, >+ { >+ fShaderId: 'fragmentShaderMat4', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for mat4 should fail' >+ } >+]); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-illegal-default-precision.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-illegal-default-precision.vert.html >new file mode 100644 >index 00000000000..c3e082460fa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-illegal-default-precision.vert.html >@@ -0,0 +1,245 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShaderVoid" type="text/something-not-javascript"> >+// vertex shader with default precision for illegal type should fail >+precision mediump void; >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script id="vertexShaderBool" type="text/something-not-javascript"> >+// vertex shader with default precision for illegal type should fail >+precision mediump bool; >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script id="vertexShaderVec2" type="text/something-not-javascript"> >+// vertex shader with default precision for illegal type should fail >+precision mediump vec2; >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script id="vertexShaderVec3" type="text/something-not-javascript"> >+// vertex shader with default precision for illegal type should fail >+precision mediump vec3; >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script id="vertexShaderVec4" type="text/something-not-javascript"> >+// vertex shader with default precision for illegal type should fail >+precision mediump vec4; >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script id="vertexShaderBvec2" type="text/something-not-javascript"> >+// vertex shader with default precision for illegal type should fail >+precision mediump bvec2; >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script id="vertexShaderBvec3" type="text/something-not-javascript"> >+// vertex shader with default precision for illegal type should fail >+precision mediump bvec3; >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script id="vertexShaderBvec4" type="text/something-not-javascript"> >+// vertex shader with default precision for illegal type should fail >+precision mediump bvec4; >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script id="vertexShaderIvec2" type="text/something-not-javascript"> >+// vertex shader with default precision for illegal type should fail >+precision mediump ivec2; >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script id="vertexShaderIvec3" type="text/something-not-javascript"> >+// vertex shader with default precision for illegal type should fail >+precision mediump ivec3; >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script id="vertexShaderIvec4" type="text/something-not-javascript"> >+// vertex shader with default precision for illegal type should fail >+precision mediump ivec4; >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script id="vertexShaderMat2" type="text/something-not-javascript"> >+// vertex shader with default precision for illegal type should fail >+precision mediump mat2; >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script id="vertexShaderMat3" type="text/something-not-javascript"> >+// vertex shader with default precision for illegal type should fail >+precision mediump mat3; >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script id="vertexShaderMat4" type="text/something-not-javascript"> >+// vertex shader with default precision for illegal type should fail >+precision mediump mat4; >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTests([ >+ { vShaderId: 'vertexShaderVoid', >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for void should fail' >+ }, >+ { vShaderId: 'vertexShaderBool', >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for bool should fail' >+ }, >+ { vShaderId: 'vertexShaderVec2', >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for vec2 should fail' >+ }, >+ { vShaderId: 'vertexShaderVec3', >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for vec3 should fail' >+ }, >+ { vShaderId: 'vertexShaderVec4', >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for vec4 should fail' >+ }, >+ { vShaderId: 'vertexShaderBvec2', >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for bvec2 should fail' >+ }, >+ { vShaderId: 'vertexShaderBvec3', >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for bvec3 should fail' >+ }, >+ { vShaderId: 'vertexShaderBvec4', >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for bvec4 should fail' >+ }, >+ { vShaderId: 'vertexShaderIvec2', >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for ivec2 should fail' >+ }, >+ { vShaderId: 'vertexShaderIvec3', >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for ivec3 should fail' >+ }, >+ { vShaderId: 'vertexShaderIvec4', >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for ivec4 should fail' >+ }, >+ { vShaderId: 'vertexShaderMat2', >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for mat2 should fail' >+ }, >+ { vShaderId: 'vertexShaderMat3', >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for mat3 should fail' >+ }, >+ { vShaderId: 'vertexShaderMat4', >+ vShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: 'shader with default precision for mat4 should fail' >+ } >+]); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html >new file mode 100644 >index 00000000000..aa1b1336b02 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html >@@ -0,0 +1,59 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader that implicit vec3 to vec4 cast should fail >+attribute vec4 vPosition; >+void main() >+{ >+ mediump vec3 k = vec3(1, 2, 3); >+ gl_Position = k; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-include.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-include.vert.html >new file mode 100644 >index 00000000000..565b66a2f71 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-include.vert.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader uses #include should fail >+ >+// Sadly I can not force the current path so this could fail beacuse include.vs >+// does not exist, not because #include is disallowed. >+#include "include.vs" >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-int-return-value.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-int-return-value.frag.html >new file mode 100644 >index 00000000000..231d51393f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-int-return-value.frag.html >@@ -0,0 +1,63 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// Shader with int return value from function call should succeed >+int functionResult(); >+ >+void main() >+{ >+ int r = functionResult(); >+ gl_FragColor = vec4(r, r, r, r); >+} >+ >+int functionResult() >+{ >+ return 1; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-invalid-identifier.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-invalid-identifier.frag.html >new file mode 100644 >index 00000000000..e0e7cfbc1bf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-invalid-identifier.frag.html >@@ -0,0 +1,57 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader with gl_ identifier should fail >+precision mediump float; >+uniform float gl_foo; >+void main() >+{ >+ gl_FragColor = vec4(gl_foo,0.0,0.0,1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html >new file mode 100644 >index 00000000000..e8f0eb91ff8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html >@@ -0,0 +1,63 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// Shader with ivec2 return value from function call should succeed >+ivec2 functionResult(); >+ >+void main() >+{ >+ ivec2 r = functionResult(); >+ gl_FragColor = vec4(r.x, r.y, r.x, r.y); >+} >+ >+ivec2 functionResult() >+{ >+ return ivec2(1, 1); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html >new file mode 100644 >index 00000000000..f36e32513a6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html >@@ -0,0 +1,63 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// Shader with ivec3 return value from function call should succeed >+ivec3 functionResult(); >+ >+void main() >+{ >+ ivec3 r = functionResult(); >+ gl_FragColor = vec4(r.x, r.y, r.z, r.x); >+} >+ >+ivec3 functionResult() >+{ >+ return ivec3(1, 1, 1); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html >new file mode 100644 >index 00000000000..8528515c1b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html >@@ -0,0 +1,63 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// Shader with ivec4 return value from function call should succeed >+ivec4 functionResult(); >+ >+void main() >+{ >+ ivec4 r = functionResult(); >+ gl_FragColor = vec4(r.x, r.y, r.z, r.w); >+} >+ >+ivec4 functionResult() >+{ >+ return ivec4(1, 1, 1, 1); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-limited-indexing.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-limited-indexing.frag.html >new file mode 100644 >index 00000000000..a1be2f2bd29 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-limited-indexing.frag.html >@@ -0,0 +1,75 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader should succeed >+attribute vec4 a_weights; >+varying vec4 v_weights; >+ >+void main() { >+ v_weights = a_weights; >+ gl_Position = vec4(0.0, 0.0, 0.0, 1.0); >+} >+</script> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader with appropriately limited indexing expression should succeed >+// http://www.khronos.org/registry/webgl/specs/latest/#SUPPORTED_GLSL_CONSTRUCTS >+precision mediump float; >+ >+uniform vec4 u_colors[8]; >+varying vec4 v_weights; >+ >+void main() >+{ >+ vec4 color = vec4(0.0, 0.0, 0.0, 0.0); >+ for (int i = 0; i < 4; i++) { >+ color += u_colors[i] * v_weights[i]; >+ } >+ gl_FragColor = color; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-long-line.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-long-line.html >new file mode 100644 >index 00000000000..126ab107ca4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-long-line.html >@@ -0,0 +1,88 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshaderWithLongLine" type="text/something-not-javascript"> >+precision mediump float; >+uniform float fooo; >+#if defined(someSymbolNotDefined) >+#error long >+#endif >+void main() >+{ >+ gl_FragColor = vec4(fooo+fooo+fooo+fooo, fooo+fooo+fooo+fooo, fooo+fooo+fooo+fooo, 1.0); >+} >+</script> >+<script> >+"use strict"; >+description("checks shader with long line succeeds"); >+ >+var wtu = WebGLTestUtils; >+GLSLConformanceTester.runTests([ >+ { >+ fShaderId: 'fshaderWithLongLine', >+ fShaderSuccess: true, >+ fShaderPrep: function(str) { >+ function expand(str, re, replacement, count) { >+ for (var ii = 0; ii < count; ++ii) { >+ str = str.replace(re, replacement); >+ } >+ return str; >+ } >+ str = expand(str, new RegExp(" ", 'g'), " ", 12); >+ var manyZeros = expand("0", new RegExp("0", 'g'), "00", 8).substring(2); >+ str = expand(str, new RegExp("0", 'g'), manyZeros, 1); >+ str = expand(str, new RegExp("fooo", 'g'), "fooofooo", 6); >+ str = expand(str, new RegExp("long", 'g'), "longlong", 6); >+ //debug("len:" + str.length); >+ //debug(str); >+ return str; >+ }, >+ linkSuccess: true, >+ passMsg: 'shader that uses long lines should succeed', >+ } >+ ]); >+ >+debug(""); >+var successfullyParsed = true; >+ >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-non-ascii-error.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-non-ascii-error.frag.html >new file mode 100644 >index 00000000000..5dcae8863be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-non-ascii-error.frag.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// shader with error directive using characters outside of allowed set fails >+#error // will return INVALID_VALUE. See WebGL 6.18 >+void main() >+{ >+ gl_FragColor = vec4(0,0,0,0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-non-reserved-words.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-non-reserved-words.html >new file mode 100644 >index 00000000000..a48fdd9afde >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-non-reserved-words.html >@@ -0,0 +1,716 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests - Non Reserved Words</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader0" type="text/something-not-javascript"> >+struct $replaceMe { >+ vec4 $replaceMe; >+}; >+struct Foo { >+ $replaceMe $replaceMe; >+}; >+attribute vec4 position; >+void main() >+{ >+ Foo f; >+ f.$replaceMe.$replaceMe = position; >+ gl_Position = f.$replaceMe.$replaceMe; >+} >+</script> >+<script id="fragmentShader0" type="text/something-not-javascript"> >+precision mediump float; >+vec4 $replaceMe() { >+ return vec4(0,1,0,1); >+} >+void main() >+{ >+ gl_FragColor = $replaceMe(); >+} >+</script> >+<script id="vertexShader1" type="text/something-not-javascript"> >+attribute vec4 $replaceMe; >+void main() >+{ >+ gl_Position = $replaceMe; >+} >+</script> >+<script id="fragmentShader1" type="text/something-not-javascript"> >+precision mediump float; >+vec4 foo(vec4 $replaceMe) { >+ return $replaceMe; >+} >+void main() >+{ >+ gl_FragColor = foo(vec4(1,0,1,1)); >+} >+</script> >+<script id="vertexShader2" type="text/something-not-javascript"> >+varying vec4 $replaceMe; >+attribute vec4 position; >+void main() >+{ >+ gl_Position = position; >+ $replaceMe = position; >+} >+</script> >+<script id="fragmentShader2" type="text/something-not-javascript"> >+precision mediump float; >+varying vec4 $replaceMe; >+void main() >+{ >+ gl_FragColor = $replaceMe; >+} >+</script> >+<script id="vertexShader3" type="text/something-not-javascript"> >+attribute vec4 position; >+void main() >+{ >+ gl_Position = position; >+} >+</script> >+<script id="fragmentShader3" type="text/something-not-javascript"> >+precision mediump float; >+uniform vec4 $replaceMe; >+void main() >+{ >+ gl_FragColor = $replaceMe; >+} >+</script> >+<script> >+"use strict"; >+var DXWords = [ >+ "Buffer", >+ "double", >+ "uint", >+ "half", >+ "dword", >+ "string", >+ "texture", >+ "pixelshader", >+ "vertexshader", >+ "switch", >+ "min16float", >+ "min10float", >+ "min16int", >+ "min12int", >+ "min16uint", >+ "vector", >+ "matrix", >+ "float2", >+ "float3", >+ "float4", >+ "float1x1", >+ "float1x2", >+ "float1x3", >+ "float1x4", >+ "float2x1", >+ "float2x2", >+ "float2x3", >+ "float2x4", >+ "float3x1", >+ "float3x2", >+ "float3x3", >+ "float3x4", >+ "float4x1", >+ "float4x2", >+ "float4x3", >+ "float4x4", >+ "int1x1", >+ "int1x2", >+ "int1x3", >+ "int1x4", >+ "int2x1", >+ "int2x2", >+ "int2x3", >+ "int2x4", >+ "int3x1", >+ "int3x2", >+ "int3x3", >+ "int3x4", >+ "int4x1", >+ "int4x2", >+ "int4x3", >+ "int4x4", >+ "double1x1", >+ "double1x2", >+ "double1x3", >+ "double1x4", >+ "double2x1", >+ "double2x2", >+ "double2x3", >+ "double2x4", >+ "double3x1", >+ "double3x2", >+ "double3x3", >+ "double3x4", >+ "double4x1", >+ "double4x2", >+ "double4x3", >+ "double4x4", >+ "abort", >+ "abs", >+ "acos", >+ "all", >+ "AllMemoryBarrier", >+ "AllMemoryBarrierWithGroupSync", >+ "any", >+ "asdouble", >+ "asfloat", >+ "asin", >+ "asint", >+ "asint", >+ "asuint", >+ "asuint", >+ "atan", >+ "atan2", >+ "ceil", >+ "clamp", >+ "clip", >+ "cos", >+ "cosh", >+ "countbits", >+ "cross", >+ "D3DCOLORtoUBYTE4", >+ "ddx", >+ "ddx_coarse", >+ "ddx_fine", >+ "ddy", >+ "ddy_coarse", >+ "ddy_fine", >+ "degrees", >+ "determinant", >+ "DeviceMemoryBarrier", >+ "DeviceMemoryBarrierWithGroupSync", >+ "distance", >+ "dot", >+ "dst", >+ "errorf", >+ "EvaluateAttributeAtCentroid", >+ "EvaluateAttributeAtSample", >+ "EvaluateAttributeSnapped", >+ "exp", >+ "exp2", >+ "f16tof32", >+ "f32tof16", >+ "faceforward", >+ "firstbithigh", >+ "firstbitlow", >+ "floor", >+ "fma", >+ "fmod", >+ "frac", >+ "frexp", >+ "fwidth", >+ "GetRenderTargetSampleCount", >+ "GetRenderTargetSamplePosition", >+ "GroupMemoryBarrier", >+ "GroupMemoryBarrierWithGroupSync", >+ "InterlockedAdd", >+ "InterlockedAnd", >+ "InterlockedCompareExchange", >+ "InterlockedCompareStore", >+ "InterlockedExchange", >+ "InterlockedMax", >+ "InterlockedMin", >+ "InterlockedOr", >+ "InterlockedXor", >+ "isfinite", >+ "isinf", >+ "isnan", >+ "ldexp", >+ "length", >+ "lerp", >+ "lit", >+ "log", >+ "log10", >+ "log2", >+ "mad", >+ "max", >+ "min", >+ "modf", >+ "msad4", >+ "mul", >+ "noise", >+ "normalize", >+ "pow", >+ "printf", >+ "Process2DQuadTessFactorsAvg", >+ "Process2DQuadTessFactorsMax", >+ "Process2DQuadTessFactorsMin", >+ "ProcessIsolineTessFactors", >+ "ProcessQuadTessFactorsAvg", >+ "ProcessQuadTessFactorsMax", >+ "ProcessQuadTessFactorsMin", >+ "ProcessTriTessFactorsAvg", >+ "ProcessTriTessFactorsMax", >+ "ProcessTriTessFactorsMin", >+ "radians", >+ "rcp", >+ "reflect", >+ "refract", >+ "reversebits", >+ "round", >+ "rsqrt", >+ "saturate", >+ "sign", >+ "sin", >+ "sincos", >+ "sinh", >+ "smoothstep", >+ "sqrt", >+ "step", >+ "tan", >+ "tanh", >+ "tex1D", >+ "tex1D", >+ "tex1Dbias", >+ "tex1Dgrad", >+ "tex1Dlod", >+ "tex1Dproj", >+ "tex2D", >+ "tex2D", >+ "tex2Dbias", >+ "tex2Dgrad", >+ "tex2Dlod", >+ "tex2Dproj", >+ "tex3D", >+ "tex3D", >+ "tex3Dbias", >+ "tex3Dgrad", >+ "tex3Dlod", >+ "tex3Dproj", >+ "texCUBE", >+ "texCUBE", >+ "texCUBEbias", >+ "texCUBEgrad", >+ "texCUBElod", >+ "texCUBEproj", >+ "transpose", >+ "trunc" >+]; >+ >+var GLSL_4_20_11_words = [ >+ "attribute", >+ "const", >+ "uniform", >+ "varying", >+ "coherent", >+ "volatile", >+ "restrict", >+ "readonly", >+ "writeonly", >+ "atomic_uint", >+ "layout", >+ "centroid", >+ "flat", >+ "smooth", >+ "noperspective", >+ "patch", >+ "sample", >+ "break", >+ "continue", >+ "do", >+ "for", >+ "while", >+ "switch", >+ "case", >+ "default", >+ "if", >+ "else", >+ "subroutine", >+ "in", >+ "out", >+ "inout", >+ "float", >+ "double", >+ "int", >+ "void", >+ "bool", >+ "true", >+ "false", >+ "invariant", >+ "discard", >+ "return", >+ "mat2", >+ "mat3", >+ "mat4", >+ "dmat2", >+ "dmat3", >+ "dmat4", >+ "mat2x2", >+ "mat2x3", >+ "mat2x4", >+ "dmat2x2", >+ "dmat2x3", >+ "dmat2x4", >+ "mat3x2", >+ "mat3x3", >+ "mat3x4", >+ "dmat3x2", >+ "dmat3x3", >+ "dmat3x4", >+ "mat4x2", >+ "mat4x3", >+ "mat4x4", >+ "dmat4x2", >+ "dmat4x3", >+ "dmat4x4", >+ "vec2", >+ "vec3", >+ "vec4", >+ "ivec2", >+ "ivec3", >+ "ivec4", >+ "bvec2", >+ "bvec3", >+ "bvec4", >+ "dvec2", >+ "dvec3", >+ "dvec4", >+ "uint", >+ "uvec2", >+ "uvec3", >+ "uvec4", >+ "lowp", >+ "mediump", >+ "highp", >+ "precision", >+ "sampler1D", >+ "sampler2D", >+ "sampler3D", >+ "samplerCube", >+ "sampler1DShadow", >+ "sampler2DShadow", >+ "samplerCubeShadow", >+ "sampler1DArray", >+ "sampler2DArray", >+ "sampler1DArrayShadow", >+ "sampler2DArrayShadow", >+ "isampler1D", >+ "isampler2D", >+ "isampler3D", >+ "isamplerCube", >+ "isampler1DArray", >+ "isampler2DArray", >+ "usampler1D", >+ "usampler2D", >+ "usampler3D", >+ "usamplerCube", >+ "usampler1DArray", >+ "usampler2DArray", >+ "sampler2DRect", >+ "sampler2DRectShadow", >+ "isampler2DRect", >+ "usampler2DRect", >+ "samplerBuffer", >+ "isamplerBuffer", >+ "usamplerBuffer", >+ "sampler2DMS", >+ "isampler2DMS", >+ "usampler2DMS", >+ "sampler2DMSArray", >+ "isampler2DMSArray", >+ "usampler2DMSArray", >+ "samplerCubeArray", >+ "samplerCubeArrayShadow", >+ "isamplerCubeArray", >+ "usamplerCubeArray", >+ "image1D", >+ "iimage1D", >+ "uimage1D", >+ "image2D", >+ "iimage2D", >+ "uimage2D", >+ "image3D", >+ "iimage3D", >+ "uimage3D", >+ "image2DRect", >+ "iimage2DRect", >+ "uimage2DRect", >+ "imageCube", >+ "iimageCube", >+ "uimageCube", >+ "imageBuffer", >+ "iimageBuffer", >+ "uimageBuffer", >+ "image1DArray", >+ "iimage1DArray", >+ "uimage1DArray", >+ "image2DArray", >+ "iimage2DArray", >+ "uimage2DArray", >+ "imageCubeArray", >+ "iimageCubeArray", >+ "uimageCubeArray", >+ "image2DMS", >+ "iimage2DMS", >+ "uimage2DMS", >+ "image2DMSArray", >+ "iimage2DMSArray", >+ "uimage2DMSArray", >+ "struct" >+]; >+ >+var GLSL_4_20_11_future_words = [ >+ "common", >+ "partition", >+ "active", >+ "asm", >+ "class", >+ "union", >+ "enum", >+ "typedef", >+ "template", >+ "this", >+ "packed", >+ "resource", >+ "goto", >+ "inline", >+ "noinline", >+ "public", >+ "static", >+ "extern", >+ "external", >+ "interface", >+ "long", >+ "short", >+ "half", >+ "fixed", >+ "unsigned", >+ "superp", >+ "input", >+ "output", >+ "hvec2", >+ "hvec3", >+ "hvec4", >+ "fvec2", >+ "fvec3", >+ "fvec4", >+ "sampler3DRect", >+ "filter", >+ "sizeof", >+ "cast", >+ "namespace", >+ "using", >+ "row_major" >+]; >+ >+var GLSL_1_0_17_words = [ >+ "attribute", >+ "const", >+ "uniform", >+ "varying", >+ "break", >+ "continue", >+ "do", >+ "for", >+ "while", >+ "if", >+ "else", >+ "in", >+ "out", >+ "inout", >+ "float", >+ "int", >+ "void", >+ "bool", >+ "true", >+ "false", >+ "lowp", >+ "mediump", >+ "highp", >+ "precision", >+ "invariant", >+ "discard", >+ "return", >+ "mat2", >+ "mat3", >+ "mat4", >+ "vec2", >+ "vec3", >+ "vec4", >+ "ivec2", >+ "ivec3", >+ "ivec4", >+ "bvec2", >+ "bvec3", >+ "bvec4", >+ "sampler2D", >+ "samplerCube", >+ "struct" >+] >+ >+var GLSL_1_0_17_FutureWords = [ >+ "asm", >+ "class", >+ "union", >+ "enum", >+ "typedef", >+ "template", >+ "this", >+ "packed", >+ "goto", >+ "switch", >+ "default", >+ "inline", >+ "noinline", >+ "volatile", >+ "public", >+ "static", >+ "extern", >+ "external", >+ "interface", >+ "flat", >+ "long", >+ "short", >+ "double", >+ "half", >+ "fixed", >+ "unsigned", >+ "superp", >+ "input", >+ "output", >+ "hvec2", >+ "hvec3", >+ "hvec4", >+ "dvec2", >+ "dvec3", >+ "dvec4", >+ "fvec2", >+ "fvec3", >+ "fvec4", >+ "sampler1D", >+ "sampler3D", >+ "sampler1DShadow", >+ "sampler2DShadow", >+ "sampler2DRect", >+ "sampler3DRect", >+ "sampler2DRectShadow", >+ "sizeof", >+ "cast", >+ "namespace", >+ "using" >+]; >+ >+description(); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(); >+ >+var badWords = [ >+ { words: DXWords }, >+ { words: GLSL_4_20_11_words, }, >+ { words: GLSL_4_20_11_future_words, } >+]; >+ >+var reservedWordsLists = [ >+ GLSL_1_0_17_words, >+ GLSL_1_0_17_FutureWords >+]; >+ >+var reservedWords = { }; >+for (var ii = 0; ii < reservedWordsLists.length; ++ii) { >+ var list = reservedWordsLists[ii]; >+ for (var jj = 0; jj < list.length; ++jj) { >+ reservedWords[list[jj]] = true; >+ } >+} >+ >+var checkedWords = {}; >+ >+var src = []; >+for (var ii = 0; ii < 4; ++ii) { >+ var vsrc = document.getElementById("vertexShader" + ii).text; >+ var fsrc = document.getElementById("fragmentShader" + ii).text; >+ src.push({vsrc: vsrc, fsrc: fsrc}); >+} >+ >+var badWordNdx = 0; >+var listNdx = 0; >+ >+function testNextWord() { >+ var list = badWords[badWordNdx].words; >+ if (listNdx >= list.length) { >+ ++badWordNdx; >+ if (badWordNdx >= badWords.length) { >+ finishTest(); >+ return; >+ } >+ listNdx = 0; >+ list = badWords[badWordNdx].words; >+ } >+ testWord(list[listNdx]); >+ ++listNdx; >+ setTimeout(testNextWord, 0); >+} >+testNextWord(); >+ >+function testWord(word) { >+ if (word in reservedWords || word in checkedWords) { >+ return; >+ } >+ checkedWords[word] = true; >+ debug(""); >+ debug("testing: " + word); >+ >+ for (var ii = 0; ii < src.length; ++ii) { >+ var vs = src[ii].vsrc.replace(/\$replaceMe/g, word); >+ var fs = src[ii].fsrc.replace(/\$replaceMe/g, word); >+ >+ var success = true; >+ var program = wtu.loadProgram(gl, vs, fs, function(msg) { >+ debug(msg); >+ success = false; >+ }, true); >+ if (success) { >+ testPassed("shader with: '" + word + "' compiled"); >+ } else { >+ testFailed("shader with: '" + word + "' failed to compile"); >+ } >+ if (program) { >+ gl.deleteProgram(program); >+ } >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "should be no GL errors"); >+ } >+} >+ >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-precision.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-precision.frag.html >new file mode 100644 >index 00000000000..bca81f6ef31 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-precision.frag.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader with precision should succeed >+void main() >+{ >+ mediump vec4 color = vec4(1.0, 0.0, 0.0, 1.0); >+ gl_FragColor = color; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-preprocessor-whitespace.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-preprocessor-whitespace.html >new file mode 100644 >index 00000000000..593f505a74f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-preprocessor-whitespace.html >@@ -0,0 +1,83 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexWhitespace" type="text/something-not-javascript"> >+// GLSL ES spec section 3.4 >+ # ifdef GL_ES >+attribute vec4 v_Position; >+void main() >+{ >+ gl_Position = v_Position; >+} >+#endif >+</script> >+<script id="fragmentWhitespace" type="text/something-not-javascript"> >+// GLSL ES spec section 3.4 >+ # ifdef GL_ES >+precision mediump float; >+void main() >+{ >+ gl_FragColor = vec4(0.0,0.0,0.0,1.0); >+} >+#endif >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTests([ >+ { >+ vShaderId: 'vertexWhitespace', >+ vShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'Vertex shader using space and tab characters around # should succeed' >+ }, >+ { >+ fShaderId: 'fragmentWhitespace', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'Fragment shader using space and tab characters around # should succeed' >+ } >+]); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-quoted-error.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-quoted-error.frag.html >new file mode 100644 >index 00000000000..1f6867010d1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-quoted-error.frag.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// shader with error directive using quotes will fail >+#error "testing123 testing123" // will return INVALID_VALUE. See WebGL 6.18 >+void main() >+{ >+ gl_FragColor = vec4(0,0,0,0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-reserved-words.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-reserved-words.html >new file mode 100644 >index 00000000000..3eda25bf53b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-reserved-words.html >@@ -0,0 +1,284 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests - Reserved Words</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader0" type="text/something-not-javascript"> >+struct $replaceMe { >+ vec4 $replaceMe; >+}; >+struct Foo { >+ $replaceMe $replaceMe; >+}; >+attribute vec4 position; >+void main() >+{ >+ Foo f; >+ f.$replaceMe.$replaceMe = position; >+ gl_Position = f.$replaceMe.$replaceMe; >+} >+</script> >+<script id="fragmentShader0" type="text/something-not-javascript"> >+precision mediump float; >+vec4 $replaceMe() { >+ return vec4(0,1,0,1); >+} >+void main() >+{ >+ gl_FragColor = $replaceMe(); >+} >+</script> >+<script id="vertexShader1" type="text/something-not-javascript"> >+attribute vec4 $replaceMe; >+void main() >+{ >+ gl_Position = $replaceMe; >+} >+</script> >+<script id="fragmentShader1" type="text/something-not-javascript"> >+precision mediump float; >+vec4 foo(vec4 $replaceMe) { >+ return $replaceMe; >+} >+void main() >+{ >+ gl_FragColor = foo(vec4(1,0,1,1)); >+} >+</script> >+<script id="vertexShader2" type="text/something-not-javascript"> >+varying vec4 $replaceMe; >+attribute vec4 position; >+void main() >+{ >+ gl_Position = position; >+ $replaceMe = position; >+} >+</script> >+<script id="fragmentShader2" type="text/something-not-javascript"> >+precision mediump float; >+varying vec4 $replaceMe; >+void main() >+{ >+ gl_FragColor = $replaceMe; >+} >+</script> >+<script id="vertexShader3" type="text/something-not-javascript"> >+attribute vec4 position; >+void main() >+{ >+ gl_Position = position; >+} >+</script> >+<script id="fragmentShader3" type="text/something-not-javascript"> >+precision mediump float; >+uniform vec4 $replaceMe; >+void main() >+{ >+ gl_FragColor = $replaceMe; >+} >+</script> >+<script> >+"use strict"; >+var GLSL_1_0_17_words = [ >+ "attribute", >+ "const", >+ "uniform", >+ "varying", >+ "break", >+ "continue", >+ "do", >+ "for", >+ "while", >+ "if", >+ "else", >+ "in", >+ "out", >+ "inout", >+ "float", >+ "int", >+ "void", >+ "bool", >+ "true", >+ "false", >+ "lowp", >+ "mediump", >+ "highp", >+ "precision", >+ "invariant", >+ "discard", >+ "return", >+ "mat2", >+ "mat3", >+ "mat4", >+ "vec2", >+ "vec3", >+ "vec4", >+ "ivec2", >+ "ivec3", >+ "ivec4", >+ "bvec2", >+ "bvec3", >+ "bvec4", >+ "sampler2D", >+ "samplerCube", >+ "struct" >+] >+ >+var GLSL_1_0_17_FutureWords = [ >+ "asm", >+ "class", >+ "union", >+ "enum", >+ "typedef", >+ "template", >+ "this", >+ "packed", >+ "goto", >+ "switch", >+ "default", >+ "inline", >+ "noinline", >+ "volatile", >+ "public", >+ "static", >+ "extern", >+ "external", >+ "interface", >+ "flat", >+ "long", >+ "short", >+ "double", >+ "half", >+ "fixed", >+ "unsigned", >+ "superp", >+ "input", >+ "output", >+ "hvec2", >+ "hvec3", >+ "hvec4", >+ "dvec2", >+ "dvec3", >+ "dvec4", >+ "fvec2", >+ "fvec3", >+ "fvec4", >+ "sampler1D", >+ "sampler3D", >+ "sampler1DShadow", >+ "sampler2DShadow", >+ "sampler2DRect", >+ "sampler3DRect", >+ "sampler2DRectShadow", >+ "sizeof", >+ "cast", >+ "namespace", >+ "using", >+ "__foo", // something that has 2 underscores >+ "foo__bar", // something that has 2 underscores >+ "gl_foo", // something that starts with gl_ >+ "webgl_foo" // something that starts with webgl_ >+]; >+ >+description(); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(); >+ >+var reservedWordsLists = [ >+ GLSL_1_0_17_words, >+ GLSL_1_0_17_FutureWords >+]; >+ >+var reservedWords = []; >+for (var ii = 0; ii < reservedWordsLists.length; ++ii) { >+ var list = reservedWordsLists[ii]; >+ for (var jj = 0; jj < list.length; ++jj) { >+ reservedWords.push(list[jj]); >+ } >+} >+ >+var src = []; >+for (var ii = 0; ii < 4; ++ii) { >+ var vsrc = document.getElementById("vertexShader" + ii).text; >+ var fsrc = document.getElementById("fragmentShader" + ii).text; >+ src.push({vsrc: vsrc, fsrc: fsrc}); >+} >+ >+var wordNdx = 0; >+ >+function testNextWord() { >+ if (wordNdx >= reservedWords.length) { >+ finishTest(); >+ return; >+ } >+ testWord(reservedWords[wordNdx]); >+ ++wordNdx; >+ setTimeout(testNextWord, 0); >+} >+testNextWord(); >+ >+function testWord(word) { >+ debug(""); >+ debug("testing: " + word); >+ >+ for (var ii = 0; ii < src.length; ++ii) { >+ var vs = src[ii].vsrc.replace(/\$replaceMe/g, word); >+ var fs = src[ii].fsrc.replace(/\$replaceMe/g, word); >+ >+ var success = true; >+ var program = wtu.loadProgram(gl, vs, fs, function(msg) { >+ //debug(msg); >+ success = false; >+ }, true); >+ if (success) { >+ testFailed("shader with: '" + word + "' compiled even though it should not"); >+ } else { >+ testPassed("shader with: '" + word + "' correctly failed to compile"); >+ } >+ if (program) { >+ gl.deleteProgram(program); >+ } >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "should be no GL errors"); >+ } >+} >+ >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-short-circuiting-operators.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-short-circuiting-operators.html >new file mode 100644 >index 00000000000..202966f68a1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-short-circuiting-operators.html >@@ -0,0 +1,177 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL short-circuit evaluation</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="example" width="2" height="2"> </canvas> >+ >+<!------------------------------------- >+ WebGL Shaders >+----------------------------------------> >+<!-- Pass through Shaders --> >+<script id="vshader0" type="x-shader/x-vertex"> >+/* PASS-THROUGH VERTEX SHADER */ >+attribute vec4 vPosition; >+ >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+ >+<script id="fshader0" type="x-shader/x-fragment"> >+/* PASS-THROUGH FRAGMENT SHADER */ >+precision mediump float; >+varying vec4 vPassThrough; >+ >+void main() >+{ >+ gl_FragColor = vPassThrough; >+} >+</script> >+ >+<!-- basic conditonal short circuit Shaders --> >+<script id="vshader1" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+varying vec4 vPassThrough; >+ >+void main() >+{ >+ int x = 1; >+ $(variables) >+ >+ if ($(condition)) >+ { /*do nothing*/ } >+ >+ /* if x was unmodified return green, else return red */ >+ vPassThrough = (x == 1) ? vec4(0, 1, 0, 1) : vec4(1, 0, 0, 1); >+ gl_Position = vPosition; >+} >+</script> >+ >+<script id="fshader1" type="x-shader/x-fragment"> >+precision mediump float; >+ >+void main() >+{ >+ int x = 1; >+ $(variables) >+ >+ if ($(condition)) >+ { /*do nothing*/ } >+ >+ gl_FragColor = (x == 1) ? vec4(0, 1, 0, 1) : vec4(1, 0, 0, 1); >+} >+</script> >+ >+<!-- Main body of the Webgl program --> >+<script> >+"use strict"; >+description(); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(); >+ >+wtu.setupUnitQuad(gl, [0, 1]); >+ >+var shaderTemplates = [ >+ { vs: "vshader1", fs: "fshader0" }, // basic vertex short-circuit test >+ { vs: "vshader0", fs: "fshader1" }, // basic fragment short-circuit test >+]; >+ >+/* replace the names of the shaders in the tempate variables with >+ * the shaders themselves */ >+for (var ii = 0; ii < shaderTemplates.length; ++ii) { >+ var template = shaderTemplates[ii]; >+ template.vs = wtu.getScript(template.vs); >+ template.fs = wtu.getScript(template.fs); >+} >+ >+/* define the conditon that will be used in the shaders. If additional >+ * variables are needed that are not present i the shader they my be >+ * defined in the variables variable */ >+var tests = [ >+ { condition: "true || (x = 0) == 1", variables: "" }, /* test basic 'or' short circuit */ >+ { condition: "false && (x = 0) == 1", variables: "" }, /* test basic 'and' short circuit */ >+ { condition: "(j == 3 && j == k) || (j > (x = 0))", variables: "int j = 3;\nint k = 3;" }, /* test basic 'or' short circuit with actual condition */ >+ { condition: "(j == 3 && j == k) && (j > (x = 0))", variables: "int j = 3;\nint k = 4;" }, /* test basic 'and' short circuit with actual condition */ >+ { condition: "(j + 3 > k && ((j < 10) || (x + 5 > j + (x = 0))) || ( x = 0 ) == 7)", variables: "int j = 5;\nint k = 3;" }, /* complex test */ >+ { condition: "j + 1 == 6 ? x == 1 || j > (x = 0) : (x = 0) == 1 && (x = 0) <= 1", variables: "int j = 5;" }, /* nested with ternary operator */ >+ { condition: "true && (true || (x = 0) == 1)", variables: "" }, /* test unfold short circuit update order correctness */ >+]; >+ >+function testShortCircuit(test) { >+ debug(""); >+ debug("testing short circuit condition: " + test.condition); >+ >+ /* Setting clear color to blue */ >+ gl.clearColor(0.0, 0.0, 1.0, 1.0); >+ >+ for (var ii = 0; ii < shaderTemplates.length; ++ii) { >+ >+ /* clear the screen so that subsequent tests don't conflict */ >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ var template = shaderTemplates[ii]; >+ >+ var vs = wtu.replaceParams(template.vs, test); >+ var fs = wtu.replaceParams(template.fs, test); >+ >+ var program = wtu.setupProgram(gl, [vs, fs], ['vPosition'], undefined, true); >+ >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "should be green", 0); >+ >+ gl.deleteProgram(program); >+ >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "should be no GL errors"); >+ } >+} >+ >+var testNdx = 0; >+function runNextTest() { >+ testShortCircuit(tests[testNdx++]); >+ if (testNdx >= tests.length) { >+ finishTest(); >+ } else { >+ setTimeout(runNextTest, 0); >+ } >+} >+ >+runNextTest(); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-similar-uniform-array-names.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-similar-uniform-array-names.html >new file mode 100644 >index 00000000000..8b6a95f1066 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-similar-uniform-array-names.html >@@ -0,0 +1,130 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL similar names issue</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+ >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+void main(void) { >+ gl_Position = a_position; >+} >+</script> >+<script id="fshader1" type="x-shader/x-fragment"> >+precision mediump float; >+uniform vec4 u_nameCollision[2]; >+uniform vec4 u_nameCollision2[2]; >+uniform vec4 u_name[2]; >+void main(void) { >+ gl_FragColor = u_nameCollision[0] + u_nameCollision2[0] + u_name[0]; >+} >+</script> >+<script id="fshader2" type="x-shader/x-fragment"> >+precision mediump float; >+uniform vec4 u_nameCollision2[2]; >+uniform vec4 u_nameCollision[2]; >+uniform vec4 u_name[2]; >+void main(void) { >+ gl_FragColor = u_nameCollision2[0] + u_nameCollision[0] + u_name[0]; >+} >+</script> >+<script id="fshader3" type="x-shader/x-fragment"> >+precision mediump float; >+uniform vec4 u_nameCollision[2]; >+uniform vec4 u_name[2]; >+uniform vec4 u_nameCollision2[2]; >+void main(void) { >+ gl_FragColor = u_nameCollision[0] + u_name[0] + u_nameCollision2[0]; >+} >+</script> >+<script id="fshader4" type="x-shader/x-fragment"> >+precision mediump float; >+uniform vec4 u_nameCollision2[2]; >+uniform vec4 u_name[2]; >+uniform vec4 u_nameCollision[2]; >+void main(void) { >+ gl_FragColor = u_nameCollision2[0] + u_name[0] + u_nameCollision[0]; >+} >+</script> >+<script id="fshader5" type="x-shader/x-fragment"> >+precision mediump float; >+uniform vec4 u_name[2]; >+uniform vec4 u_nameCollision[2]; >+uniform vec4 u_nameCollision2[2]; >+void main(void) { >+ gl_FragColor = u_name[0] + u_nameCollision[0] + u_nameCollision2[0]; >+} >+</script> >+<script id="fshader6" type="x-shader/x-fragment"> >+precision mediump float; >+uniform vec4 u_name[2]; >+uniform vec4 u_nameCollision2[2]; >+uniform vec4 u_nameCollision[2]; >+void main(void) { >+ gl_FragColor = u_name[0] + u_nameCollision2[0] + u_nameCollision[0]; >+} >+</script> >+</head> >+<body> >+<canvas id="canvas" width="50" height="50"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description(); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("canvas"); >+wtu.setupUnitQuad(gl); >+ >+for (var ii = 0; ii < 6; ++ii) { >+ var program = wtu.setupProgram(gl, ["vshader", "fshader" + (ii + 1)], ["a_position"]); >+ var loc1 = gl.getUniformLocation(program, "u_name[0]"); >+ var loc2 = gl.getUniformLocation(program, "u_nameCollision[0]"); >+ var loc3 = gl.getUniformLocation(program, "u_nameCollision2[0]"); >+ gl.uniform4fv(loc1, [1, 0, 0, 0]); >+ gl.uniform4fv(loc2, [0, 1, 0, 0]); >+ gl.uniform4fv(loc3, [0, 0, 0, 1]); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas(gl, [255, 255, 0, 255], "Should be yellow"); >+} >+ >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-too-many-uniforms.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-too-many-uniforms.html >new file mode 100644 >index 00000000000..c6f9c896a97 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-too-many-uniforms.html >@@ -0,0 +1,144 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+void main() >+{ >+ gl_Position = a_position; >+} >+</script> >+<script id="vshader-max" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+uniform vec4 u_color[$(maxUniformVectors)]; >+void main() >+{ >+ vec4 v = vec4(0, 0, 0, 0); >+ for (int i = 0; i < $(maxUniformVectors); ++i) { >+ v = v + vec4(u_color[i]); >+ } >+ gl_Position = a_position + v; >+} >+</script> >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+void main() >+{ >+ gl_FragColor = vec4(0, 1, 0, 1); >+} >+</script> >+<script id="fshader-max" type="x-shader/x-fragment"> >+precision mediump float; >+uniform vec4 u_color[$(maxUniformVectors)]; >+void main() >+{ >+ vec4 v = vec4(0, 0, 0, 0); >+ for (int i = 0; i < $(maxUniformVectors); ++i) { >+ v = v + vec4(u_color[i]); >+ } >+ gl_FragColor = v; >+} >+</script> >+<script> >+"use strict"; >+description("checks shader with too many uniforms fails"); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(); >+var maxFragmentUniformVectors = gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS); >+var maxVertexUniformVectors = gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS); >+ >+// Up to 2 uniform vector registers may be spent for literal constants in >+// vshader-max or fshader-max code. One vector row is used for the vec4, and >+// another may be used for integer constants that are allowed to be treated >+// internally as floats and are packable to the space of one row. This is >+// according to the GLSL ES variable packing algorithm detailed in Section 7 of >+// Appendix A of the GLSL ES Specification 10.0.17. >+var maxVectorStorageUsedForLiterals = 2; >+ >+var tests = [ >+ { desc: "using all uniforms in vertex shader should succeed", >+ maxUniformVectors: maxVertexUniformVectors - maxVectorStorageUsedForLiterals, >+ vShader: "vshader-max", >+ fShader: "fshader", >+ success: true, >+ }, >+ { desc: "using too many uniforms in vertex shader should fail", >+ maxUniformVectors: maxVertexUniformVectors + 1, >+ vShader: "vshader-max", >+ fShader: "fshader", >+ color: [0, 1, 0, 1], >+ success: false, >+ }, >+ { desc: "using all uniforms in fragment shader should succeed", >+ maxUniformVectors: maxFragmentUniformVectors - maxVectorStorageUsedForLiterals, >+ vShader: "vshader", >+ fShader: "fshader-max", >+ success: true, >+ }, >+ { desc: "using too many uniforms in fragment shader should fail", >+ maxUniformVectors: maxFragmentUniformVectors + 1, >+ vShader: "vshader", >+ fShader: "fshader-max", >+ color: [0, 1, 0, 1], >+ success: false, >+ }, >+]; >+ >+var glslTests = []; >+ >+for (var ii = 0; ii < tests.length; ++ii) { >+ var test = tests[ii]; >+ var vSrc = wtu.replaceParams(wtu.getScript(test.vShader), test); >+ var fSrc = wtu.replaceParams(wtu.getScript(test.fShader), test); >+ glslTests.push({ >+ vShaderSource: vSrc, >+ fShaderSource: fSrc, >+ linkSuccess: test.success, >+ passMsg: 'shader ' + test.desc, >+ }); >+} >+ >+GLSLConformanceTester.runTests(glslTests); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-two-initializer-types.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-two-initializer-types.html >new file mode 100644 >index 00000000000..d56ebd138e6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-two-initializer-types.html >@@ -0,0 +1,57 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader with different initializer types should succeed >+precision mediump float; >+ >+void main() { >+ float test1[4], test2; >+ gl_FragColor = vec4(0.0,1.0,0.0,1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html >new file mode 100644 >index 00000000000..2ba3e8e2796 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader (3.4) undefined preprocessor symbol should fail >+#if UNDEFINED_FOO >+ // according to ES GLSL spec 3.4 undefined symbols should fail. >+#else >+ precision mediump float; >+ void main() >+ { >+ gl_FragColor = vec4(0.0,0.0,0.0,1.0); >+ } >+#endif >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html >new file mode 100644 >index 00000000000..5731662c158 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html >@@ -0,0 +1,63 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader with uniform variable in loop condition should fail >+// http://www.khronos.org/registry/webgl/specs/latest/#SUPPORTED_GLSL_CONSTRUCTS >+uniform int u_numIterations; >+attribute vec4 a_position; >+ >+void main() >+{ >+ float count = 0.0; >+ for (int i = 0; i < u_numIterations; i++) { >+ count += 1.0; >+ } >+ gl_Position = a_position + vec4(count, count, count, count); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec2-return-value.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec2-return-value.frag.html >new file mode 100644 >index 00000000000..ae453acffb6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec2-return-value.frag.html >@@ -0,0 +1,65 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// Shader with vec2 return value from function call should succeed >+precision mediump float; >+ >+vec2 functionResult(); >+ >+void main() >+{ >+ vec2 r = functionResult(); >+ gl_FragColor = vec4(r.x, r.y, r.x, r.y); >+} >+ >+vec2 functionResult() >+{ >+ return vec2(1.0, 1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec3-return-value.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec3-return-value.frag.html >new file mode 100644 >index 00000000000..400c346f9c8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec3-return-value.frag.html >@@ -0,0 +1,65 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// Shader with vec3 return value from function call should succeed >+precision mediump float; >+ >+vec3 functionResult(); >+ >+void main() >+{ >+ vec3 r = functionResult(); >+ gl_FragColor = vec4(r.x, r.y, r.z, r.x); >+} >+ >+vec3 functionResult() >+{ >+ return vec3(1.0, 1.0, 1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-return-value.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-return-value.frag.html >new file mode 100644 >index 00000000000..b9ba890ab91 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-return-value.frag.html >@@ -0,0 +1,65 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// Shader with vec4 return value from function call should succeed >+precision mediump float; >+ >+vec4 functionResult(); >+ >+void main() >+{ >+ vec4 r = functionResult(); >+ gl_FragColor = vec4(r.x, r.y, r.z, r.w); >+} >+ >+vec4 functionResult() >+{ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html >new file mode 100644 >index 00000000000..943672426d5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html >@@ -0,0 +1,57 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader that vec4->vec3->vec4 conditional should succeed >+precision mediump float; >+uniform float x; >+void main() >+{ >+ gl_FragColor = vec4((x > 0.0 ? vec4(1.0, 1.0, 1.0, 0.0) : vec4(0.1, 0.1, 0.1, 0.0)).xyz, 1.0); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.frag.html >new file mode 100644 >index 00000000000..19307ca1906 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.frag.html >@@ -0,0 +1,62 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader that uses __VERSION__==100 should succeed >+#if __VERSION__ == 100 >+ precision mediump float; >+ void main() >+ { >+ gl_FragColor = vec4(0.0,0.0,0.0,1.0); >+ } >+#else >+ foo >+#endif >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.vert.html >new file mode 100644 >index 00000000000..8576b90703f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-100.vert.html >@@ -0,0 +1,59 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader uses the #version 100 directive should succeed >+#version 100 >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-120.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-120.vert.html >new file mode 100644 >index 00000000000..71408de1273 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-120.vert.html >@@ -0,0 +1,59 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader uses the #version not 100 directive should fail >+#version 120 >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-130.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-130.vert.html >new file mode 100644 >index 00000000000..a0f006b80a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-version-130.vert.html >@@ -0,0 +1,59 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader uses the #version not 100 directive should fail >+#version 130 >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-webgl-identifier.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-webgl-identifier.vert.html >new file mode 100644 >index 00000000000..b516e6607d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-webgl-identifier.vert.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader that uses webgl identifier should fail >+attribute vec4 webgl_vPosition; >+void main() >+{ >+ gl_Position = webgl_vPosition; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-while-loop.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-while-loop.html >new file mode 100644 >index 00000000000..5a349d075f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-with-while-loop.html >@@ -0,0 +1,59 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader with while loop should fail >+precision mediump float; >+void main() { >+ int k = 0; >+ while (k < 5) { >+ k++; >+ } >+ gl_FragColor = vec4(float(k)); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-without-precision.frag.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-without-precision.frag.html >new file mode 100644 >index 00000000000..d16f39b5824 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shader-without-precision.frag.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader without precision should fail >+uniform vec4 color; >+void main() >+{ >+ gl_FragColor = color; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-constant-expression-loop-conditions.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-constant-expression-loop-conditions.html >new file mode 100644 >index 00000000000..6e173b5916a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-constant-expression-loop-conditions.html >@@ -0,0 +1,136 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css" /> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShaderLiteralLoopCondition" type="text/something-not-javascript"> >+attribute vec4 a_position; >+void main() >+{ >+ for (int i = 0; i < 5 + 5; i++) { } >+ gl_Position = a_position; >+} >+</script> >+<script id="fragmentShaderLiteralLoopCondition" type="text/something-not-javascript"> >+void main() >+{ >+ for (int i = 0; i < 5 + 5; i++) { } >+ gl_FragColor = vec4(1.0); >+} >+</script> >+<script id="vertexShaderConstVarLoopCondition" type="text/something-not-javascript"> >+attribute vec4 a_position; >+void main() >+{ >+ // Explicitly constant variables can be part of a constant expression >+ const int constVar = 5; >+ for (int i = 0; i < 5 + constVar; i++) { } >+ gl_Position = a_position; >+} >+</script> >+<script id="fragmentShaderConstVarLoopCondition" type="text/something-not-javascript"> >+void main() >+{ >+ // Explicitly constant variables can be part of a constant expression >+ const int constVar = 5; >+ for (int i = 0; i < constVar + 5; i++) { } >+ gl_FragColor = vec4(1.0); >+} >+</script> >+<script id="vertexShaderNonConstVarLoopCondition" type="text/something-not-javascript"> >+attribute vec4 a_position; >+void main() >+{ >+ // Despite assigning a constant and not modifying it, nonConstVar is not semantically a constant expression >+ int nonConstVar = 10; >+ for (int i = 0; i < nonConstVar; i++) { } >+ gl_Position = a_position; >+} >+</script> >+<script id="fragmentShaderNonConstVarLoopCondition" type="text/something-not-javascript"> >+void main() >+{ >+ // Despite assigning a constant and not modifying it, nonConstVar is not semantically a constant expression >+ int nonConstVar = 10; >+ for (int i = 0; i < nonConstVar; i++) { } >+ gl_FragColor = vec4(1.0); >+} >+</script> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+ >+var tests = []; >+tests.push({ >+ vShaderSource: wtu.getScript("vertexShaderLiteralLoopCondition"), >+ vShaderSuccess: true, >+ fShaderSource: wtu.getScript("fragmentShaderLiteralLoopCondition"), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Shaders with literals in the loop condition should compile and link.", >+}); >+tests.push({ >+ vShaderSource: wtu.getScript("vertexShaderConstVarLoopCondition"), >+ vShaderSuccess: true, >+ fShaderSource: wtu.getScript("fragmentShaderConstVarLoopCondition"), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Shaders with constant variables in the loop condition should compile and link.", >+}); >+tests.push({ >+ vShaderSource: wtu.getScript("vertexShaderNonConstVarLoopCondition"), >+ vShaderSuccess: false, >+ fShaderSource: wtu.getScript("fragmentShaderLiteralLoopCondition"), >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "Vertex shader with non-const variable in the loop condition should fail.", >+}); >+tests.push({ >+ vShaderSource: wtu.getScript("vertexShaderLiteralLoopCondition"), >+ vShaderSuccess: true, >+ fShaderSource: wtu.getScript("fragmentShaderNonConstVarLoopCondition"), >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "Fragment shader with non-const variable in the loop condition should fail.", >+}); >+ >+GLSLConformanceTester.runTests(tests); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-invariance.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-invariance.html >new file mode 100644 >index 00000000000..b7e5edf55ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-invariance.html >@@ -0,0 +1,353 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShaderVariant" type="text/something-not-javascript"> >+varying vec4 v_varying; >+ >+void main() >+{ >+ gl_PointSize = 1.0; >+ gl_Position = v_varying; >+} >+</script> >+<script id="vertexShaderInvariant" type="text/something-not-javascript"> >+invariant varying vec4 v_varying; >+ >+void main() >+{ >+ gl_Position = v_varying; >+} >+</script> >+<script id="vertexShaderSeparateInvariant" type="text/something-not-javascript"> >+varying vec4 v_varying; >+invariant v_varying; >+ >+void main() >+{ >+ gl_Position = v_varying; >+} >+</script> >+<script id="vertexShaderSeparateInvariantWrongOrder" type="text/something-not-javascript"> >+invariant v_varying; >+varying vec4 v_varying; >+ >+void main() >+{ >+ gl_Position = v_varying; >+} >+</script> >+<script id="vertexShaderGlobalInvariant" type="text/something-not-javascript"> >+#pragma STDGL invariant(all) >+varying vec4 v_varying; >+ >+void main() >+{ >+ gl_Position = v_varying; >+} >+</script> >+<script id="vertexShaderInvariantGlPosition" type="text/something-not-javascript"> >+invariant gl_Position; >+ >+void main() >+{ >+ gl_Position = vec4(0, 0, 0, 0); >+} >+</script> >+<script id="vertexShaderInvariantGlPointSize" type="text/something-not-javascript"> >+invariant gl_PointSize; >+ >+void main() >+{ >+ gl_PointSize = 1.0; >+ gl_Position = vec4(0, 0, 0, 0); >+} >+</script> >+<script id="fragmentShaderVariant" type="text/something-not-javascript"> >+precision mediump float; >+ >+varying vec4 v_varying; >+ >+void main() >+{ >+ gl_FragColor = v_varying; >+} >+</script> >+<script id="fragmentShaderInvariant" type="text/something-not-javascript"> >+precision mediump float; >+ >+invariant varying vec4 v_varying; >+ >+void main() >+{ >+ gl_FragColor = v_varying; >+} >+</script> >+<script id="fragmentShaderSeparateInvariant" type="text/something-not-javascript"> >+precision mediump float; >+ >+varying vec4 v_varying; >+invariant v_varying; >+ >+void main() >+{ >+ gl_FragColor = v_varying; >+} >+</script> >+<script id="fragmentShaderSeparateInvariantWrongOrder" type="text/something-not-javascript"> >+precision mediump float; >+ >+invariant v_varying; >+varying vec4 v_varying; >+ >+void main() >+{ >+ gl_FragColor = v_varying; >+} >+</script> >+<script id="fragmentShaderGlobalInvariant" type="text/something-not-javascript"> >+#pragma STDGL invariant(all) >+precision mediump float; >+ >+varying vec4 v_varying; >+ >+void main() >+{ >+ gl_FragColor = v_varying; >+} >+</script> >+<script id="fragmentShaderInvariantGlFragCoord" type="text/something-not-javascript"> >+invariant gl_FragCoord; >+ >+void main() >+{ >+ gl_FragColor = gl_FragCoord; >+} >+</script> >+<script id="fragmentShaderVariantGlFragCoord" type="text/something-not-javascript"> >+void main() >+{ >+ gl_FragColor = gl_FragCoord; >+} >+</script> >+<script id="fragmentShaderInvariantGlPointCoord" type="text/something-not-javascript"> >+invariant gl_PointCoord; >+ >+void main() >+{ >+ gl_FragColor = vec4(gl_PointCoord, 0.0, 0.0); >+} >+</script> >+<script id="fragmentShaderVariantGlPointCoord" type="text/something-not-javascript"> >+void main() >+{ >+ gl_FragColor = vec4(gl_PointCoord, 0.0, 0.0); >+} >+</script> >+<script id="fragmentShaderInvariantGlFrontFacing" type="text/something-not-javascript"> >+invariant gl_FrontFacing; >+ >+void main() >+{ >+ gl_FragColor = gl_FrontFacing ? vec4(1, 1, 1, 1) : vec4(0, 0, 0, 1); >+} >+</script> >+<script id="fragmentShaderVariantGlFrontFacing" type="text/something-not-javascript"> >+void main() >+{ >+ gl_FragColor = gl_FrontFacing ? vec4(1, 1, 1, 1) : vec4(0, 0, 0, 1); >+} >+</script> >+<script> >+// GLSL 1.0.17 4.3.5 >+"use strict"; >+// See GLSL ES spec 1.0.17 section 4.6.4 "Invariance and linkage". >+var cases = [ >+ { >+ vShaderId: "vertexShaderVariant", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderInvariant", >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "vertex shader with variant varying and fragment shader with invariant varying must fail", >+ }, >+ { >+ vShaderId: "vertexShaderInvariant", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderVariant", >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "vertex shader with invariant varying and fragment shader with variant varying must fail", >+ }, >+ { >+ vShaderId: "vertexShaderGlobalInvariant", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderVariant", >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "vertex shader with invariant (global setting) varying and fragment shader with variant varying must fail", >+ }, >+ { >+ vShaderId: "vertexShaderGlobalInvariant", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderInvariant", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "vertex shader with invariant (global setting) varying and fragment shader with invariant varying must succeed", >+ }, >+ { >+ vShaderId: "vertexShaderSeparateInvariant", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderInvariant", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "vertex shader with invariant (separately set) varying and fragment shader with invariant varying must succeed", >+ }, >+ { >+ vShaderId: "vertexShaderInvariant", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderSeparateInvariant", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "vertex shader with invariant varying and fragment shader with invariant (separately set) varying must succeed", >+ }, >+ { >+ vShaderId: "vertexShaderSeparateInvariantWrongOrder", >+ vShaderSuccess: false, >+ fShaderId: "fragmentShaderInvariant", >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "vertex shader with invariant (separately set in wrong order) varying must fail", >+ }, >+ { >+ vShaderId: "vertexShaderInvariant", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderSeparateInvariantWrongOrder", >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "fragment shader with invariant (separately set in wrong order) varying must fail", >+ }, >+ { >+ vShaderId: "vertexShaderInvariantGlPosition", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderInvariantGlFragCoord", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "vertex shader with invariant gl_Position and fragment shader with invariant gl_FragCoord must succeed", >+ }, >+ { >+ vShaderId: "vertexShaderVariant", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderInvariantGlFragCoord", >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "vertex shader with variant gl_Position and fragment shader with invariant gl_FragCoord must fail", >+ }, >+ { >+ vShaderId: "vertexShaderInvariantGlPosition", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderVariantGlFragCoord", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "vertex shader with invariant gl_Position and fragment shader with variant gl_FragCoord must succeed", >+ }, >+ { >+ vShaderId: "vertexShaderInvariantGlPointSize", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderInvariantGlPointCoord", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "vertex shader with invariant gl_PointSize and fragment shader with invariant gl_PointCoord must succeed", >+ }, >+ { >+ vShaderId: "vertexShaderVariant", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderInvariantGlPointCoord", >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "vertex shader with variant gl_PointSize and fragment shader with invariant gl_PointCoord must fail", >+ }, >+ { >+ vShaderId: "vertexShaderInvariantGlPointSize", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderVariantGlPointCoord", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "vertex shader with invariant gl_PointSize and fragment shader with variant gl_PointCoord must succeed", >+ }, >+ { >+ vShaderId: "vertexShaderVariant", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderVariantGlFrontFacing", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "fragment shader with variant gl_FrontFacing must succeed compilation", >+ }, >+ { >+ vShaderId: "vertexShaderVariant", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderInvariantGlFrontFacing", >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "fragment shader with invariant gl_FrontFacing must fail compilation", >+ }, >+ { >+ vShaderId: "vertexShaderVariant", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderGlobalInvariant", >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "vertex shader with variant varying and fragment shader with invariant (global setting) varying must fail", >+ }, >+ { >+ vShaderId: "vertexShaderInvariant", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderGlobalInvariant", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "vertex shader with invariant varying and fragment shader with invariant (global setting) varying must succeed", >+ } >+]; >+ >+GLSLConformanceTester.runTests(cases); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-uniforms.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-uniforms.html >new file mode 100644 >index 00000000000..bd7f77a3e16 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-uniforms.html >@@ -0,0 +1,108 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// Shaders with mis-matching uniform types should fail >+// GLSL 1.017 4.3.4 >+uniform $(type) u_uniform; >+ >+void main() >+{ >+ gl_Position = $(code); >+} >+</script> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// Shaders with mis-matching uniform types should fail >+// GLSL 1.017 4.3.4 >+precision mediump float; >+ >+uniform $(type) u_uniform; >+ >+void main() >+{ >+ gl_FragColor = $(code); >+} >+</script> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+var uniformTypes = [ >+ { type: "bool", code: "vec4(u_uniform, 0, 0, 0)", }, >+ { type: "float", code: "vec4(u_uniform, 0, 0, 0)", }, >+ { type: "int", code: "vec4(u_uniform, 0, 0, 0)", }, >+ { type: "vec2", code: "vec4(u_uniform, 0, 0)", }, >+ { type: "ivec2", code: "vec4(u_uniform, 0, 0)", }, >+ { type: "bvec2", code: "vec4(u_uniform, 0, 0)", }, >+ { type: "vec3", code: "vec4(u_uniform, 0)", }, >+ { type: "ivec3", code: "vec4(u_uniform, 0)", }, >+ { type: "bvec3", code: "vec4(u_uniform, 0)", }, >+ { type: "vec4", code: "vec4(u_uniform)", }, >+ { type: "ivec4", code: "vec4(u_uniform)", }, >+ { type: "bvec4", code: "vec4(u_uniform)", }, >+ { type: "mat2", code: "vec4(u_uniform[0][0], 0, 0, 0)", }, >+ { type: "mat3", code: "vec4(u_uniform[0][0], 0, 0, 0)", }, >+ { type: "mat4", code: "vec4(u_uniform[0][0], 0, 0, 0)", }, >+]; >+var vSource = wtu.getScript("vertexShader"); >+var fSource = wtu.getScript("fragmentShader"); >+var tests = []; >+for (var ii = 0; ii < uniformTypes.length; ++ii) { >+ var u1 = uniformTypes[ii]; >+ var vs = wtu.replaceParams(vSource, u1); >+ for (var jj = ii + 1; jj < uniformTypes.length; ++jj) { >+ var u2 = uniformTypes[jj]; >+ var fs = wtu.replaceParams(fSource, u2); >+ tests.push({ >+ vShaderSource: vs, >+ vShaderSuccess: true, >+ fShaderSource: fs, >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "vertex shader with uniform " + u1.type + " and fragment shader with uniform " + u2.type + " with the same name should fail to link", >+ }); >+ } >+} >+ >+GLSLConformanceTester.runTests(tests); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-varyings.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-varyings.html >new file mode 100644 >index 00000000000..f49426d1e40 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-mis-matching-varyings.html >@@ -0,0 +1,101 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// Shaders with mis-matching varying types should fail >+// GLSL 1.0.17 4.3.5 >+attribute $(type) a_attribute; >+varying $(type) v_varying; >+ >+void main() >+{ >+ v_varying = a_attribute; >+ gl_Position = vec4(0,0,0,0); >+} >+</script> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// Shaders with mis-matching varyings types should fail >+// GLSL 1.0.17 4.3.5 >+precision mediump float; >+ >+varying $(type) v_varying; >+ >+void main() >+{ >+ gl_FragColor = $(code); >+} >+</script> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+var varyingTypes = [ >+ { type: "float", code: "vec4(v_varying, 0, 0, 0)", }, >+ { type: "vec2", code: "vec4(v_varying, 0, 0)", }, >+ { type: "vec3", code: "vec4(v_varying, 0)", }, >+ { type: "vec4", code: "vec4(v_varying)", }, >+ { type: "mat2", code: "vec4(v_varying[0][0], 0, 0, 0)", }, >+ { type: "mat3", code: "vec4(v_varying[0][0], 0, 0, 0)", }, >+ { type: "mat4", code: "vec4(v_varying[0][0], 0, 0, 0)", }, >+]; >+var vSource = wtu.getScript("vertexShader"); >+var fSource = wtu.getScript("fragmentShader"); >+var tests = []; >+for (var ii = 0; ii < varyingTypes.length; ++ii) { >+ var u1 = varyingTypes[ii]; >+ var vs = wtu.replaceParams(vSource, u1); >+ for (var jj = ii + 1; jj < varyingTypes.length; ++jj) { >+ var u2 = varyingTypes[jj]; >+ var fs = wtu.replaceParams(fSource, u2); >+ tests.push({ >+ vShaderSource: vs, >+ vShaderSuccess: true, >+ fShaderSource: fs, >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "vertex shader with varying " + u1.type + " and fragment shader with varying " + u2.type + " with the same name should fail to link", >+ }); >+ } >+} >+GLSLConformanceTester.runTests(tests); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-missing-varyings.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-missing-varyings.html >new file mode 100644 >index 00000000000..bdbc48cb7ab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-missing-varyings.html >@@ -0,0 +1,95 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// GLSL 1.0.17 4.3.5 >+void main() >+{ >+ gl_Position = vec4(0,0,0,0); >+} >+</script> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// GLSL 1.0.17 4.3.5 >+precision mediump float; >+ >+varying $(type) v_varying; >+ >+void main() >+{ >+ gl_FragColor = $(code); >+} >+</script> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+var varyingTypes = [ >+ { type: "float", code: "vec4(v_varying, 0, 0, 0)", }, >+ { type: "vec2", code: "vec4(v_varying, 0, 0)", }, >+ { type: "vec3", code: "vec4(v_varying, 0)", }, >+ { type: "vec4", code: "vec4(v_varying)", }, >+ { type: "mat2", code: "vec4(v_varying[0][0], 0, 0, 0)", }, >+ { type: "mat3", code: "vec4(v_varying[0][0], 0, 0, 0)", }, >+ { type: "mat4", code: "vec4(v_varying[0][0], 0, 0, 0)", }, >+]; >+var vSource = wtu.getScript("vertexShader"); >+var fSource = wtu.getScript("fragmentShader"); >+var tests = []; >+for (var ii = 0; ii < varyingTypes.length; ++ii) { >+ var u1 = varyingTypes[ii]; >+ var vs = wtu.replaceParams(vSource, u1); >+ for (var jj = ii + 1; jj < varyingTypes.length; ++jj) { >+ var u2 = varyingTypes[jj]; >+ var fs = wtu.replaceParams(fSource, u2); >+ tests.push({ >+ vShaderSource: vs, >+ vShaderSuccess: true, >+ fShaderSource: fs, >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "vertex shader no varyings and fragment shader with varying " + u2.type + " should fail to link", >+ }); >+ } >+} >+GLSLConformanceTester.runTests(tests); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-name-conflicts.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-name-conflicts.html >new file mode 100644 >index 00000000000..8dc84e01e1e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-name-conflicts.html >@@ -0,0 +1,104 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader should succeed >+precision mediump float; >+uniform vec4 foo; >+void main() >+{ >+ gl_FragColor = foo; >+} >+</script> >+<script id="vertexShader" type="text/something-not-javascript"> >+// vertex shader should succeed >+attribute vec4 foo; >+void main() >+{ >+ gl_Position = foo; >+} >+</script> >+<script> >+"use strict"; >+ >+/* >+GLSL 1.017 section 4.2.6 >+ >+... >+ >+With the exception of uniform declarations, vertex and fragment shaders >+have separate name spaces. Functions and global variables declared in a >+vertex shader cannot be referenced by a fragment shader and vice versa. >+Uniforms have a single name space. Uniforms declared with the same name >+must have matching types and precisions. >+ >+Section 4.3.3 >+ >+Attribute variables are required to have global scope >+ >+Section 4.3.4 >+ >+The uniform qualifier is used to declare global variables >+ >+QED: If both uniforms and attributes are in the global namespace they >+conflict across shaders >+ >+Note: This was brought up on the OpenGL ES working group and confirmed >+that the spec required these conflicts to fail to link. >+ >+Though most drivers allow this to work, some drivers to do no therefore >+WebGL implementation must enforce this restriction to provide consistent >+behavior. >+*/ >+ >+GLSLConformanceTester.runTests([ >+ { vShaderId: 'vertexShader', >+ vShaderSuccess: true, >+ fShaderId: 'fragmentShader', >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: 'shaders with conflicting uniform/attribute names should fail' >+ }, >+]); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-uniform-structs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-uniform-structs.html >new file mode 100644 >index 00000000000..63301ab4cd6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-uniform-structs.html >@@ -0,0 +1,310 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShaderStructSequence" type="text/something-not-javascript"> >+// Structures must have the same name, sequence of type names, and >+// type definitions, and field names to be considered the same type. >+// GLSL 1.017 4.2.4 >+precision mediump float; >+struct info { >+ vec4 pos; >+ vec4 color; >+}; >+ >+uniform info uni; >+void main() >+{ >+ gl_Position = uni.pos; >+} >+</script> >+<script id="fragmentShaderStructSequence" type="text/something-not-javascript"> >+// Structures must have the same name, sequence of type names, and >+// type definitions, and field names to be considered the same type. >+// GLSL 1.017 4.2.4 >+precision mediump float; >+struct info { >+ vec4 color; >+ vec4 pos; >+}; >+ >+uniform info uni; >+void main() >+{ >+ gl_FragColor = uni.color; >+} >+</script> >+<script id="vertexShaderStructName" type="text/something-not-javascript"> >+// Structures must have the same name, sequence of type names, and >+// type definitions, and field names to be considered the same type. >+// GLSL 1.017 4.2.4 >+precision mediump float; >+struct info { >+ vec4 pos; >+ vec4 color; >+}; >+ >+uniform info uni; >+void main() >+{ >+ gl_Position = uni.pos; >+} >+</script> >+<script id="fragmentShaderStructNameFailure" type="text/something-not-javascript"> >+// Structures must have the same name, sequence of type names, and >+// type definitions, and field names to be considered the same type. >+// GLSL 1.017 4.2.4 >+precision mediump float; >+struct info1 { >+ vec4 pos; >+ vec4 color; >+}; >+ >+uniform info1 uni; >+void main() >+{ >+ gl_FragColor = uni.color; >+} >+</script> >+<script id="fragmentShaderStructNameSuccess" type="text/something-not-javascript"> >+// Structures must have the same name, sequence of type names, and >+// type definitions, and field names to be considered the same type. >+// GLSL 1.017 4.2.4 >+precision mediump float; >+ >+// Add a struct before info to make sure the struct info here is assigned >+// a different internal unique ID from the struct info in vertex shader. >+struct extra { >+ vec4 p; >+}; >+ >+struct info { >+ vec4 pos; >+ vec4 color; >+}; >+ >+uniform info uni; >+void main() >+{ >+ extra my; >+ my.p = uni.color; >+ gl_FragColor = my.p; >+} >+</script> >+<script id="vertexShaderStructFieldName" type="text/something-not-javascript"> >+// Structures must have the same name, sequence of type names, and >+// type definitions, and field names to be considered the same type. >+// GLSL 1.017 4.2.4 >+precision mediump float; >+struct info { >+ vec4 pos; >+ vec4 color; >+}; >+ >+uniform info uni; >+void main() >+{ >+ gl_Position = uni.pos; >+} >+</script> >+<script id="fragmentShaderStructFieldName" type="text/something-not-javascript"> >+// Structures must have the same name, sequence of type names, and >+// type definitions, and field names to be considered the same type. >+// GLSL 1.017 4.2.4 >+precision mediump float; >+struct info { >+ vec4 pos1; >+ vec4 color; >+}; >+ >+uniform info uni; >+void main() >+{ >+ gl_FragColor = uni.color; >+} >+</script> >+<script id="vertexShaderStructFieldType" type="text/something-not-javascript"> >+// Structures must have the same name, sequence of type names, and >+// type definitions, and field names to be considered the same type. >+// GLSL 1.017 4.2.4 >+precision mediump float; >+struct info { >+ vec4 pos; >+ vec4 color; >+}; >+ >+uniform info uni; >+void main() >+{ >+ gl_Position = uni.pos; >+} >+</script> >+<script id="fragmentShaderStructFieldType" type="text/something-not-javascript"> >+// Structures must have the same name, sequence of type names, and >+// type definitions, and field names to be considered the same type. >+// GLSL 1.017 4.2.4 >+precision mediump float; >+struct info { >+ vec3 pos; >+ vec4 color; >+}; >+ >+uniform info uni; >+void main() >+{ >+ gl_FragColor = uni.color; >+} >+</script> >+<script id="vertexShaderStructFieldPrecision" type="text/something-not-javascript"> >+// Structures must have the same name, sequence of type names, and >+// type definitions, and field names to be considered the same type. >+// GLSL 1.017 4.2.4 >+struct info { >+ mediump vec4 pos; >+ highp vec4 color; >+}; >+ >+uniform info uni; >+void main() >+{ >+ gl_Position = uni.pos; >+} >+</script> >+<script id="fragmentShaderStructFieldPrecision" type="text/something-not-javascript"> >+// Structures must have the same name, sequence of type names, and >+// type definitions, and field names to be considered the same type. >+// GLSL 1.017 4.2.4 >+precision mediump float; >+struct info { >+ vec4 pos; >+ vec4 color; >+}; >+ >+uniform info uni; >+void main() >+{ >+ gl_FragColor = uni.color; >+} >+</script> >+<script id="vertexShaderUnnamedStruct" type="text/something-not-javascript"> >+// ANGLE regression on Windows, crbug.com/401296 >+uniform struct { >+ float f; >+ vec4 v; >+} u_struct; >+ >+void main() >+{ >+ gl_Position = u_struct.f * u_struct.v; >+} >+</script> >+<script id="fragmentShaderSimple" type="text/something-not-javascript"> >+void main() >+{ >+ gl_FragColor = vec4(1.0); >+} >+</script> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+ >+var tests = []; >+tests.push({ >+ vShaderSource: wtu.getScript("vertexShaderStructName"), >+ vShaderSuccess: true, >+ fShaderSource: wtu.getScript("fragmentShaderStructNameSuccess"), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Structures with the same defination must be considered the same type.", >+}); >+tests.push({ >+ vShaderSource: wtu.getScript("vertexShaderStructName"), >+ vShaderSuccess: true, >+ fShaderSource: wtu.getScript("fragmentShaderStructNameFailure"), >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "Structures must have the same name to be considered the same type.", >+}); >+tests.push({ >+ vShaderSource: wtu.getScript("vertexShaderStructSequence"), >+ vShaderSuccess: true, >+ fShaderSource: wtu.getScript("fragmentShaderStructSequence"), >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "Structures must have the same sequence of type names to be considered the same type.", >+}); >+tests.push({ >+ vShaderSource: wtu.getScript("vertexShaderStructFieldName"), >+ vShaderSuccess: true, >+ fShaderSource: wtu.getScript("fragmentShaderStructFieldName"), >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "Structures must have the same field names to be considered the same type.", >+}); >+tests.push({ >+ vShaderSource: wtu.getScript("vertexShaderStructFieldType"), >+ vShaderSuccess: true, >+ fShaderSource: wtu.getScript("fragmentShaderStructFieldType"), >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "Structures must have the same type definitions to be considered the same type.", >+}); >+tests.push({ >+ vShaderSource: wtu.getScript("vertexShaderStructFieldPrecision"), >+ vShaderSuccess: true, >+ fShaderSource: wtu.getScript("fragmentShaderStructFieldPrecision"), >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "Structures must have the same type definitions (including precision) to be considered the same type.", >+}); >+tests.push({ >+ vShaderSource: wtu.getScript("vertexShaderUnnamedStruct"), >+ vShaderSuccess: true, >+ fShaderSource: wtu.getScript("fragmentShaderSimple"), >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "Shaders with uniforms of unnamed struct type should compile and link successfully.", >+}); >+ >+GLSLConformanceTester.runTests(tests); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-varyings.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-varyings.html >new file mode 100644 >index 00000000000..a338665961e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-varyings.html >@@ -0,0 +1,124 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShaderNoVarying" type="text/something-not-javascript"> >+void main() >+{ >+ gl_Position = vec4(0,0,0,0); >+} >+</script> >+<script id="vertexShaderUnusedVarying" type="text/something-not-javascript"> >+varying vec4 v_varying; >+ >+void main() >+{ >+ gl_Position = vec4(0,0,0,0); >+} >+</script> >+<script id="vertexShaderUsedVarying" type="text/something-not-javascript"> >+varying vec4 v_varying; >+ >+void main() >+{ >+ gl_Position = v_varying; >+} >+</script> >+<script id="fragmentShaderUnusedVarying" type="text/something-not-javascript"> >+precision mediump float; >+ >+varying vec4 v_varying; >+ >+void main() >+{ >+ gl_FragColor = vec4(0,0,0,0); >+} >+</script> >+<script id="fragmentShaderUsedVarying" type="text/something-not-javascript"> >+precision mediump float; >+ >+varying vec4 v_varying; >+ >+void main() >+{ >+ gl_FragColor = v_varying; >+} >+</script> >+<script> >+// GLSL 1.0.17 4.3.5 >+"use strict"; >+GLSLConformanceTester.runTests([ >+ { >+ vShaderId: "vertexShaderNoVarying", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderUnusedVarying", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "vertex shader with no varying and fragment shader with unused varying must succeed", >+ }, >+ { >+ vShaderId: "vertexShaderNoVarying", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderUsedVarying", >+ fShaderSuccess: true, >+ linkSuccess: false, >+ passMsg: "vertex shader with no varying and fragment shader with used varying must fail", >+ }, >+ { >+ vShaderId: "vertexShaderUnusedVarying", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderUnusedVarying", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "vertex shader with unused varying and fragment shader with unused varying must succeed", >+ }, >+ { >+ vShaderId: "vertexShaderUnusedVarying", >+ vShaderSuccess: true, >+ fShaderId: "fragmentShaderUsedVarying", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: "vertex shader with unused varying and fragment shader with used varying must succeed", >+ }, >+]); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shared.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shared.html >new file mode 100644 >index 00000000000..4776d2a152b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shared.html >@@ -0,0 +1,172 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="sharedVertexShader" type="text/something-not-javascript"> >+// shared vertex shader should succeed. >+uniform mat4 viewProjection; >+uniform vec3 worldPosition; >+uniform vec3 nextPosition; >+uniform float fishLength; >+uniform float fishWaveLength; >+uniform float fishBendAmount; >+attribute vec4 position; >+attribute vec2 texCoord; >+varying vec4 v_position; >+varying vec2 v_texCoord; >+varying vec3 v_surfaceToLight; >+void main() { >+ vec3 vz = normalize(worldPosition - nextPosition); >+ vec3 vx = normalize(cross(vec3(0,1,0), vz)); >+ vec3 vy = cross(vz, vx); >+ mat4 orientMat = mat4( >+ vec4(vx, 0), >+ vec4(vy, 0), >+ vec4(vz, 0), >+ vec4(worldPosition, 1)); >+ mat4 world = orientMat; >+ mat4 worldViewProjection = viewProjection * world; >+ mat4 worldInverseTranspose = world; >+ >+ v_texCoord = texCoord; >+ // NOTE:If you change this you need to change the laser code to match! >+ float mult = position.z > 0.0 ? >+ (position.z / fishLength) : >+ (-position.z / fishLength * 2.0); >+ float s = sin(mult * fishWaveLength); >+ float a = sign(s); >+ float offset = pow(mult, 2.0) * s * fishBendAmount; >+ v_position = ( >+ worldViewProjection * >+ (position + >+ vec4(offset, 0, 0, 0))); >+ v_surfaceToLight = (world * position).xyz; >+ gl_Position = v_position; >+} >+</script> >+<script id="fragmentShaderA" type="text/something-not-javascript"> >+// shared fragment shader should succeed. >+precision mediump float; >+uniform vec4 lightColor; >+varying vec4 v_position; >+varying vec2 v_texCoord; >+varying vec3 v_surfaceToLight; >+ >+uniform vec4 ambient; >+uniform sampler2D diffuse; >+uniform vec4 specular; >+uniform float shininess; >+uniform float specularFactor; >+// #fogUniforms >+ >+vec4 lit(float l ,float h, float m) { >+ return vec4(1.0, >+ max(l, 0.0), >+ (l > 0.0) ? pow(max(0.0, h), m) : 0.0, >+ 1.0); >+} >+void main() { >+ vec4 diffuseColor = texture2D(diffuse, v_texCoord); >+ vec4 normalSpec = vec4(0,0,0,0); // #noNormalMap >+ vec3 surfaceToLight = normalize(v_surfaceToLight); >+ vec3 halfVector = normalize(surfaceToLight); >+ vec4 litR = lit(1.0, 1.0, shininess); >+ vec4 outColor = vec4( >+ (lightColor * (diffuseColor * litR.y + diffuseColor * ambient + >+ specular * litR.z * specularFactor * normalSpec.a)).rgb, >+ diffuseColor.a); >+ // #fogCode >+ gl_FragColor = outColor; >+} >+</script> >+<script id="fragmentShaderB" type="text/something-not-javascript"> >+// shared fragment shader should succeed. >+precision mediump float; >+varying vec4 v_position; >+varying vec2 v_texCoord; >+varying vec3 v_surfaceToLight; >+ >+// #fogUniforms >+ >+vec4 lit(float l ,float h, float m) { >+ return vec4(1.0, >+ max(l, 0.0), >+ (l > 0.0) ? pow(max(0.0, h), m) : 0.0, >+ 1.0); >+} >+void main() { >+ vec4 normalSpec = vec4(0,0,0,0); // #noNormalMap >+ vec4 reflection = vec4(0,0,0,0); // #noReflection >+ vec3 surfaceToLight = normalize(v_surfaceToLight); >+ vec4 skyColor = vec4(0.5,0.5,1,1); // #noReflection >+ >+ vec3 halfVector = normalize(surfaceToLight); >+ vec4 litR = lit(1.0, 1.0, 10.0); >+ vec4 outColor = vec4(mix( >+ skyColor, >+ vec4(1,2,3,4) * (litR.y + litR.z * normalSpec.a), >+ 1.0 - reflection.r).rgb, >+ 1.0); >+ // #fogCode >+ gl_FragColor = outColor; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTests([ >+ { vShaderSource: document.getElementById("sharedVertexShader").text, >+ vShaderSuccess: true, >+ fShaderSource: document.getElementById("fragmentShaderA").text, >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'shared fragment shader should succeed', >+ }, >+ { vShaderSource: document.getElementById("sharedVertexShader").text, >+ vShaderSuccess: true, >+ fShaderSource: document.getElementById("fragmentShaderB").text, >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'shared fragment shader should succeed', >+ } >+]); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-assign.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-assign.html >new file mode 100644 >index 00000000000..26844fa1333 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-assign.html >@@ -0,0 +1,233 @@ >+<!-- >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL Structure Assignment Test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+ >+<script id="simple-vs" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+void main(void) { >+ gl_Position = a_position; >+} >+</script> >+<script id="simple-struct-fs" type="x-shader/x-fragment"> >+precision mediump float; >+struct my_struct { >+ float f; >+}; >+ >+my_struct a = my_struct(0.0); >+my_struct b = my_struct(1.0); >+ >+void main(void) { >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+ a = b; >+ if (a.f == 1.0) { >+ gl_FragColor.y = 1.0; >+ } >+} >+</script> >+<script id="vec-struct-fs" type="x-shader/x-fragment"> >+precision mediump float; >+struct my_struct { >+ vec3 v; >+}; >+ >+my_struct a = my_struct(vec3(0.0, 0.0, 0.0)); >+my_struct b = my_struct(vec3(1.0, 2.0, 3.0)); >+ >+void main(void) { >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+ a = b; >+ if (a.v.x == 1.0) { >+ gl_FragColor.y = 1.0; >+ } >+} >+</script> >+<script id="nested-struct-fs" type="x-shader/x-fragment"> >+precision mediump float; >+ >+struct s1 >+{ >+ float f; >+}; >+ >+struct s2 >+{ >+ s1 s; >+}; >+ >+s2 a = s2(s1(0.0)); >+s2 b = s2(s1(1.0)); >+ >+void main(void) { >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+ a = b; >+ if (a.s.f == 1.0) { >+ gl_FragColor.y = 1.0; >+ } >+} >+</script> >+<script id="nested-vec-struct-fs" type="x-shader/x-fragment"> >+precision mediump float; >+ >+struct s1 >+{ >+ vec3 v; >+}; >+ >+struct s2 >+{ >+ s1 s; >+}; >+ >+s2 a = s2(s1(vec3(0.0, 0.0, 0.0))); >+s2 b = s2(s1(vec3(1.0, 2.0, 3.0))); >+ >+void main(void) { >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+ a = b; >+ if (a.s.v.x == 1.0) { >+ gl_FragColor.y = 1.0; >+ } >+} >+</script> >+<script id="array-struct-fs" type="x-shader/x-fragment"> >+precision mediump float; >+ >+struct my_struct >+{ >+ float f[3]; >+}; >+ >+void main(void) { >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+ my_struct a; >+ my_struct b; >+ for (int i = 0; i < 3; ++i) { >+ a.f[i] = 0.0; >+ b.f[i] = float(i); >+ } >+ >+ a = b; >+ if (a.f[1] == 1.0 && a.f[2] == 2.0) { >+ gl_FragColor.y = 1.0; >+ } >+} >+</script> >+<script id="sampler-struct-fs" type="x-shader/x-fragment"> >+precision mediump float; >+ >+struct my_struct >+{ >+ sampler2D s; >+}; >+ >+uniform my_struct a; >+ >+void main(void) { >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+ my_struct b; >+ b = a; >+} >+</script> >+</head> >+<body> >+<canvas id="canvas" width="50" height="50"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description("Testing struct assignment"); >+ >+var wtu = WebGLTestUtils; >+GLSLConformanceTester.runTests([ >+ { >+ vShaderId: "simple-vs", >+ vShaderSuccess: true, >+ fShaderId: "simple-struct-fs", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ render: true, >+ passMsg: "Simple struct with one float", >+ }, >+ { >+ vShaderId: "simple-vs", >+ vShaderSuccess: true, >+ fShaderId: "vec-struct-fs", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ render: true, >+ passMsg: "Simple struct with a vector", >+ }, >+ { >+ vShaderId: "simple-vs", >+ vShaderSuccess: true, >+ fShaderId: "nested-struct-fs", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ render: true, >+ passMsg: "Nested struct with a float", >+ }, >+ { >+ vShaderId: "simple-vs", >+ vShaderSuccess: true, >+ fShaderId: "nested-vec-struct-fs", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ render: true, >+ passMsg: "Nested struct with a vector", >+ }, >+ { >+ vShaderId: "simple-vs", >+ vShaderSuccess: true, >+ fShaderId: "array-struct-fs", >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "Assigning a struct containing an array should not compile", >+ }, >+ { >+ vShaderId: "simple-vs", >+ vShaderSuccess: true, >+ fShaderId: "sampler-struct-fs", >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "Assigning a struct containing a sampler should not compile", >+ } >+]); >+debug(""); >+ >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-equals.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-equals.html >new file mode 100644 >index 00000000000..fee52dbbf92 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-equals.html >@@ -0,0 +1,238 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>GLSL Structure Equals Test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+ >+<script id="simple-vs" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+void main(void) { >+ gl_Position = a_position; >+} >+</script> >+<script id="simple-struct-fs" type="x-shader/x-fragment"> >+precision mediump float; >+struct my_struct { >+ float f; >+}; >+ >+my_struct a = my_struct(1.0); >+my_struct b = my_struct(1.0); >+ >+void main(void) { >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ if (a == b) { >+ gl_FragColor.y = 1.0; >+ } >+} >+</script> >+<script id="vec-struct-fs" type="x-shader/x-fragment"> >+precision mediump float; >+struct my_struct { >+ vec3 v; >+}; >+ >+my_struct a = my_struct(vec3(1.0, 2.0, 3.0)); >+my_struct b = my_struct(vec3(1.0, 2.0, 3.0)); >+ >+void main(void) { >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ if (a == b) { >+ gl_FragColor.y = 1.0; >+ } >+} >+</script> >+<script id="nested-struct-fs" type="x-shader/x-fragment"> >+precision mediump float; >+ >+struct s1 >+{ >+ float f; >+}; >+ >+struct s2 >+{ >+ s1 s; >+}; >+ >+s2 a = s2(s1(1.0)); >+s2 b = s2(s1(1.0)); >+ >+void main(void) { >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ if (a == b) { >+ gl_FragColor.y = 1.0; >+ } >+} >+</script> >+<script id="nested-vec-struct-fs" type="x-shader/x-fragment"> >+precision mediump float; >+ >+struct s1 >+{ >+ vec3 v; >+}; >+ >+struct s2 >+{ >+ s1 s; >+}; >+ >+s2 a = s2(s1(vec3(1.0, 2.0, 3.0))); >+s2 b = s2(s1(vec3(1.0, 2.0, 3.0))); >+ >+void main(void) { >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ if (a == b) { >+ gl_FragColor.y = 1.0; >+ } >+} >+</script> >+<script id="array-struct-fs" type="x-shader/x-fragment"> >+precision mediump float; >+ >+struct my_struct >+{ >+ float f[3]; >+}; >+ >+void main(void) { >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+ my_struct a; >+ my_struct b; >+ for (int i = 0; i < 3; ++i) { >+ a.f[i] = 0.0; >+ b.f[i] = 1.0; >+ } >+ >+ if (a == b) { >+ gl_FragColor.x = 1.0; >+ } >+} >+</script> >+<script id="sampler-struct-fs" type="x-shader/x-fragment"> >+precision mediump float; >+ >+struct my_struct >+{ >+ sampler2D s; >+}; >+ >+uniform my_struct a; >+uniform my_struct b; >+ >+void main(void) { >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ if (a == b) { >+ gl_FragColor.x = 1.0; >+ } >+} >+</script> >+</head> >+<body> >+<canvas id="canvas" width="50" height="50"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description("Testing struct equals"); >+ >+var wtu = WebGLTestUtils; >+GLSLConformanceTester.runTests([ >+ { >+ vShaderId: "simple-vs", >+ vShaderSuccess: true, >+ fShaderId: "simple-struct-fs", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ render: true, >+ passMsg: "Simple struct with one float", >+ }, >+ { >+ vShaderId: "simple-vs", >+ vShaderSuccess: true, >+ fShaderId: "vec-struct-fs", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ render: true, >+ passMsg: "Simple struct with a vector", >+ }, >+ { >+ vShaderId: "simple-vs", >+ vShaderSuccess: true, >+ fShaderId: "nested-struct-fs", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ render: true, >+ passMsg: "Nested struct with a float", >+ }, >+ { >+ vShaderId: "simple-vs", >+ vShaderSuccess: true, >+ fShaderId: "nested-vec-struct-fs", >+ fShaderSuccess: true, >+ linkSuccess: true, >+ render: true, >+ passMsg: "Nested struct with a vector", >+ }, >+ { >+ vShaderId: "simple-vs", >+ vShaderSuccess: true, >+ fShaderId: "array-struct-fs", >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "Comparing a struct containing an array should not compile", >+ }, >+ { >+ vShaderId: "simple-vs", >+ vShaderSuccess: true, >+ fShaderId: "sampler-struct-fs", >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "Comparing a struct containing a sampler should not compile", >+ } >+]); >+debug(""); >+ >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-mixed-array-declarators.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-mixed-array-declarators.html >new file mode 100644 >index 00000000000..c06002bcd86 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-mixed-array-declarators.html >@@ -0,0 +1,90 @@ >+<!-- >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css" /> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<title></title> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+precision mediump float; >+void main() { >+ struct S { >+ $(type) field; >+ }; >+ S s1[2], s2; >+ $(var).field = $(initializer); >+ gl_FragColor = $(asVec4); >+} >+</script> >+<script> >+"use strict"; >+description("Verifies that mixed (array vs. not array) struct declarators work correctly."); >+var tests = []; >+var wtu = WebGLTestUtils; >+var typeInfos = [ >+ { type: 'float', initializer: '1.0', asVec4: 'vec4(0.0,$(var).field,0.0,1.0)' }, >+ { type: 'vec2', initializer: 'vec2(0.0, 1.0)', asVec4: 'vec4($(var).field,0.0,1.0)' }, >+ { type: 'vec3', initializer: 'vec3(0.0, 1.0, 0.0)', asVec4: 'vec4($(var).field,1.0)' }, >+ { type: 'vec4', initializer: 'vec4(0.0, 1.0, 0.0, 1.0)', asVec4: '$(var).field' }, >+ { type: 'int', initializer: '1', asVec4: 'vec4(0.0,$(var).field,0.0,1.0)' }, >+ { type: 'ivec2', initializer: 'ivec2(0, 1)', asVec4: 'vec4($(var).field,0.0,1.0)' }, >+ { type: 'ivec3', initializer: 'ivec3(0, 1, 0)', asVec4: 'vec4($(var).field,1.0)' }, >+ { type: 'ivec4', initializer: 'ivec4(0, 1, 0, 1)', asVec4: 'vec4($(var).field)' }, >+ { type: 'bool', initializer: 'true', asVec4: 'vec4(0.0,$(var).field,0.0,1.0)' }, >+ { type: 'bvec2', initializer: 'bvec2(false, true)', asVec4: 'vec4($(var).field,0.0,1.0)' }, >+ { type: 'bvec3', initializer: 'bvec3(false, true, false)', asVec4: 'vec4($(var).field,1.0)' }, >+ { type: 'bvec4', initializer: 'bvec4(false,true,false,true)',asVec4: 'vec4($(var).field)' }, >+]; >+['s1[0]', 's1[1]', 's2'].forEach(function(varName) { >+ typeInfos.forEach(function (typeInfo) { >+ var replaceParams = { >+ type: typeInfo.type, >+ initializer: typeInfo.initializer, >+ var: varName, >+ asVec4: wtu.replaceParams(typeInfo.asVec4, {var: varName}) >+ }; >+ tests.push({ >+ fShaderSource: wtu.replaceParams(wtu.getScript('fragmentShader'), replaceParams), >+ passMsg: typeInfo.type, >+ fShaderSuccess: true, >+ linkSuccess: true, >+ render:true >+ }); >+ }); >+}); >+GLSLConformanceTester.runTests(tests); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-nesting-exceeds-maximum.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-nesting-exceeds-maximum.html >new file mode 100644 >index 00000000000..c6fe02fbd85 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-nesting-exceeds-maximum.html >@@ -0,0 +1,76 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// shader with too-deep struct nesting should fail per WebGL spec >+struct nesting5 { >+ vec4 vecfield; >+}; >+ >+struct nesting4 { >+ nesting5 field5; >+}; >+ >+struct nesting3 { >+ nesting4 field4; >+}; >+ >+struct nesting2 { >+ nesting3 field3; >+}; >+ >+struct nesting1 { >+ nesting2 field2; >+}; >+ >+uniform nesting1 uniform1; >+void main() >+{ >+ gl_Position = uniform1.field2.field3.field4.field5.vecfield; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-nesting-of-variable-names.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-nesting-of-variable-names.html >new file mode 100644 >index 00000000000..dca72cc46bc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-nesting-of-variable-names.html >@@ -0,0 +1,93 @@ >+<!-- >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css" /> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<title></title> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+precision mediump float; >+struct S { $(outer_type) u; }; >+void main() { >+ S S; // This is legal, 'S' as a typename is defined in another scope. >+ { >+ struct S { $(inner_type) a; }; // This is legal as well, 'S' is now defined as a variable name in an ancestor scope >+ S newvar; >+ newvar.a = $(initializer); >+ gl_FragColor = $(fragColor); >+ } >+} >+</script> >+<script> >+"use strict"; >+description("This test verifies that defining a typename in a new scope when the typename is the name of a variable that hides a typename declaration succeeds for all combinations of GLSL types."); >+var tests = []; >+var wtu = WebGLTestUtils; >+var typeInfo = [ >+ { Type: 'float', initializer: '1.0', fragColor: 'vec4(0.0, newvar.a, 0.0, 1.0)' }, >+ { Type: 'vec2', initializer: 'vec2(0.0, 1.0)', fragColor: 'vec4(newvar.a, 0.0, 1.0)' }, >+ { Type: 'vec3', initializer: 'vec3(0.0, 1.0, 0.0)', fragColor: 'vec4(newvar.a, 1.0)' }, >+ { Type: 'vec4', initializer: 'vec4(0.0, 1.0, 0.0, 1.0)', fragColor: 'newvar.a' }, >+ { Type: 'int', initializer: '1', fragColor: 'vec4(0.0, newvar.a, 0.0, 1.0)' }, >+ { Type: 'ivec2', initializer: 'ivec2(0, 1)', fragColor: 'vec4(newvar.a, 0.0, 1.0)' }, >+ { Type: 'ivec3', initializer: 'ivec3(0, 1, 0)', fragColor: 'vec4(newvar.a, 1.0)' }, >+ { Type: 'ivec4', initializer: 'ivec4(0, 1, 0, 1)', fragColor: 'vec4(newvar.a)' }, >+ { Type: 'bool', initializer: 'true', fragColor: 'vec4(0.0, newvar.a, 0.0, 1.0)' }, >+ { Type: 'bvec2', initializer: 'bvec2(false, true)', fragColor: 'vec4(newvar.a, 0.0, 1.0)' }, >+ { Type: 'bvec3', initializer: 'bvec3(false, true, false)', fragColor: 'vec4(newvar.a, 1.0)' }, >+ { Type: 'bvec4', initializer: 'bvec4(false,true,false,true)',fragColor: 'vec4(newvar.a)' }, >+]; >+typeInfo.forEach(function (outerType) { >+ typeInfo.forEach(function (innerType) { >+ var replaceParams = { >+ outer_type: outerType.Type, >+ inner_type: innerType.Type, >+ // use the initializer and fragColor for the inner type. Its definition should override the variable name in the outerscope. >+ initializer: innerType.initializer, >+ fragColor: innerType.fragColor >+ }; >+ tests.push({ >+ fShaderSource: wtu.replaceParams(wtu.getScript('fragmentShader'), replaceParams), >+ passMsg: 'Outer struct type: ' + outerType.Type + ' inner struct type: ' + innerType.Type, >+ fShaderSuccess: true, >+ linkSuccess: true, >+ render: true >+ }); >+ }) >+}) >+GLSLConformanceTester.runTests(tests); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-nesting-under-maximum.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-nesting-under-maximum.html >new file mode 100644 >index 00000000000..b208358bbd0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-nesting-under-maximum.html >@@ -0,0 +1,72 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+// shader with struct nesting less than maximum in WebGL spec should succeed >+struct nesting4 { >+ vec4 vecfield; >+}; >+ >+struct nesting3 { >+ nesting4 field4; >+}; >+ >+struct nesting2 { >+ nesting3 field3; >+}; >+ >+struct nesting1 { >+ nesting2 field2; >+}; >+ >+uniform nesting1 uniform1; >+void main() >+{ >+ gl_Position = uniform1.field2.field3.field4.vecfield; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-specifiers-in-uniforms.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-specifiers-in-uniforms.html >new file mode 100644 >index 00000000000..548d640ab33 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-specifiers-in-uniforms.html >@@ -0,0 +1,84 @@ >+<!-- >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css" /> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<title></title> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+precision mediump float; >+uniform struct S { $(type) field;} s; >+void main() { >+ // All uniforms are required to be zero initialized. Add the color green >+ // to make the rendering test pass. >+ gl_FragColor = $(asVec4) + vec4(0.0, 1.0, 0.0, 1.0); >+} >+</script> >+<script> >+"use strict"; >+description("Verifies that structure specifiers work with uniforms."); >+var tests = []; >+var wtu = WebGLTestUtils; >+var typeInfos = [ >+ { type: 'float', asVec4: 'vec4(0.0,s.field,0.0,0.0)' }, >+ { type: 'vec2', asVec4: 'vec4(s.field,0.0,0.0)' }, >+ { type: 'vec3', asVec4: 'vec4(s.field,0.0)' }, >+ { type: 'vec4', asVec4: 's.field' }, >+ { type: 'int', asVec4: 'vec4(0.0,s.field,0.0,0.0)' }, >+ { type: 'ivec2', asVec4: 'vec4(s.field,0.0,0.0)' }, >+ { type: 'ivec3', asVec4: 'vec4(s.field,0.0)' }, >+ { type: 'ivec4', asVec4: 'vec4(s.field)' }, >+ { type: 'bool', asVec4: 'vec4(0.0,s.field,0.0,0.0)' }, >+ { type: 'bvec2', asVec4: 'vec4(s.field,0.0,0.0)' }, >+ { type: 'bvec3', asVec4: 'vec4(s.field,0.0)' }, >+ { type: 'bvec4', asVec4: 'vec4(s.field)' }, >+]; >+typeInfos.forEach(function (typeInfo) { >+ var replaceParams = { >+ type: typeInfo.type, >+ asVec4: typeInfo.asVec4 >+ }; >+ tests.push({ >+ fShaderSource: wtu.replaceParams(wtu.getScript('fragmentShader'), replaceParams), >+ passMsg: typeInfo.type, >+ fShaderSuccess: true, >+ linkSuccess: true, >+ render:true >+ }); >+}); >+GLSLConformanceTester.runTests(tests); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-unary-operators.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-unary-operators.html >new file mode 100644 >index 00000000000..a2bdecb791f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/struct-unary-operators.html >@@ -0,0 +1,89 @@ >+<!-- >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css" /> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<title></title> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+precision mediump float; >+struct S { $(type) t; }; >+void main() { >+ S a; >+ a.t = $(initializer); >+ S b = $(operator)a; // Unary operators not allowed >+ gl_FragColor = $(fragColor); >+} >+</script> >+<script> >+"use strict"; >+description("This test verifies that unary operators +, ++, -, --, !, and ~ do not work on structures. Per the spec, field selectors, equality and assignment are the only operators allowed on structures."); >+var tests = []; >+var wtu = WebGLTestUtils; >+var operators = ['+', '++', '-', '--', '!', '~'] >+var typeInfos = [ >+ { type: 'float', initializer: '1.0', fragColor: 'vec4(0.0, b.t, 0.0, 1.0)' }, >+ { type: 'vec2', initializer: 'vec2(0.0, 1.0)', fragColor: 'vec4(b.t, 0.0, 1.0)' }, >+ { type: 'vec3', initializer: 'vec3(0.0, 1.0, 0.0)', fragColor: 'vec4(b.t, 1.0)' }, >+ { type: 'vec4', initializer: 'vec4(0.0, 1.0, 0.0, 1.0)', fragColor: 'b.t' }, >+ { type: 'int', initializer: '1', fragColor: 'vec4(0.0, b.t, 0.0, 1.0)' }, >+ { type: 'ivec2', initializer: 'ivec2(0, 1)', fragColor: 'vec4(b.t, 0.0, 1.0)' }, >+ { type: 'ivec3', initializer: 'ivec3(0, 1, 0)', fragColor: 'vec4(b.t, 1.0)' }, >+ { type: 'ivec4', initializer: 'ivec4(0, 1, 0, 1)', fragColor: 'vec4(b.t)' }, >+ { type: 'bool', initializer: 'true', fragColor: 'vec4(0.0, b.t, 0.0, 1.0)' }, >+ { type: 'bvec2', initializer: 'bvec2(false, true)', fragColor: 'vec4(b.t, 0.0, 1.0)' }, >+ { type: 'bvec3', initializer: 'bvec3(false, true, false)', fragColor: 'vec4(b.t, 1.0)' }, >+ { type: 'bvec4', initializer: 'bvec4(false,true,false,true)',fragColor: 'vec4(b.t)' }, >+]; >+operators.forEach(function (operator) { >+ typeInfos.forEach(function (typeInfo) { >+ var replaceParams = { >+ initializer: typeInfo.initializer, >+ type: typeInfo.type, >+ fragColor: typeInfo.fragColor, >+ operator: operator, >+ }; >+ tests.push({ >+ fShaderSource: wtu.replaceParams(wtu.getScript('fragmentShader'), replaceParams), >+ passMsg: 'Unary operator ' + operator + ' cannot be used on a struct with a ' + typeInfo.type, >+ fShaderSuccess: false, >+ linkSuccess: false >+ }); >+ }); >+}); >+GLSLConformanceTester.runTests(tests); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/ternary-operator-on-arrays.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/ternary-operator-on-arrays.html >new file mode 100644 >index 00000000000..4c462b617aa >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/ternary-operator-on-arrays.html >@@ -0,0 +1,85 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests - Ternary operator on arrays</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshader-array-ternary-operator" type="x-shader/x-fragment"> >+precision mediump float; >+void main() >+{ >+ float a[3]; >+ float b[3]; >+ float c[3] = true ? a : b; >+} >+</script> >+<script id="fshader-struct-array-ternary-operator" type="x-shader/x-fragment"> >+precision mediump float; >+struct MyStruct { >+ bool a[3]; >+}; >+ >+void main() >+{ >+ MyStruct b; >+ MyStruct c; >+ MyStruct d = true ? b : c; >+} >+</script> >+<script> >+"use strict"; >+description("Checks ternary operators for structs and arrays."); >+ >+GLSLConformanceTester.runTests([ >+{ fShaderId: 'fshader-array-ternary-operator', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "Using ternary operators with arrays is not allowed", >+}, >+{ fShaderId: 'fshader-struct-array-ternary-operator', >+ fShaderSuccess: false, >+ linkSuccess: false, >+ passMsg: "By implication, using ternary operators with structs containing arrays is not allowed", >+}, >+]); >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/ternary-operators-in-global-initializers.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/ternary-operators-in-global-initializers.html >new file mode 100644 >index 00000000000..2b578b3728d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/ternary-operators-in-global-initializers.html >@@ -0,0 +1,86 @@ >+<!-- >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css" /> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<title>Ternary Operators in Global Initializers</title> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+precision mediump float; >+const $(type) green = $(green); >+const $(type) black = $(black); >+$(type) var = (true) ? green : black; >+void main() { >+ gl_FragColor = $(asVec4); >+} >+</script> >+<script> >+"use strict"; >+description("This test verifies that ternary operators can be used in global initializers."); >+var tests = []; >+var wtu = WebGLTestUtils; >+var typeInfos = [ >+ { type: 'float', green: '1.0', black: '0.0', asVec4: 'vec4(0.0,var,0.0,1.0)' }, >+ { type: 'vec2', green: 'vec2(0.0,1.0)', black: 'vec2(0.0,0.0)', asVec4: 'vec4(var,0.0,1.0)' }, >+ { type: 'vec3', green: 'vec3(0.0,1.0,0.0)', black: 'vec3(0.0,0.0,0.0)', asVec4: 'vec4(var,1.0)' }, >+ { type: 'vec4', green: 'vec4(0.0,1.0,0.0,1.0)', black: 'vec4(0.0,0.0,0.0,0.0)', asVec4: 'var' }, >+ { type: 'int', green: '1', black: '0', asVec4: 'vec4(0.0,var,0.0,1.0)' }, >+ { type: 'ivec2', green: 'ivec2(0,1)', black: 'ivec2(0,0)', asVec4: 'vec4(var,0.0,1.0)' }, >+ { type: 'ivec3', green: 'ivec3(0,1,0)', black: 'ivec3(0,0,0)', asVec4: 'vec4(var,1.0)' }, >+ { type: 'ivec4', green: 'ivec4(0,1,0,1)', black: 'ivec4(0,0,0,0)', asVec4: 'vec4(var)' }, >+ { type: 'bool', green: 'true', black: 'false', asVec4: 'vec4(0.0,var,0.0,1.0)' }, >+ { type: 'bvec2', green: 'bvec2(false,true)', black: 'bvec2(false,false)', asVec4: 'vec4(var,0.0,1.0)' }, >+ { type: 'bvec3', green: 'bvec3(false,true,false)', black: 'bvec3(false,false,false)', asVec4: 'vec4(var,1.0)' }, >+ { type: 'bvec4', green: 'bvec4(false,true,false,true)',black: 'bvec4(false,false,false,false)', asVec4: 'vec4(var)' }, >+]; >+typeInfos.forEach(function (typeInfo) { >+ var replaceParams = { >+ type: typeInfo.type, >+ green: typeInfo.green, >+ black: typeInfo.black, >+ asVec4: typeInfo.asVec4, >+ }; >+ tests.push({ >+ fShaderSource: wtu.replaceParams(wtu.getScript('fragmentShader'), replaceParams), >+ passMsg: typeInfo.type, >+ fShaderSuccess: true, >+ linkSuccess: true, >+ render: true >+ }); >+}); >+GLSLConformanceTester.runTests(tests); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/ternary-operators-in-initializers.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/ternary-operators-in-initializers.html >new file mode 100644 >index 00000000000..5a0f3d1cbe5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/ternary-operators-in-initializers.html >@@ -0,0 +1,143 @@ >+<!-- >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css" /> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+<title></title> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="intFragShader" type="text/something-not-javascript"> >+void main() { >+ int i = 2, j = (i > 1) ? 1 : 0; >+ gl_FragColor = vec4(0.0, j, 0.0, 1.0); >+} >+</script> >+<script id="ivec2FragShader" type="text/something-not-javascript"> >+void main() { >+ ivec2 i = ivec2(2, 0), j = (i.x > 1) ? ivec2(0, 1) : ivec2(0, 0); >+ gl_FragColor = vec4(j, 0.0, 1.0); >+} >+</script> >+<script id="ivec3FragShader" type="text/something-not-javascript"> >+void main() { >+ ivec3 i = ivec3(0, 2, 0), j = (i.y > 1) ? ivec3(0, 1, 0) : ivec3(0, 0, 0); >+ gl_FragColor = vec4(j, 1.0); >+} >+</script> >+<script id="ivec4FragShader" type="text/something-not-javascript"> >+void main() { >+ ivec4 i = ivec4(0.0, 0.0, 2.0, 0.0), j = (i.z > 1) ? ivec4(0, 1, 0, 1) : ivec4(0, 0, 0, 1); >+ gl_FragColor = vec4(j); >+} >+</script> >+<script id="floatFragShader" type="text/something-not-javascript"> >+void main() { >+ precision mediump float; >+ float i = 2.0, j = (i > 1.0) ? 1.0 : 0.0; >+ gl_FragColor = vec4(0.0, j, 0.0, 1.0); >+} >+</script> >+<script id="vec2FragShader" type="text/something-not-javascript"> >+void main() { >+ precision mediump float; >+ vec2 i = vec2(2.0, 0.0), j = (i.x > 1.0) ? vec2(0.0, 1.0) : vec2(0.0, 0.0); >+ gl_FragColor = vec4(j, 0.0, 1.0); >+} >+</script> >+<script id="vec3FragShader" type="text/something-not-javascript"> >+void main() { >+ precision mediump float; >+ vec3 i = vec3(0.0, 2.0, 0.0), j = (i.y > 1.0) ? vec3(0.0, 1.0, 0.0) : vec3(0.0, 0.0, 0.0); >+ gl_FragColor = vec4(j, 1.0); >+} >+</script> >+<script id="vec4FragShader" type="text/something-not-javascript"> >+void main() { >+ precision mediump float; >+ vec4 i = vec4(0.0, 0.0, 2.0, 0.0), j = (i.z > 1.0) ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(0.0, 0.0, 0.0, 1.0); >+ gl_FragColor = j; >+} >+</script> >+<script id="boolFragShader" type="text/something-not-javascript"> >+void main() { >+ bool i = true, j = i ? true : false; >+ gl_FragColor = vec4(0.0, j, 0.0, 1.0); >+} >+</script> >+<script id="bvec2FragShader" type="text/something-not-javascript"> >+void main() { >+ bvec2 i = bvec2(true, false), j = i.x ? bvec2(false, true) : bvec2(false, false); >+ gl_FragColor = vec4(j, 0.0, 1.0); >+} >+</script> >+<script id="bvec3FragShader" type="text/something-not-javascript"> >+void main() { >+ bvec3 i = bvec3(false, true, false), j = i.y ? bvec3(false, true, false) : bvec3(false, false, false); >+ gl_FragColor = vec4(j, 1.0); >+} >+</script> >+<script id="bvec4FragShader" type="text/something-not-javascript"> >+void main() { >+ bvec4 i = bvec4(false, false, true, true), j = i.z ? bvec4(false, true, false, true) : bvec4(false, false, false, true); >+ gl_FragColor = vec4(j); >+} >+</script> >+<script> >+"use strict"; >+description("This test verifies initializers with ternary operators correctly initialize all variables."); >+// Test fragment shaders are of the form >+// void main() { >+// {type} i = {initializer}, j = {ternary test using i that succeeds} ? : {green} : {black}; >+// gl_FragColor = vec4(...); // Emit green so that test will pass >+// } >+// The fragment shader must compile and link with the default vertex shader. J must be able to use the values of I as well as have its own >+// values properly initialized. >+var tests = [ >+ { fShaderId: 'intFragShader', passMsg: 'Ternary operator in integer initalization', fShaderSuccess: true, linkSuccess: true, render: true }, >+ { fShaderId: 'ivec2FragShader', passMsg: 'Ternary operator in ivec2 initalization', fShaderSuccess: true, linkSuccess: true, render: true }, >+ { fShaderId: 'ivec3FragShader', passMsg: 'Ternary operator in ivec3 initalization', fShaderSuccess: true, linkSuccess: true, render: true }, >+ { fShaderId: 'ivec4FragShader', passMsg: 'Ternary operator in ivec4 initalization', fShaderSuccess: true, linkSuccess: true, render: true }, >+ { fShaderId: 'floatFragShader', passMsg: 'Ternary operator in float initalization', fShaderSuccess: true, linkSuccess: true, render: true }, >+ { fShaderId: 'vec2FragShader', passMsg: 'Ternary operator in vec2 initalization', fShaderSuccess: true, linkSuccess: true, render: true }, >+ { fShaderId: 'vec3FragShader', passMsg: 'Ternary operator in vec3 initalization', fShaderSuccess: true, linkSuccess: true, render: true }, >+ { fShaderId: 'vec4FragShader', passMsg: 'Ternary operator in vec4 initalization', fShaderSuccess: true, linkSuccess: true, render: true }, >+ { fShaderId: 'boolFragShader', passMsg: 'Ternary operator in bool initalization', fShaderSuccess: true, linkSuccess: true, render: true }, >+ { fShaderId: 'bvec2FragShader', passMsg: 'Ternary operator in bvec2 initalization', fShaderSuccess: true, linkSuccess: true, render: true }, >+ { fShaderId: 'bvec3FragShader', passMsg: 'Ternary operator in bvec3 initalization', fShaderSuccess: true, linkSuccess: true, render: true }, >+ { fShaderId: 'bvec4FragShader', passMsg: 'Ternary operator in bvec4 initalization', fShaderSuccess: true, linkSuccess: true, render: true }, >+]; >+GLSLConformanceTester.runTests(tests); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/uniform-location-length-limits.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/uniform-location-length-limits.html >new file mode 100644 >index 00000000000..58ec4761773 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/uniform-location-length-limits.html >@@ -0,0 +1,107 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<title>WebGL uniform location length tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="50" height="50"> >+There is supposed to be an example drawing here, but it's not important. >+</canvas> >+<div id="description">Verify limits on the lengths of uniform locations per WebGL spec, "Maximum Uniform and Attribute Location Lengths".</div> >+<div id="console"></div> >+<script id="goodVertexShader" type="x-shader/x-vertex"> >+// A vertex shader where the needed uniform location is exactly 256 characters. >+struct Nesting2 { >+ vec4 identifier62CharactersLong_01234567890123456789012345678901234; >+}; >+ >+struct Nesting1 { >+ Nesting2 identifier64CharactersLong_0123456789012345678901234567890123456; >+}; >+ >+uniform Nesting1 identifier128CharactersLong_0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789; >+ >+void main() { >+ gl_Position = identifier128CharactersLong_0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789.identifier64CharactersLong_0123456789012345678901234567890123456.identifier62CharactersLong_01234567890123456789012345678901234; >+} >+</script> >+<script id="badVertexShader" type="x-shader/x-vertex"> >+// A vertex shader where the needed uniform location is 257 characters. >+struct Nesting2 { >+ vec4 identifier63CharactersLong_012345678901234567890123456789012345; >+}; >+ >+struct Nesting1 { >+ Nesting2 identifier64CharactersLong_0123456789012345678901234567890123456; >+}; >+ >+uniform Nesting1 identifier128CharactersLong_0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789; >+ >+void main() { >+ Nesting2 temp = identifier128CharactersLong_0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789.identifier64CharactersLong_0123456789012345678901234567890123456; >+ gl_Position = temp.identifier63CharactersLong_012345678901234567890123456789012345; >+} >+</script> >+<script id="fragmentShader" type="x-shader/x-fragment"> >+precision mediump float; >+ >+void main() { >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+} >+</script> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+ >+debug("Test uniform location underneath the length limit"); >+var program = wtu.loadProgramFromScript(gl, "goodVertexShader", "fragmentShader"); >+shouldBe('gl.getProgramParameter(program, gl.LINK_STATUS)', 'true'); >+var uniformLoc = gl.getUniformLocation(program, "identifier128CharactersLong_0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789.identifier64CharactersLong_0123456789012345678901234567890123456.identifier62CharactersLong_01234567890123456789012345678901234"); >+shouldBeNonNull('uniformLoc'); >+wtu.glErrorShouldBe(gl, gl.NONE); >+ >+debug("Test uniform location over the length limit"); >+program = wtu.loadProgramFromScript(gl, "badVertexShader", "fragmentShader"); >+wtu.glErrorShouldBe(gl, gl.NONE); >+shouldBe('gl.getProgramParameter(program, gl.LINK_STATUS)', 'true'); >+var uniformLoc = gl.getUniformLocation(program, "identifier128CharactersLong_0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789.identifier64CharactersLong_0123456789012345678901234567890123456.identifier63CharactersLong_012345678901234567890123456789012345"); >+wtu.glErrorShouldBe(gl, gl.INVALID_VALUE); >+shouldBeNull('uniformLoc'); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/uninitialized-local-global-variables.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/uninitialized-local-global-variables.html >new file mode 100644 >index 00000000000..c4da7895a9c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/uninitialized-local-global-variables.html >@@ -0,0 +1,295 @@ >+<!-- >+ >+/* >+** Copyright (c) 2017 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Uninitialized local/global variables should be initialized</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+ >+<script id="vs_uninit_in_frag" type="x-shader/x-vertex"> >+precision mediump float; >+attribute vec4 a_position; >+void main() { >+ gl_Position = a_position; >+} >+</script> >+ >+<!-- Uninitialized local in vertex shader --> >+<script id="vs_uninit_local_in_vert" type="x-shader/x-vertex"> >+precision mediump float; >+attribute vec4 a_position; >+varying vec3 v_uninit; >+void main() { >+ vec3 uninit; // uninitialized >+ v_uninit = uninit; >+ gl_Position = a_position; >+} >+</script> >+<script id="fs_uninit_local_in_vert" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec3 v_uninit; >+void main() { >+ gl_FragColor = v_uninit.xyzz; >+} >+</script> >+ >+<!-- Uninitialized local in fragment shader --> >+<script id="fs_uninit_local_in_frag" type="x-shader/x-fragment"> >+precision mediump float; >+void main() { >+ vec2 uninit; // uninitialized >+ gl_FragColor = uninit.xyyy; >+} >+</script> >+ >+<!-- Uninitialized global in vertex shader --> >+<script id="vs_uninit_global_in_vert" type="x-shader/x-vertex"> >+precision mediump float; >+attribute vec4 a_position; >+varying float v_uninit; >+float uninit; // uninitialized >+void main() { >+ v_uninit = uninit; >+ gl_Position = a_position; >+} >+</script> >+<script id="fs_uninit_global_in_vert" type="x-shader/x-fragment"> >+precision mediump float; >+varying float v_uninit; >+void main() { >+ gl_FragColor = vec4(v_uninit); >+} >+</script> >+ >+<!-- Uninitialized global in fragment shader --> >+<script id="fs_uninit_global_in_frag" type="x-shader/x-fragment"> >+precision mediump float; >+vec4 uninit; // uninitialized >+void main() { >+ gl_FragColor = uninit; >+} >+</script> >+ >+<!-- Uninitialized local int in fragment shader --> >+<script id="fs_uninit_local_int_in_frag" type="x-shader/x-fragment"> >+precision mediump float; >+void main() { >+ int uninit; >+ gl_FragColor = vec4(uninit); >+} >+</script> >+ >+<!-- Uninitialized local variable and another variable in the same declaration using it as an initializer in fragment shader --> >+<script id="fs_uninit_two_local_variables_in_declaration_in_frag" type="x-shader/x-fragment"> >+precision mediump float; >+void main() { >+ vec2 uninit, uninit2 = uninit; >+ gl_FragColor = uninit2.xyyy; >+} >+</script> >+ >+<!-- Uninitialized local array and another variable in the same declaration using it in its initializer in fragment shader --> >+<script id="fs_uninit_array_and_another_in_declaration_in_frag" type="x-shader/x-fragment"> >+precision mediump float; >+void main() { >+ vec2 uninit[2], uninit2 = uninit[0]; >+ gl_FragColor = uninit2.xyyy; >+} >+</script> >+ >+<!-- Uninitialized global int in fragment shader --> >+<script id="fs_uninit_global_int_in_frag" type="x-shader/x-fragment"> >+precision mediump float; >+int uninit; // uninitialized >+void main() { >+ gl_FragColor = vec4(uninit); >+} >+</script> >+ >+<!-- Uninitialized local struct in fragment shader --> >+<script id="fs_uninit_local_struct_in_frag" type="x-shader/x-fragment"> >+precision mediump float; >+struct S { vec4 v; }; >+void main() { >+ S uninit; // uninitialized >+ gl_FragColor = uninit.v; >+} >+</script> >+ >+<!-- Uninitialized global struct in fragment shader --> >+<script id="fs_uninit_global_struct_in_frag" type="x-shader/x-fragment"> >+precision mediump float; >+struct S { vec4 v; }; >+S uninit; // uninitialized >+void main() { >+ gl_FragColor = uninit.v; >+} >+</script> >+ >+<!-- Uninitialized nameless local struct in fragment shader --> >+<script id="fs_uninit_nameless_local_struct_in_frag" type="x-shader/x-fragment"> >+precision mediump float; >+void main() { >+ struct { vec4 v; } uninit; // uninitialized >+ gl_FragColor = uninit.v; >+} >+</script> >+ >+<!-- Uninitialized nameless global struct in fragment shader --> >+<script id="fs_uninit_nameless_global_struct_in_frag" type="x-shader/x-fragment"> >+precision mediump float; >+struct { vec4 v; } uninit; // uninitialized >+void main() { >+ gl_FragColor = uninit.v; >+} >+</script> >+ >+<!-- Uninitialized local bool in fragment shader --> >+<script id="fs_uninit_local_bool_in_frag" type="x-shader/x-fragment"> >+precision mediump float; >+void main() { >+ bool uninit[16]; // uninitialized >+ bool result; >+ for (int i = 0; i < 16; i++) { >+ result = result || uninit[i]; >+ } >+ gl_FragColor = result ? vec4(1, 0, 0, 1) : vec4(0); >+} >+</script> >+ >+<!-- Uninitialized global bool in fragment shader --> >+<script id="fs_uninit_global_bool_in_frag" type="x-shader/x-fragment"> >+precision mediump float; >+bool uninit[16]; // uninitialized >+void main() { >+ bool result = false; >+ for (int i = 0; i < 16; i++) { >+ result = result || uninit[i]; >+ } >+ gl_FragColor = result ? vec4(1, 0, 0, 1) : vec4(0); >+} >+</script> >+ >+</head> >+<body> >+<canvas id="canvas" width="50" height="50"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description('Uninitialized local/global variables should be initialized: http://anglebug.com/1966'); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("canvas"); >+wtu.setupUnitQuad(gl); >+ >+var cases = [ >+ { >+ name: "Uninitialized local variable in vertex shader", >+ prog: ["vs_uninit_local_in_vert", "fs_uninit_local_in_vert"], >+ }, >+ { >+ name: "Uninitialized local variable in fragment shader", >+ prog: ["vs_uninit_in_frag", "fs_uninit_local_in_frag"], >+ }, >+ { >+ name: "Uninitialized global variable in vertex shader", >+ prog: ["vs_uninit_global_in_vert", "fs_uninit_global_in_vert"], >+ }, >+ { >+ name: "Uninitialized global variable in fragment shader", >+ prog: ["vs_uninit_in_frag", "fs_uninit_global_in_frag"], >+ }, >+ { >+ name: "Uninitialized local int variable in fragment shader", >+ prog: ["vs_uninit_in_frag", "fs_uninit_local_int_in_frag"], >+ }, >+ { >+ name: "Uninitialized local variable and another variable in the same declaration using it as an initializer in fragment shader", >+ prog: ["vs_uninit_in_frag", "fs_uninit_two_local_variables_in_declaration_in_frag"], >+ }, >+ { >+ name: "Uninitialized local array and another variable in the same declaration using it in its initializer in fragment shader", >+ prog: ["vs_uninit_in_frag", "fs_uninit_array_and_another_in_declaration_in_frag"], >+ }, >+ { >+ name: "Uninitialized global int variable in fragment shader", >+ prog: ["vs_uninit_in_frag", "fs_uninit_global_int_in_frag"], >+ }, >+ { >+ name: "Uninitialized local struct variable in fragment shader", >+ prog: ["vs_uninit_in_frag", "fs_uninit_local_struct_in_frag"], >+ }, >+ { >+ name: "Uninitialized global struct variable in fragment shader", >+ prog: ["vs_uninit_in_frag", "fs_uninit_global_struct_in_frag"], >+ }, >+ { >+ name: "Uninitialized nameless local struct variable in fragment shader", >+ prog: ["vs_uninit_in_frag", "fs_uninit_nameless_local_struct_in_frag"], >+ }, >+ { >+ name: "Uninitialized nameless global struct variable in fragment shader", >+ prog: ["vs_uninit_in_frag", "fs_uninit_nameless_global_struct_in_frag"], >+ }, >+ { >+ name: "Uninitialized local bool array variable in fragment shader", >+ prog: ["vs_uninit_in_frag", "fs_uninit_local_bool_in_frag"], >+ }, >+ { >+ name: "Uninitialized global bool array variable in fragment shader", >+ prog: ["vs_uninit_in_frag", "fs_uninit_global_bool_in_frag"], >+ }, >+]; >+ >+function runTest() { >+ for (var i = 0; i < cases.length; ++i) { >+ debug(""); >+ debug(cases[i].name); >+ var program = wtu.setupProgram(gl, cases[i].prog, ["a_position"], undefined, true); >+ gl.clearColor(1.0, 0.0, 0.0, 1.0); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas(gl, [0, 0, 0, 0]); >+ } >+ >+ debug(""); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+} >+ >+runTest(); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/preprocessor/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/preprocessor/00_test_list.txt >new file mode 100644 >index 00000000000..a921678aaa4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/preprocessor/00_test_list.txt >@@ -0,0 +1 @@ >+--min-version 1.0.4 macro-expansion-tricky.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/preprocessor/macro-expansion-tricky.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/preprocessor/macro-expansion-tricky.html >new file mode 100644 >index 00000000000..8627307a29e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/preprocessor/macro-expansion-tricky.html >@@ -0,0 +1,67 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Tricky macro expansion</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fshaderRecursiveMacroNameInsideIncompleteMacroInvocationInMacroExpansion" type="x-shader/x-fragment"> >+#define m(a) >+#define a m((a) >+a) >+ >+precision mediump float; >+ >+void main() { >+ gl_FragColor = vec4(0.0); >+} >+</script> >+<script type="application/javascript"> >+"use strict"; >+description(); >+ >+GLSLConformanceTester.runTests([ >+{ >+ fShaderId: 'fshaderRecursiveMacroNameInsideIncompleteMacroInvocationInMacroExpansion', >+ fShaderSuccess: true, >+ linkSuccess: true, >+ passMsg: 'Recursive macro name inside incomplete macro invocation in macro expansion should not crash' >+} >+]); >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/00_test_list.txt >new file mode 100644 >index 00000000000..7c2da3e8f5c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/00_test_list.txt >@@ -0,0 +1,8 @@ >+_webgl_field.vert.html >+_webgl_function.vert.html >+_webgl_struct.vert.html >+_webgl_variable.vert.html >+webgl_field.vert.html >+webgl_function.vert.html >+webgl_struct.vert.html >+webgl_variable.vert.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/_webgl_field.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/_webgl_field.vert.html >new file mode 100644 >index 00000000000..4d084a19bdf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/_webgl_field.vert.html >@@ -0,0 +1,61 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// use of reserved _webgl prefix as structure field should fail >+struct Foo { >+ int _webgl_bar; >+}; >+ >+void main() { >+ Foo foo = Foo(1); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/_webgl_function.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/_webgl_function.vert.html >new file mode 100644 >index 00000000000..ce78598b846 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/_webgl_function.vert.html >@@ -0,0 +1,59 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// use of reserved _webgl prefix as function name should fail >+vec4 _webgl_foo() { >+ return vec4(1.0); >+} >+ >+void main() { >+ gl_Position = _webgl_foo(); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/_webgl_struct.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/_webgl_struct.vert.html >new file mode 100644 >index 00000000000..d9dd14abaa3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/_webgl_struct.vert.html >@@ -0,0 +1,59 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// use of reserved _webgl prefix as structure name should fail >+struct _webgl_Foo { >+ int bar; >+}; >+ >+void main() { >+ _webgl_Foo foo = _webgl_Foo(1); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/_webgl_variable.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/_webgl_variable.vert.html >new file mode 100644 >index 00000000000..6c1fad348ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/_webgl_variable.vert.html >@@ -0,0 +1,55 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// use of reserved _webgl prefix as structure field should fail >+void main() { >+ vec4 _webgl_foo; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/webgl_field.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/webgl_field.vert.html >new file mode 100644 >index 00000000000..e39800af5d4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/webgl_field.vert.html >@@ -0,0 +1,61 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// use of reserved webgl_ prefix as structure field should fail >+struct Foo { >+ int webgl_bar; >+}; >+ >+void main() { >+ Foo foo = Foo(1); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/webgl_function.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/webgl_function.vert.html >new file mode 100644 >index 00000000000..4285dd8b677 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/webgl_function.vert.html >@@ -0,0 +1,59 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// use of reserved webgl_ prefix as function name should fail >+vec4 webgl_foo() { >+ return vec4(1.0); >+} >+ >+void main() { >+ gl_Position = webgl_foo(); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/webgl_struct.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/webgl_struct.vert.html >new file mode 100644 >index 00000000000..f080a40f286 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/webgl_struct.vert.html >@@ -0,0 +1,59 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// use of reserved webgl_ prefix as structure name should fail >+struct webgl_Foo { >+ int bar; >+}; >+ >+void main() { >+ webgl_Foo foo = webgl_Foo(1); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/webgl_variable.vert.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/webgl_variable.vert.html >new file mode 100644 >index 00000000000..3fdc5f8445a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/reserved/webgl_variable.vert.html >@@ -0,0 +1,55 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vertexShader" type="text/something-not-javascript"> >+ >+// use of reserved webgl_ prefix as variable should fail >+void main() { >+ vec4 webgl_foo; >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/samplers/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/samplers/00_test_list.txt >new file mode 100644 >index 00000000000..c0f612d81d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/samplers/00_test_list.txt >@@ -0,0 +1,4 @@ >+glsl-function-texture2d-bias.html >+glsl-function-texture2dlod.html >+glsl-function-texture2dproj.html >+--min-version 1.0.3 glsl-function-texture2dprojlod.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2d-bias.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2d-bias.html >new file mode 100644 >index 00000000000..da197eb15ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2d-bias.html >@@ -0,0 +1,122 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL texture2D GLSL conformance test.</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="256" height="256" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader2d" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+attribute vec2 texCoord0; >+varying vec2 texCoord; >+void main() { >+ gl_Position = vPosition; >+ texCoord = texCoord0; >+} >+</script> >+<script id="fshader2d" type="x-shader/x-fragment"> >+precision mediump float; >+uniform sampler2D tex; >+uniform float bias; >+varying vec2 texCoord; >+void main() { >+ gl_FragData[0] = texture2D(tex, texCoord, bias); >+} >+</script> >+<script> >+"use strict"; >+description("tests GLSL texture2D function with bias"); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("example"); >+ >+shouldBe("canvas.width", "256"); >+shouldBe("canvas.height", "256"); >+ >+var gl = wtu.create3DContext(canvas); >+var program = wtu.setupProgram( >+ gl, ['vshader2d', 'fshader2d'], ['vPosition', 'texCoord0'], [0, 1]); >+wtu.setupUnitQuad(gl, 0, 1); >+ >+var colors = [ >+ {name: 'red', color:[255, 0, 0, 255]}, >+ {name: 'green', color:[0, 255, 0, 255]}, >+ {name: 'blue', color:[0, 0, 255, 255]}, >+ {name: 'yellow', color:[255, 255, 0, 255]}, >+ {name: 'magenta', color:[255, 0, 255, 255]}, >+ {name: 'cyan', color:[0, 255, 255, 255]}, >+ {name: 'pink', color:[255, 128, 128, 255]}, >+ {name: 'gray', color:[128, 128, 128, 255]}, >+ {name: 'light green', color:[128, 255, 128, 255]}, >+]; >+ >+shouldBe("colors.length", "9"); >+ >+var tex = gl.createTexture(); >+gl.bindTexture(gl.TEXTURE_2D, tex); >+gl.texParameteri( >+ gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_NEAREST); >+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.REPEAT); >+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.REPEAT); >+ >+for (var ii = 0; ii < colors.length; ++ii) { >+ var color = colors[ii]; >+ var size = Math.pow(2, colors.length - ii - 1); >+ wtu.fillTexture(gl, tex, size, size, color.color, ii); >+} >+ >+var loc = gl.getUniformLocation(program, "bias"); >+ >+for (var ii = 0; ii < colors.length; ++ii) { >+ gl.uniform1f(loc, ii); >+ var color = colors[ii]; >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas( >+ gl, color.color, >+ "256x256 texture drawn to 256x256 dest with bias = " + ii + >+ " should be " + color.name); >+} >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors."); >+ >+var successfullyParsed = true; >+ >+</script> >+<script src="../../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dlod.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dlod.html >new file mode 100644 >index 00000000000..2f1a8f95f0f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dlod.html >@@ -0,0 +1,130 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL texture2D GLSL conformance test.</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="256" height="256" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader2d" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+attribute vec2 texCoord0; >+varying vec4 color; >+uniform sampler2D tex; >+uniform float lod; >+void main() { >+ gl_Position = vPosition; >+ color = texture2DLod(tex, texCoord0, lod); >+} >+</script> >+<script id="fshader2d" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec4 color; >+void main() { >+ gl_FragData[0] = color; >+} >+</script> >+<script> >+"use strict"; >+description("tests GLSL texture2DLod function"); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("example"); >+ >+shouldBe("canvas.width", "256"); >+shouldBe("canvas.height", "256"); >+ >+var colors = [ >+ {name: 'red', color:[255, 0, 0, 255]}, >+ {name: 'green', color:[0, 255, 0, 255]}, >+ {name: 'blue', color:[0, 0, 255, 255]}, >+ {name: 'yellow', color:[255, 255, 0, 255]}, >+ {name: 'magenta', color:[255, 0, 255, 255]}, >+ {name: 'cyan', color:[0, 255, 255, 255]}, >+ {name: 'pink', color:[255, 128, 128, 255]}, >+ {name: 'gray', color:[128, 128, 128, 255]}, >+ {name: 'light green', color:[128, 255, 128, 255]}, >+]; >+ >+var gl = wtu.create3DContext(canvas); >+if (gl.getParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS) > 0) { >+ runTest(); >+} else { >+ testPassed("MAX_VERTEX_TEXTURE_IMAGE_UNITS == 0, this is okay."); >+} >+ >+function runTest() { >+ var program = wtu.setupProgram( >+ gl, ['vshader2d', 'fshader2d'], ['vPosition', 'texCoord0'], [0, 1]); >+ wtu.setupUnitQuad(gl, 0, 1); >+ >+ shouldBe("colors.length", "9"); >+ >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texParameteri( >+ gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST_MIPMAP_LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.REPEAT); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.REPEAT); >+ >+ for (var ii = 0; ii < colors.length; ++ii) { >+ var color = colors[ii]; >+ var size = Math.pow(2, colors.length - ii - 1); >+ wtu.fillTexture(gl, tex, size, size, color.color, ii); >+ } >+ >+ var loc = gl.getUniformLocation(program, "lod"); >+ >+ for (var ii = 0; ii < colors.length; ++ii) { >+ gl.uniform1f(loc, ii); >+ var color = colors[ii]; >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas( >+ gl, color.color, >+ "256x256 texture drawn to 256x256 dest with lod = " + ii + >+ " should be " + color.name); >+ } >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors."); >+} >+ >+var successfullyParsed = true; >+ >+</script> >+<script src="../../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dproj.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dproj.html >new file mode 100644 >index 00000000000..6d5c81cb7bf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dproj.html >@@ -0,0 +1,137 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL texture2D GLSL conformance test.</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="32" height="32"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader0" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+attribute vec2 texCoord0; >+varying vec2 texCoord; >+void main() { >+ gl_Position = vPosition; >+ texCoord = texCoord0; >+} >+</script> >+<script id="fshader0" type="x-shader/x-fragment"> >+precision mediump float; >+uniform sampler2D tex; >+uniform float divisor; >+varying vec2 texCoord; >+void main() { >+ gl_FragData[0] = texture2DProj(tex, vec3(texCoord, divisor)); >+} >+</script> >+<script id="vshader1" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+attribute vec2 texCoord0; >+varying vec2 texCoord; >+void main() { >+ gl_Position = vPosition; >+ texCoord = texCoord0; >+} >+</script> >+<script id="fshader1" type="x-shader/x-fragment"> >+precision mediump float; >+uniform sampler2D tex; >+uniform float divisor; >+varying vec2 texCoord; >+void main() { >+ gl_FragData[0] = texture2DProj(tex, vec4(texCoord, 123.0, divisor)); >+} >+</script> >+<script> >+"use strict"; >+description("tests GLSL texture2DProj function with"); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example", {antialias: false}); >+ >+wtu.setupUnitQuad(gl, 0, 1); >+var tex = gl.createTexture(); >+gl.bindTexture(gl.TEXTURE_2D, tex); >+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.REPEAT); >+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.REPEAT); >+ >+var c = document.createElement("canvas"); >+c.width = 16; >+c.height = 16; >+var ctx = c.getContext("2d"); >+ctx.fillStyle = "rgb(0,255,0)"; >+ctx.fillRect(0, 0, 16, 16); >+ctx.fillStyle = "rgb(0,0,255)"; >+ctx.fillRect(0, 0, 8, 8); >+ctx.fillRect(8, 8, 8, 8); >+ >+gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, c); >+ >+for (var ss = 0; ss < 2; ++ss) { >+ debug(""); >+ debug(ss ? "testing vec4 version" : "testing vec3 version"); >+ var program = wtu.setupProgram( >+ gl, ['vshader' + ss, 'fshader' + ss], >+ ['vPosition', 'texCoord0'], [0, 1]); >+ gl.useProgram(program); >+ var loc = gl.getUniformLocation(program, "divisor"); >+ >+ for (var ii = 0; ii < 3; ++ii) { >+ var denominator = Math.pow(2, ii); >+ gl.uniform1f(loc, 1 / denominator); >+ wtu.clearAndDrawUnitQuad(gl); >+ var size = 16 / denominator; >+ for (var yy = 0; yy < 32; yy += size) { >+ for (var xx = 0; xx < 32; xx += size) { >+ var odd = (xx / size + yy / size) % 2; >+ var color = odd ? [0, 255, 0, 255] : [0, 0, 255, 255]; >+ var msg = "" + xx + ", " + yy + ", " + size + ", " + size + " should be " + (odd ? "green" : "blue"); >+ wtu.checkCanvasRect(gl, xx, yy, size, size, color, msg); >+ } >+ } >+ } >+} >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors."); >+ >+var successfullyParsed = true; >+ >+</script> >+<script src="../../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dprojlod.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dprojlod.html >new file mode 100644 >index 00000000000..388ec09a1f0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/samplers/glsl-function-texture2dprojlod.html >@@ -0,0 +1,161 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL texture2D GLSL conformance test.</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="256" height="256" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader2d0" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+varying vec4 color; >+uniform sampler2D tex; >+uniform float divisor; >+uniform float lod; >+void main() { >+ gl_Position = vPosition; >+ color = texture2DProjLod(tex, vec3(0.75 * divisor, 0.25 * divisor, divisor), lod); >+} >+</script> >+<script id="vshader2d1" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+varying vec4 color; >+uniform sampler2D tex; >+uniform float divisor; >+uniform float lod; >+void main() { >+ gl_Position = vPosition; >+ color = texture2DProjLod(tex, vec4(0.75 * divisor, 0.25 * divisor, 123.0, divisor), lod); >+} >+</script> >+<script id="fshader2d" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec4 color; >+void main() { >+ gl_FragData[0] = color; >+} >+</script> >+<script> >+"use strict"; >+description("tests GLSL texture2DProjLod function"); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("example"); >+ >+shouldBe("canvas.width", "256"); >+shouldBe("canvas.height", "256"); >+ >+var colors = [ >+ {name: 'red', color:[255, 0, 0, 255]}, >+ {name: 'green', color:[0, 255, 0, 255]}, >+ {name: 'blue', color:[0, 0, 255, 255]}, >+ {name: 'yellow', color:[255, 255, 0, 255]}, >+ {name: 'magenta', color:[255, 0, 255, 255]}, >+ {name: 'cyan', color:[0, 255, 255, 255]}, >+ {name: 'pink', color:[255, 128, 128, 255]}, >+ {name: 'gray', color:[128, 128, 128, 255]}, >+ {name: 'light green', color:[128, 255, 128, 255]}, >+]; >+ >+var gl = wtu.create3DContext(canvas); >+if (gl.getParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS) > 0) { >+ runTest(); >+} else { >+ testPassed("MAX_VERTEX_TEXTURE_IMAGE_UNITS == 0, this is okay."); >+} >+ >+function runTest() { >+ shouldBe("colors.length", "9"); >+ for (var ss = 0; ss < 2; ++ss) { >+ debug(""); >+ debug(ss ? "testing vec4 version" : "testing vec3 version"); >+ var program = wtu.setupProgram( >+ gl, ['vshader2d' + ss, 'fshader2d'], ['vPosition', 'texCoord0'], [0, 1]); >+ wtu.setupUnitQuad(gl, 0, 1); >+ >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texParameteri( >+ gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST_MIPMAP_NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.REPEAT); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.REPEAT); >+ >+ // Fill the top right quadrant of each texture level with one of the colors >+ for (var ii = 0; ii < colors.length; ++ii) { >+ var color = colors[ii]; >+ var size = Math.pow(2, colors.length - ii - 1); >+ >+ var c = document.createElement("canvas"); >+ c.width = size; >+ c.height = size; >+ var ctx = c.getContext("2d"); >+ ctx.fillStyle = "rgb(0,0,0)"; >+ ctx.fillRect(0, 0, size, size); >+ ctx.fillStyle = "rgb(" + color.color[0] + "," + color.color[1] + "," + color.color[2] + ")"; >+ ctx.fillRect(size / 2, 0, size / 2, size / 2); >+ >+ gl.texImage2D(gl.TEXTURE_2D, ii, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, c); >+ } >+ >+ var lodLoc = gl.getUniformLocation(program, "lod"); >+ var divLoc = gl.getUniformLocation(program, "divisor"); >+ >+ for (var div = 1; div < 4; ++div) { >+ for (var ii = 0; ii < colors.length - 1; ++ii) { >+ gl.uniform1f(lodLoc, ii); >+ gl.uniform1f(divLoc, div); >+ var lodColor = colors[ii]; >+ var size = Math.pow(2, colors.length - ii - 1); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas( >+ gl, lodColor.color, >+ "sampling with lod = " + ii + >+ " divider = " + div + >+ " should be " + lodColor.name); >+ } >+ } >+ } >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors."); >+} >+ >+var successfullyParsed = true; >+ >+</script> >+<script src="../../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/00_test_list.txt >new file mode 100644 >index 00000000000..31fe0f8f20c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/00_test_list.txt >@@ -0,0 +1,6 @@ >+gl-fragcoord.html >+gl-frontfacing.html >+gl-pointcoord.html >+--min-version 1.0.2 glsl-built-ins.html >+--min-version 1.0.3 gl-fragcoord-xy-values.html >+--min-version 1.0.3 gl-fragdata-and-fragcolor.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/gl-fragcoord-xy-values.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/gl-fragcoord-xy-values.html >new file mode 100644 >index 00000000000..5c16faea212 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/gl-fragcoord-xy-values.html >@@ -0,0 +1,206 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>gl-fragcoord Test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="canvas" width="32" height="32"> >+</canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+// Inputs >+attribute vec4 aPosInfo; >+ >+// Outputs >+varying vec2 vTargetPixelCoord; >+ >+void main() >+{ >+ vTargetPixelCoord = aPosInfo.zw; >+ >+ gl_PointSize = 1.0; >+ gl_Position = vec4(aPosInfo.xy, 0.0, 1.0); >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+ >+// Inputs >+varying vec2 vTargetPixelCoord; >+ >+// Colors used to signal correctness >+const vec4 red = vec4(1.0, 0.0, 0.0, 1.0); >+const vec4 green = vec4(0.0, 1.0, 0.0, 1.0); >+ >+void main() >+{ >+ // Check pixel index >+ bool pixelIxValid = (floor(gl_FragCoord.xy) == vTargetPixelCoord); >+ >+ // Check fractional part of coordinates >+ bool fracCoordValid = all(lessThan(abs(fract(gl_FragCoord.xy) - vec2(0.5)), vec2(0.0001))); >+ >+ gl_FragColor = (pixelIxValid && fracCoordValid) ? green : red; >+} >+</script> >+ >+<script id="test_fshader" type="x-shader/x-fragment"> >+// Shader to test if the frame buffer positions within the output pixel are different for the five render passes >+// Pass on frame buffer position in varying, change in vertex shader : vTargetPixelCoord = aPosInfo.xy; >+// Set test_fshader in setupProgram() >+ >+precision mediump float; >+ >+// Inputs >+varying vec2 vTargetPixelCoord; >+ >+const vec2 pixSize = vec2(2.0/32.0, 2.0/32.0); >+ >+void main() >+{ >+ // Coordinates within a framebuffer pixel [0, 1> >+ vec2 inPixelCoord = fract(vTargetPixelCoord / pixSize); >+ >+ // Create different color dependent on the position inside the framebuffer pixel >+ float r = (inPixelCoord.x < 0.4) ? 0.2 : (inPixelCoord.x > 0.6) ? 0.8 : 0.5; >+ float g = (inPixelCoord.y < 0.4) ? 0.2 : (inPixelCoord.y > 0.6) ? 0.8 : 0.5; >+ >+ gl_FragColor = vec4(r, g, 0.0, 1.0); >+} >+</script> >+ >+<script> >+"use strict"; >+ >+// Test if gl_FragCoord.xy values are always of the form : >+// (first framebuffer pixel index + 0.5, second framebuffer pixel index + 0.5) >+// (if no multisampling) >+ >+// This is done by rendering a set of points which targets either the center of the >+// output pixel or the center of one of the quadrants >+ >+// Constants >+var floatsPerAttribute = 4; >+ >+// Globals >+var wtu; >+var gl; >+var program; >+var vxBuffer; >+ >+// Set data for one attribute (framebuffer.xy, pixel_index.xy) >+function setPixelData(data, dIx, xx, yy, xSize, ySize, xOffset, yOffset) >+{ >+ // Frame buffer first coordinate [-1, 1] >+ data[dIx++] = (xx + 0.5) * xSize + xOffset - 1; >+ >+ // Frame buffer second coordinate [-1, 1] >+ data[dIx++] = (yy + 0.5) * ySize + yOffset - 1; >+ >+ // Frame buffer pixel first index >+ data[dIx++] = xx; >+ >+ // Frame buffer pixel second index >+ data[dIx++] = yy; >+ >+ return dIx; >+} >+ >+// Create attribute data >+function createAttributeData(xOffset, yOffset) >+{ >+ // Retrieve realised dimensions of viewport >+ var widthPx = gl.drawingBufferWidth; >+ var heightPx = gl.drawingBufferHeight; >+ var pixelCount = widthPx * heightPx; >+ >+ // Pixel size in framebuffer coordinates >+ var pWidth = 2 / widthPx; >+ var pHeight = 2 / heightPx; >+ var data = new Float32Array(pixelCount * floatsPerAttribute); >+ var dIx = 0; >+ for (var yy = 0; yy < heightPx; ++yy) >+ for (var xx = 0; xx < widthPx; ++xx) >+ dIx = setPixelData(data, dIx, xx, yy, pWidth, pHeight, xOffset * pWidth, yOffset * pHeight); >+ >+ if (dIx !== data.length) >+ wtu.error("gl-fragcoord-xy-values.html, createAttributeData(), index not correct at end"); >+ >+ return data; >+} >+ >+// Initialize test >+function init() >+{ >+ description("tests gl_FragCoord.xy values"); >+ >+ wtu = WebGLTestUtils; >+ gl = wtu.create3DContext("canvas", { antialias: false }); >+ program = wtu.setupProgram(gl, ["vshader", "fshader"], ["aPosInfo"]); >+ vxBuffer = gl.createBuffer(); >+ >+ gl.bindBuffer(gl.ARRAY_BUFFER, vxBuffer); >+ gl.enableVertexAttribArray(0); >+ gl.vertexAttribPointer(0, floatsPerAttribute, gl.FLOAT, false, 0, 0); >+} >+ >+// Render data >+function render(xOffset, yOffset, passMsg) >+{ >+ // Set attribute data >+ var data = createAttributeData(xOffset, yOffset); >+ gl.bufferData(gl.ARRAY_BUFFER, data, gl.DYNAMIC_DRAW); >+ >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ gl.drawArrays(gl.POINTS, 0, data.length / floatsPerAttribute); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "no errors from draw"); >+ var green = [0, 255, 0, 255]; >+ wtu.checkCanvas(gl, green, passMsg); >+} >+ >+// Run tests >+init(); >+render(0, 0, "green : sampling at center of output pixel is correct"); >+render(0.25, 0.25, "green : sampling in top right quadrant of output pixel is correct"); >+render(-0.25, 0.25, "green : sampling in top left quadrant of output pixel is correct"); >+render( 0.25, -0.25, "green : sampling in bottom right quadrant of output pixel is correct"); >+render(-0.25, -0.25, "green : sampling in bottom left quadrant of output pixel is correct"); >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/gl-fragcoord.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/gl-fragcoord.html >new file mode 100644 >index 00000000000..c9c4ac4b6c3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/gl-fragcoord.html >@@ -0,0 +1,105 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>gl-fragcoord Test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="32" height="32"> >+</canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+void main() >+{ >+ gl_FragColor = vec4( >+ floor(gl_FragCoord.x * 4.0 / 32.0) / 4.0, >+ floor(gl_FragCoord.y * 4.0 / 32.0) / 4.0, >+ floor(gl_FragCoord.z * 4.0) / 4.0, >+ 1); >+} >+</script> >+ >+<script> >+"use strict"; >+function init() >+{ >+ description("tests gl_FragCoord"); >+ >+ var wtu = WebGLTestUtils; >+ var gl = wtu.create3DContext("example"); >+ var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["vPosition"]); >+ >+ var vertexObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array( >+ [-1, -1, -1, 1, -1, 0, -1, 1, 0, >+ -1, 1, 0, 1, -1, 0, 1, 1, 1]), >+ gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(0); >+ gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+ >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ gl.drawArrays(gl.TRIANGLES, 0, 6); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "no errors from draw"); >+ >+ for (var xx = 0; xx < 32; xx += 4) { >+ for (var yy = 0; yy < 32; yy += 4) { >+ var zz = (xx / 64) + (yy / 64); >+ var color = [ >+ Math.floor(Math.floor(xx * 4.0 / 32.0) / 4 * 256), >+ Math.floor(Math.floor(yy * 4.0 / 32.0) / 4 * 256), >+ Math.floor(Math.floor(zz * 4.0) / 4 * 256) >+ ]; >+ var msg = "should be " + color; >+ wtu.checkCanvasRect(gl, xx, yy, 1, 1, color, msg, 4); >+ } >+ } >+} >+ >+init(); >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/gl-fragdata-and-fragcolor.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/gl-fragdata-and-fragcolor.html >new file mode 100644 >index 00000000000..59f294d3682 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/gl-fragdata-and-fragcolor.html >@@ -0,0 +1,59 @@ >+<!-- >+ >+/* >+** Copyright (c) 2014 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL Conformance Tests</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+<script src="../../../js/glsl-conformance-test.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script id="fragmentShader" type="text/something-not-javascript"> >+// fragment shader with static assignment to both gl_FragData[0] and gl_FragColor should fail. >+// GLES spec section 3.8.2 subsection Shader Outputs. >+precision mediump float; >+ >+void main() >+{ >+ gl_FragData[0] = vec4(1, 0, 0, 1); >+ gl_FragColor = vec4(0, 1, 0, 1); >+} >+</script> >+<script> >+"use strict"; >+GLSLConformanceTester.runTest(); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/gl-frontfacing.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/gl-frontfacing.html >new file mode 100644 >index 00000000000..c944f24ed11 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/gl-frontfacing.html >@@ -0,0 +1,107 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>gl-fragcoord Test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="32" height="32"> >+</canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+void main() >+{ >+ gl_FragColor = vec4( >+ gl_FrontFacing ? 1.0 : 0.0, >+ gl_FrontFacing ? 0.0 : 1.0, >+ 0, >+ 1); >+} >+</script> >+ >+<script> >+"use strict"; >+function init() >+{ >+ description("tests gl_FrontFacing"); >+ >+ var wtu = WebGLTestUtils; >+ var gl = wtu.create3DContext("example"); >+ var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["vPosition"]); >+ >+ var gridRes = 4; >+ wtu.setupIndexedQuad(gl, gridRes, 0, true); >+ >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ gl.drawElements(gl.TRIANGLES, gridRes * gridRes * 6, gl.UNSIGNED_SHORT, 0); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "no errors from draw"); >+ >+ var step = 32 / gridRes; >+ var halfStep = step / 2; >+ var quarterStep = halfStep / 2; >+ for (var xx = 0; xx < 32; xx += step) { >+ for (var yy = 0; yy < 32; yy += step) { >+ for (var ii = 0; ii < 2; ++ii) { >+ var color = [ >+ ii == 0 ? 255 : 0, >+ ii == 0 ? 0 : 255, >+ 0 >+ ]; >+ var msg = "should be " + color; >+ wtu.checkCanvasRect( >+ gl, >+ xx + quarterStep + halfStep * ii, >+ yy + quarterStep + halfStep * ii, >+ 1, 1, color, msg, 4); >+ } >+ } >+ } >+} >+ >+init(); >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/gl-pointcoord.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/gl-pointcoord.html >new file mode 100644 >index 00000000000..e7760fc721c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/gl-pointcoord.html >@@ -0,0 +1,162 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>gl-pointcoord Test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="256" height="256"> >+</canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+uniform float uPointSize; >+void main() >+{ >+ gl_PointSize = uPointSize; >+ gl_Position = vPosition; >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+void main() >+{ >+ gl_FragColor = vec4( >+ gl_PointCoord.x, >+ gl_PointCoord.y, >+ 0, >+ 1); >+} >+</script> >+ >+<script> >+"use strict"; >+description("Checks gl_PointCoord and gl_PointSize"); >+debug(""); >+ >+// NOTE: I'm not 100% confident in this test. I think it is correct. >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+shouldBeNonNull("gl"); >+var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["vPosition"]); >+shouldBe("gl.getError()", "gl.NO_ERROR"); >+ >+var canvas = gl.canvas; >+var width = canvas.width; >+var height = canvas.height; >+shouldBe("width", "height"); >+ >+var maxPointSize = gl.getParameter(gl.ALIASED_POINT_SIZE_RANGE)[1]; >+shouldBeTrue("maxPointSize >= 1"); >+// The minimum and maximum point sizes may be floating-point numbers. >+shouldBeTrue("Math.floor(maxPointSize) >= 1"); >+maxPointSize = Math.floor(maxPointSize); >+shouldBeTrue("maxPointSize % 1 == 0"); >+ >+maxPointSize = Math.min(maxPointSize, 64); >+var pointWidth = maxPointSize / width; >+var pointStep = Math.floor(maxPointSize / 4); >+var pointStep = Math.max(1, pointStep); >+ >+var pointSizeLoc = gl.getUniformLocation(program, "uPointSize"); >+gl.uniform1f(pointSizeLoc, maxPointSize); >+ >+var pixelOffset = (maxPointSize % 2) ? (1 / width) : 0; >+var vertexObject = gl.createBuffer(); >+gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+gl.bufferData( >+ gl.ARRAY_BUFFER, >+ new Float32Array( >+ [-0.5 + pixelOffset, -0.5 + pixelOffset, >+ 0.5 + pixelOffset, -0.5 + pixelOffset, >+ -0.5 + pixelOffset, 0.5 + pixelOffset, >+ 0.5 + pixelOffset, 0.5 + pixelOffset]), >+ gl.STATIC_DRAW); >+gl.enableVertexAttribArray(0); >+gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0); >+ >+gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ >+gl.drawArrays(gl.POINTS, 0, 4); >+shouldBe("gl.getError()", "gl.NO_ERROR"); >+ >+function s2p(s) { >+ return (s + 1.0) * 0.5 * width; >+} >+ >+//function print(x, y) { >+// var b = new Uint8Array(4); >+// gl.readPixels(x, y, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, b); >+// debug("" + x + "," + y + ": " + b[0] + "," + b[1] + "," + b[2]); >+//} >+// >+//for (var ii = 0; ii < 100; ++ii) { >+// print(ii, ii); >+//} >+ >+for (var py = 0; py < 2; ++py) { >+ for (var px = 0; px < 2; ++px) { >+ debug(""); >+ var pointX = -0.5 + px + pixelOffset; >+ var pointY = -0.5 + py + pixelOffset; >+ for (var yy = 0; yy < maxPointSize; yy += pointStep) { >+ for (var xx = 0; xx < maxPointSize; xx += pointStep) { >+ // formula for s and t from OpenGL ES 2.0 spec section 3.3 >+ var xw = s2p(pointX); >+ var yw = s2p(pointY); >+ //debug("xw: " + xw + " yw: " + yw); >+ var u = xx / maxPointSize * 2 - 1; >+ var v = yy / maxPointSize * 2 - 1; >+ var xf = Math.floor(s2p(pointX + u * pointWidth)); >+ var yf = Math.floor(s2p(pointY + v * pointWidth)); >+ //debug("xf: " + xf + " yf: " + yf); >+ var s = 0.5 + (xf + 0.5 - xw) / maxPointSize; >+ var t = 0.5 + (yf + 0.5 - yw) / maxPointSize; >+ //debug("s: " + s + " t: " + t); >+ var color = [Math.floor(s * 255), Math.floor((1 - t) * 255), 0]; >+ var msg = "pixel " + xf + "," + yf + " should be " + color; >+ wtu.checkCanvasRect(gl, xf, yf, 1, 1, color, msg, 4); >+ } >+ } >+ } >+} >+ >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/glsl-built-ins.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/glsl-built-ins.html >new file mode 100644 >index 00000000000..c4c6247195a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/glsl/variables/glsl-built-ins.html >@@ -0,0 +1,127 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL built in variables Conformance Test</title> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="example" width="2" height="2"> </canvas> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+void main() >+{ >+ gl_Position = a_position; >+} >+</script> >+<script id="vshaderCheck" type="x-shader/x-vertex"> >+attribute vec4 a_position; >+varying vec4 v_color; >+void main() >+{ >+ gl_Position = a_position; >+ v_color = (gl_$(name) == $(max)) ? vec4(0,1,0,1) : vec4(1,0,0,1); >+} >+</script> >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec4 v_color; >+void main() >+{ >+ gl_FragColor = v_color; >+} >+</script> >+<script id="fshaderCheck" type="x-shader/x-fragment"> >+precision mediump float; >+void main() >+{ >+ gl_FragColor = (gl_$(name) == $(max)) ? vec4(0,1,0,1) : vec4(1,0,0,1); >+} >+</script> >+<script> >+"use strict"; >+description(); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+var contextVersion = wtu.getDefault3DContextVersion(); >+ >+var variables = [ >+ { name: 'MaxVertexAttribs', min: 8, }, >+ { name: 'MaxVertexUniformVectors', min: 128, }, >+ { name: 'MaxVaryingVectors', min: 8, }, >+ { name: 'MaxVertexTextureImageUnits', min: 0, }, >+ { name: 'MaxCombinedTextureImageUnits', min: 8, }, >+ { name: 'MaxTextureImageUnits', min: 8, }, >+ { name: 'MaxFragmentUniformVectors', min: 16, }, >+]; >+ >+if (contextVersion <= 1) { >+ variables.push({ name: 'MaxDrawBuffers', min: 1, max: 1}); >+} else { >+ variables.push({ name: 'MaxDrawBuffers', min: 1, }); >+} >+ >+var toUnderscore = function(str) { >+ return str.replace(/([a-z])([A-Z])/g, function (g) { return g[0] + "_" + g[1].toUpperCase() }).toUpperCase(); >+}; >+ >+var shaderPairs = [ >+ [wtu.getScript("vshader"), wtu.getScript("fshaderCheck")], >+ [wtu.getScript("vshaderCheck"), wtu.getScript("fshader")], >+]; >+ >+wtu.setupUnitQuad(gl); >+ >+variables.forEach(function(variable) { >+ debug(""); >+ debug("Testing gl_" + variable.name); >+ if (!variable.max) { >+ variable.max = gl.getParameter(gl[toUnderscore(variable.name)]); >+ expectTrue(variable.max >= variable.min, "gl.getParameter(gl." + toUnderscore(variable.name) + ") >= " + variable.min); >+ } >+ shaderPairs.forEach(function(pair) { >+ var shaders = [wtu.replaceParams(pair[0], variable), wtu.replaceParams(pair[1], variable)]; >+ var program = wtu.setupProgram(gl, shaders, ["a_position"], undefined, true); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.checkCanvas(gl, [0, 255, 0, 255], "should be green"); >+ }); >+}); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/limits/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/limits/00_test_list.txt >new file mode 100644 >index 00000000000..79eb84a48e6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/limits/00_test_list.txt >@@ -0,0 +1,6 @@ >+--min-version 1.0.4 gl-line-width.html >+gl-min-attribs.html >+gl-max-texture-dimensions.html >+gl-min-textures.html >+gl-min-uniforms.html >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/limits/gl-line-width.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/limits/gl-line-width.html >new file mode 100644 >index 00000000000..3cd92615018 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/limits/gl-line-width.html >@@ -0,0 +1,93 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Verify that line width limits are enforced.</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="4" height="4" style="width: 40px; height: 30px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description(document.title); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+ >+// Query the line width range >+var lineWidthRange = gl.getParameter(gl.ALIASED_LINE_WIDTH_RANGE); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors."); >+ >+if (lineWidthRange[0] > 1 || lineWidthRange[1] < 1) >+ testFailed("Line width range must include width 1"); >+ >+// Zero, negative, or NaN values should cause an error and leave the value unchanged. >+var curLineWidth = gl.getParameter(gl.LINE_WIDTH); >+gl.lineWidth(0); >+wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "Should not be able to set lineWidth to zero"); >+shouldBe('gl.getParameter(gl.LINE_WIDTH)', 'curLineWidth'); // Previous value should be preserved >+ >+gl.lineWidth(-1); >+wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "Should not be able to set lineWidth to a negative value"); >+shouldBe('gl.getParameter(gl.LINE_WIDTH)', 'curLineWidth'); // Previous value should be preserved >+ >+gl.lineWidth(NaN); >+wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "Should not be able to set lineWidth to NaN"); >+shouldBe('gl.getParameter(gl.LINE_WIDTH)', 'curLineWidth'); // Previous value should be preserved >+ >+// Check that the line width can be set to the valid range. >+gl.lineWidth(lineWidthRange[1]); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be able to set lineWidth to the max supported value"); >+shouldBe('gl.getParameter(gl.LINE_WIDTH)', 'lineWidthRange[1]'); >+ >+gl.lineWidth(lineWidthRange[0]); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be able to set lineWidth to the min supported value"); >+shouldBe('gl.getParameter(gl.LINE_WIDTH)', 'lineWidthRange[0]'); >+ >+// Checks that the line width can be set outside the supported range without error, >+// and the unclamped value can be queried back. >+// Yes, this is actually what the spec says should happen. >+// See: https://www.khronos.org/opengles/sdk/docs/man3/html/glLineWidth.xhtml >+gl.lineWidth(lineWidthRange[1]+1); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be able to set lineWidth to the above max supported value"); >+shouldBe('gl.getParameter(gl.LINE_WIDTH)', 'lineWidthRange[1]+1'); >+ >+var successfullyParsed = true; >+ >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/limits/gl-max-texture-dimensions.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/limits/gl-max-texture-dimensions.html >new file mode 100644 >index 00000000000..757e4274976 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/limits/gl-max-texture-dimensions.html >@@ -0,0 +1,130 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL the max advertized texture size is supported.</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="4" height="4" style="width: 40px; height: 30px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+attribute vec2 texCoord0; >+varying vec2 texCoord; >+void main() >+{ >+ gl_Position = vPosition; >+ texCoord = texCoord0; >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+uniform samplerCube tex; >+varying vec2 texCoord; >+void main() >+{ >+ gl_FragColor = textureCube(tex, normalize(vec3(texCoord, 1))); >+} >+</script> >+<script> >+"use strict"; >+description(document.title); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+var program = wtu.setupTexturedQuad(gl); >+ >+function shouldBePowerOfTwo(n, name) { >+ var power = Math.round(Math.log(n) / Math.log(2)); >+ if (Math.pow(2, power) == n) { >+ testPassed(name + ' is a power of two.'); >+ } else { >+ testFailed(name + ' should be a power of two, but was ' + n); >+ } >+} >+ >+// Note: It seems like a reasonable assuption that a 1xN texture size should >+// work. Even 1 by 128k is only 512k >+var maxSize = gl.getParameter(gl.MAX_TEXTURE_SIZE); >+debug("advertised max size: " + maxSize); >+debug("verifying max size is power-of-two (implied by GLES 2.0 section 3.7.1)"); >+shouldBePowerOfTwo(maxSize, 'Max size'); >+var testSize = Math.min(maxSize, 128 * 1024); >+var pixels = new Uint8Array(testSize * 4); >+for (var ii = 0; ii < testSize; ++ii) { >+ var off = ii * 4; >+ pixels[off + 0] = 0; >+ pixels[off + 1] = 255; >+ pixels[off + 2] = 128; >+ pixels[off + 3] = 255; >+} >+var tex = gl.createTexture(); >+gl.bindTexture(gl.TEXTURE_2D, tex); >+ >+debug("test " + testSize + "x1"); >+gl.texImage2D( >+ gl.TEXTURE_2D, 0, gl.RGBA, testSize, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, >+ pixels); >+gl.generateMipmap(gl.TEXTURE_2D); >+ >+wtu.clearAndDrawUnitQuad(gl); >+wtu.checkCanvas(gl, [0, 255, 128, 255], >+ "Should be 0, 255, 128, 255"); >+debug("test 1x" + testSize); >+gl.texImage2D( >+ gl.TEXTURE_2D, 0, gl.RGBA, 1, testSize, 0, gl.RGBA, gl.UNSIGNED_BYTE, >+ pixels); >+gl.generateMipmap(gl.TEXTURE_2D); >+ >+wtu.clearAndDrawUnitQuad(gl); >+wtu.checkCanvas(gl, [0, 255, 128, 255], >+ "Should be 0, 255, 128, 255"); >+ >+var program = wtu.setupProgram( >+ gl, ['vshader', 'fshader'], ['vPosition', 'texCoord0'], [0, 1]); >+ >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors."); >+ >+// NOTE: We can't easily test cube maps because they require width == height >+// and we might not have enough memory for maxSize by maxSize texture. >+ >+var successfullyParsed = true; >+ >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/limits/gl-min-attribs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/limits/gl-min-attribs.html >new file mode 100644 >index 00000000000..24490346475 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/limits/gl-min-attribs.html >@@ -0,0 +1,107 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL the minimum number of attributes are supported.</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="4" height="4" style="width: 40px; height: 30px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+attribute vec4 v0; >+attribute vec4 v1; >+attribute vec4 v2; >+attribute vec4 v3; >+attribute vec4 v4; >+attribute vec4 v5; >+attribute vec4 v6; >+varying vec4 color; >+void main() >+{ >+ gl_Position = vPosition; >+ color = v0 + v1 + v2 + v3 + v4 + v5 + v6; >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec4 color; >+void main() >+{ >+ gl_FragColor = color; >+} >+</script> >+<script> >+"use strict"; >+description(document.title); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+var program = wtu.setupTexturedQuad(gl); >+ >+var program = wtu.setupProgram( >+ gl, >+ ['vshader', 'fshader'], >+ ['vPosition', 'v0', 'v1', 'v2', 'v3', 'v4', 'v5', 'v6'], >+ [0, 1, 2, 3, 4, 5, 6, 7]); >+ >+for (var ii = 0; ii < 7; ++ii) { >+ var v = (ii + 1) / 28; >+ var vertexObject = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ >+ v, v/2, v/4, v/8, >+ v, v/2, v/4, v/8, >+ v, v/2, v/4, v/8, >+ v, v/2, v/4, v/8, >+ v, v/2, v/4, v/8, >+ v, v/2, v/4, v/8]), gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(ii + 1); >+ gl.vertexAttribPointer(ii + 1, 4, gl.FLOAT, false, 0, 0); >+} >+ >+wtu.clearAndDrawUnitQuad(gl); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from setup."); >+wtu.checkCanvasRect(gl, 0, 0, gl.canvas.width, gl.canvas.height, [255, 127, 64, 32], "Should render 255,127,64,32 (+/-1)", 1); >+ >+var successfullyParsed = true; >+ >+</script> >+</body> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/limits/gl-min-textures.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/limits/gl-min-textures.html >new file mode 100644 >index 00000000000..e4200dcd0de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/limits/gl-min-textures.html >@@ -0,0 +1,102 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL the minimum number of uniforms are supported.</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="4" height="4" style="width: 40px; height: 30px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+#define NUM_TEXTURES 8 // See spec >+precision mediump float; >+uniform sampler2D uni[NUM_TEXTURES]; >+void main() >+{ >+ vec4 c = vec4(0,0,0,0); >+ // The loop was manually unrolled in order to verify that this works. >+ // A separate test sampler-array-using-loop-index.html checks that >+ // loops indexing sampler arrays still work. >+ c += texture2D(uni[0], vec2(0.5, 0.5)); >+ c += texture2D(uni[1], vec2(0.5, 0.5)); >+ c += texture2D(uni[2], vec2(0.5, 0.5)); >+ c += texture2D(uni[3], vec2(0.5, 0.5)); >+ c += texture2D(uni[4], vec2(0.5, 0.5)); >+ c += texture2D(uni[5], vec2(0.5, 0.5)); >+ c += texture2D(uni[6], vec2(0.5, 0.5)); >+ c += texture2D(uni[7], vec2(0.5, 0.5)); >+ gl_FragColor = c; >+} >+</script> >+<script> >+"use strict"; >+description(document.title); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+var program = wtu.setupTexturedQuad(gl); >+ >+//------------------------------------------------------------------------------ >+var program = wtu.setupProgram( >+ gl, ['vshader', 'fshader'], ['vPosition'], [0]); >+ >+for (var ii = 0; ii < 8; ++ii) { >+ var loc = gl.getUniformLocation(program, "uni[" + ii + "]"); >+ gl.activeTexture(gl.TEXTURE0 + ii); >+ var tex = gl.createTexture(); >+ wtu.fillTexture(gl, tex, 1, 1, [32, 16, 8, ii * 9], 0); >+ gl.uniform1i(loc, ii); >+} >+ >+wtu.clearAndDrawUnitQuad(gl); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from setup."); >+wtu.checkCanvas(gl, [255, 128, 64, 252], >+ "Should render using all texture units", 1); >+ >+var successfullyParsed = true; >+ >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/limits/gl-min-uniforms.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/limits/gl-min-uniforms.html >new file mode 100644 >index 00000000000..864dd2c64d4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/limits/gl-min-uniforms.html >@@ -0,0 +1,126 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL the minimum number of uniforms are supported.</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="4" height="4" style="width: 40px; height: 30px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+#define NUM_UNIFORMS 128 // See spec >+attribute vec4 vPosition; >+uniform vec4 uni[NUM_UNIFORMS]; >+varying vec4 color; >+void main() >+{ >+ gl_Position = vPosition; >+ vec4 c = vec4(0,0,0,0); >+ for (int ii = 0; ii < NUM_UNIFORMS; ++ii) { >+ c += uni[ii]; >+ } >+ color = c; >+} >+</script> >+ >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+varying vec4 color; >+void main() >+{ >+ gl_FragColor = color; >+} >+</script> >+<script id="vshader2" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+ >+<script id="fshader2" type="x-shader/x-fragment"> >+precision mediump float; >+#define NUM_UNIFORMS 16 // See spec >+uniform vec4 uni[NUM_UNIFORMS]; >+void main() >+{ >+ vec4 c = vec4(0,0,0,0); >+ for (int ii = 0; ii < NUM_UNIFORMS; ++ii) { >+ c += uni[ii]; >+ } >+ gl_FragColor = vec4(c.r, c.g, c.b, c.a / 120.0); >+} >+</script> >+<script> >+"use strict"; >+description(document.title); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+var program = wtu.setupTexturedQuad(gl); >+ >+//------------------------------------------------------------------------------ >+var program = wtu.setupProgram(gl, ['vshader', 'fshader'], ['vPosition'], [0]); >+ >+for (var ii = 0; ii < 128; ++ii) { >+ var loc = gl.getUniformLocation(program, "uni[" + ii + "]"); >+ gl.uniform4f(loc, 2/256, 2/512, 2/1024, ii/8128); >+} >+ >+wtu.clearAndDrawUnitQuad(gl); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from setup."); >+wtu.checkCanvasRect(gl, 0, 0, gl.canvas.width, gl.canvas.height, [255, 127, 64, 255], "Should render 255,127,64,32 (+/-1)", 1); >+ >+//------------------------------------------------------------------------------ >+var program = wtu.setupProgram(gl, ['vshader2', 'fshader2'], ['vPosition'], [0]); >+ >+for (var ii = 0; ii < 16; ++ii) { >+ var loc = gl.getUniformLocation(program, "uni[" + ii + "]"); >+ gl.uniform4f(loc, 16/2048, 16/1024, 16/512, ii); >+} >+ >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from setup."); >+wtu.clearAndDrawUnitQuad(gl); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from setup."); >+wtu.checkCanvasRect(gl, 0, 0, gl.canvas.width, gl.canvas.height, [32, 64, 127, 255], "Should render 32,64,127,255 (+/-1)", 1); >+ >+var successfullyParsed = true; >+ >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/manual/angle-instanced-arrays-state-leakage.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/manual/angle-instanced-arrays-state-leakage.html >new file mode 100644 >index 00000000000..4b5707e707f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/manual/angle-instanced-arrays-state-leakage.html >@@ -0,0 +1,99 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Check that ANGLE_instanced_arrays state does not leak to browser</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<style> >+canvas { >+ border: 1px solid black; >+} >+.correct { >+ border: 1px solid black; >+ background-color: #00ff00; >+} >+</style> >+</head> >+<body> >+<pre> >+This test must be run manually. >+ >+This test tests that leaving state for ANGLE_instanced_arrays with non-default values at the >+end of rendering does not interfere with proper compositing of results. >+Failures seen on Linux and Mac with Chrome 32. >+See http://crbug.com/304927 for more info. >+ >+You should see a <span class="correct">green rectangle</span> >+with black a outline on success. Briefly flashing red is normal. >+</pre> >+<canvas id='c'></canvas> >+<div id="console"></div> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+var c = document.getElementById("c"); >+// The bug has only been seen with preserveDrawingBuffer=true. >+var gl = wtu.create3DContext(c, { preserveDrawingBuffer: true }); >+var ext = wtu.getExtensionWithKnownPrefixes(gl, "ANGLE_instanced_arrays"); >+var frame = 0; >+function render() { >+ var RED_FRAMES = 3; >+ if (frame < RED_FRAMES) { >+ // Draw N frames red, leaving the vertex divisor to 0 after each call. >+ gl.clearColor(1,0,0,1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ wtu.requestAnimFrame(render); >+ } else { >+ // Draw 2 more times in green, setting the divisor to 1 afterward. >+ gl.clearColor(0,1,0,1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ if (frame - RED_FRAMES < 2) { >+ wtu.requestAnimFrame(render); >+ } else { >+ finishTest(); >+ } >+ // Leave attrib 0 set with a divisor of 1 before returning to browser. >+ if (ext) { >+ ext.vertexAttribDivisorANGLE(0, 1); >+ } >+ } >+ frame++; >+} >+ >+if (!ext) { >+ testPassed("No ANGLE_instanced_arrays support -- this is legal"); >+} >+wtu.requestAnimFrame(render); >+var successfullyParsed = true; >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/manual/canvas-clear-on-zero-count-draw.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/manual/canvas-clear-on-zero-count-draw.html >new file mode 100644 >index 00000000000..bf888ffae8e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/manual/canvas-clear-on-zero-count-draw.html >@@ -0,0 +1,111 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Check that the canvas is NOT recomposited after unsucessful draw call</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<style> >+canvas { >+ border: 1px solid black; >+} >+.correct { >+ border: 1px solid black; >+ background-color: #ffffff; >+} >+</style> >+</head> >+<body> >+<pre> >+This test must be run manually. >+ >+This test tests that a canvas is cleared >+even when a draw call has a zero count. >+ >+You should see three <span class="correct">white rectangles</span> >+with black outlines on success. >+</pre> >+<canvas id='c1'></canvas> >+<canvas id='c2'></canvas> >+<canvas id='c3'></canvas> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+void main() { >+ gl_Position = vec4(0,0,0,1); >+} >+</script> >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+void main() { >+ discard; >+} >+</script> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+var c1 = document.getElementById("c1"); >+var c2 = document.getElementById("c2"); >+var c3 = document.getElementById("c2"); >+var gl1 = wtu.create3DContext(c1); >+var gl2 = wtu.create3DContext(c2); >+var gl3 = wtu.create3DContext(c2); >+gl1.clearColor(0,1,0,1); >+gl1.clear(gl1.COLOR_BUFFER_BIT); >+gl2.clearColor(0,1,0,1); >+gl2.clear(gl2.COLOR_BUFFER_BIT); >+gl3.clearColor(0,1,0,1); >+gl3.clear(gl2.COLOR_BUFFER_BIT); >+ >+wtu.waitForComposite(function() { >+ // test drawArrays >+ gl1.drawArrays(gl1.TRIANGLES, 0, 0); >+ wtu.glErrorShouldBe(gl1, gl1.NO_ERROR, "no errors"); >+}); >+ >+wtu.waitForComposite(function() { >+ // test drawElements >+ var buf = gl2.createBuffer(); >+ gl2.bindBuffer(gl2.ELEMENT_ARRAY_BUFFER, buf); >+ gl2.bufferData(gl2.ELEMENT_ARRAY_BUFFER, new Uint8Array(1), gl2.STATIC_DRAW); >+ gl2.drawElements(gl2.TRIANGLES, 0, gl2.UNSIGNED_SHORT, 0); >+ wtu.glErrorShouldBe(gl2, gl2.NO_ERROR, "no errors"); >+}); >+ >+wtu.waitForComposite(function() { >+ // test draw with program. >+ wtu.setupProgram(gl3, ["vshader", "fshader"]); >+ gl1.drawArrays(gl3.TRIANGLES, 0, 0); >+ wtu.glErrorShouldBe(gl3, gl2.NO_ERROR, "no errors"); >+}); >+ >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/manual/canvas-no-clear-on-readpixels.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/manual/canvas-no-clear-on-readpixels.html >new file mode 100644 >index 00000000000..d1329b46413 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/manual/canvas-no-clear-on-readpixels.html >@@ -0,0 +1,71 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Check that the canvas is NOT recomposited after calling readPixels</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<style> >+canvas { >+ border: 1px solid black; >+} >+.correct { >+ border: 1px solid black; >+ background-color: #00ff00; >+} >+</style> >+</head> >+<body> >+<pre> >+This test must be run manually. >+ >+This test tests that a canvas is NOT cleared >+and recomposited after calling readPixels. >+ >+You should see a <span class="correct">green rectangle</span> >+with black a outline on success. >+</pre> >+<canvas id='c'></canvas> >+<div id="console"></div> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+var c = document.getElementById("c"); >+var gl = wtu.create3DContext(c); >+gl.clearColor(0,1,0,1); >+gl.clear(gl.COLOR_BUFFER_BIT); >+wtu.waitForComposite(function() { >+ gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(4)); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "no errors"); >+}); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/manual/canvas-no-clear-on-unsuccessful-draw.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/manual/canvas-no-clear-on-unsuccessful-draw.html >new file mode 100644 >index 00000000000..611e928a674 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/manual/canvas-no-clear-on-unsuccessful-draw.html >@@ -0,0 +1,84 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Check that the canvas is NOT recomposited after unsucessful draw call</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<style> >+canvas { >+ border: 1px solid black; >+} >+.correct { >+ border: 1px solid black; >+ background-color: #00ff00; >+} >+</style> >+</head> >+<body> >+<pre> >+This test must be run manually. >+ >+This test tests that a canvas is NOT cleared >+when a draw call fails. >+ >+You should see two <span class="correct">green rectangles</span> >+with black outlines on success. >+</pre> >+<canvas id='c1'></canvas> >+<canvas id='c2'></canvas> >+<div id="console"></div> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+var c1 = document.getElementById("c1"); >+var c2 = document.getElementById("c2"); >+var gl1 = wtu.create3DContext(c1); >+var gl2 = wtu.create3DContext(c2); >+gl1.clearColor(0,1,0,1); >+gl1.clear(gl1.COLOR_BUFFER_BIT); >+gl2.clearColor(0,1,0,1); >+gl2.clear(gl2.COLOR_BUFFER_BIT); >+wtu.waitForComposite(function() { >+ gl1.drawArrays(gl1.BLEND, 0, 0); >+ wtu.glErrorShouldBe(gl1, gl1.INVALID_ENUM, "no errors"); >+}); >+ >+wtu.waitForComposite(function() { >+ var buf = gl2.createBuffer(); >+ gl2.bindBuffer(gl2.ELEMENT_ARRAY_BUFFER, buf); >+ gl2.bufferData(gl2.ELEMENT_ARRAY_BUFFER, new Uint8Array(1), gl2.STATIC_DRAW); >+ gl2.drawElements(gl2.BLEND, 0, gl2.UNSIGNED_SHORT, 0); >+ wtu.glErrorShouldBe(gl2, gl2.INVALID_ENUM, "no errors"); >+}); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/manual/framebuffers-keep-contents-exiting-fullscreen-mode.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/manual/framebuffers-keep-contents-exiting-fullscreen-mode.html >new file mode 100644 >index 00000000000..3b6d78fad80 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/manual/framebuffers-keep-contents-exiting-fullscreen-mode.html >@@ -0,0 +1,155 @@ >+<!-- >+ >+/* >+** Copyright (c) 2013 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Check that framebuffers keep contents exiting fullscreen mode.</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<style> >+canvas { >+ width: 100%; >+ height: 50px; >+ border: 1px solid black; >+} >+#f { >+ left: 0px; >+ top: 0px; >+} >+#inner { >+} >+input.button { >+ font-size: 36pt; >+} >+.redbox { >+ border: 1px solid black; >+ background-color: red; >+} >+#canvasholder { >+ position: relative; >+} >+#clabel { >+ position: absolute; >+ width: 100%; >+ top: 0px; >+ left: 0px; >+ font-size: 40px; >+ z-index: 10; >+ text-align: center; >+} >+</style> >+</head> >+<body> >+<pre> >+This test must be run manually. >+ >+Checks that framebuffers keep their contents going into and out of fullscreen mode. >+ >+Through the entire test you should see a <span class="redbox">red rectangle</span>. If it is not <span class="redbox">red</span> in all cases the test has failed. >+</pre> >+<div id="f"> >+ <div id="inner"> >+ <div id="buttonHolder"> >+ <div><input id="button" class="button" type="button" value="Click this button to continue the test"/></div> >+ <div id="canvasholder"> >+ <canvas id='c'></canvas> >+ <div id='clabel'> >+ should be red >+ </div> >+ </div> >+ </div> >+ </div> >+</div> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+var testedFullScreen = false; >+var c = document.getElementById("c"); >+var button = document.getElementById("button"); >+var buttonHolder = document.getElementById("buttonHolder"); >+var gl = wtu.create3DContext(c); >+if (!gl) { >+ testFailed("can't init WebGL"); >+} >+ >+var checkState = function() { >+ debug(""); >+ wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0, 255, 0, 255]); >+ shouldBeNonNull("gl.getParameter(gl.FRAMEBUFFER_BINDING)"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "there should be no errors"); >+} >+ >+var checkFramebufferState = function(fullscreen) { >+ checkState(); >+ >+ debug("fullscreen:" + fullscreen); >+ >+ if (fullscreen) { >+ // Not sure if this is needed but need to make sure >+ // we at least went fullscreen once. >+ testedFullScreen = true; >+ } else { >+ if (testedFullScreen) { >+ finishTest(); >+ } >+ } >+}; >+ >+var test = function() { >+ if (!wtu.setupFullscreen("button", "f", checkFramebufferState)) { >+ testPassed("Browser does not support fullscreen mode. This is OK"); >+ finishTest(); >+ return; >+ } >+ >+ var fb = gl.createFramebuffer(); >+ var tex = gl.createTexture(); >+ >+ gl.clearColor(1,0,0,1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex, 0); >+ shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ >+ gl.clearColor(0, 1, 0, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ >+ checkState(); >+}; >+test(); >+ >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/00_test_list.txt >new file mode 100644 >index 00000000000..6fba2bb2b06 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/00_test_list.txt >@@ -0,0 +1,16 @@ >+bad-arguments-test.html >+--min-version 1.0.2 boolean-argument-conversion.html >+--min-version 1.0.2 delayed-drawing.html >+error-reporting.html >+--min-version 1.0.4 expando-loss.html >+functions-returning-strings.html >+--max-version 1.9.9 instanceof-test.html >+invalid-passed-params.html >+is-object.html >+null-object-behaviour.html >+object-deletion-behaviour.html >+shader-precision-format.html >+type-conversion-test.html >+uninitialized-test.html >+webgl-specific.html >+--min-version 1.0.4 webgl-specific-stencil-settings.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/bad-arguments-test.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/bad-arguments-test.html >new file mode 100644 >index 00000000000..234a53618b4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/bad-arguments-test.html >@@ -0,0 +1,121 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+description("Tests calling WebGL APIs with wrong argument types"); >+ >+ >+var testArguments = [ >+ { value: "foo", >+ throwsForNullables: true }, >+ { value: 0, >+ throwsForNullables: true }, >+ { value: null, >+ throwsForNullables: false }, >+ { value: undefined, >+ throwsForNullables: false } >+]; >+ >+var argument; >+ >+var context = wtu.create3DContext(); >+var program; >+var shader; >+var loc; >+wtu.loadStandardProgramAsync(context, function(success, prog) { >+ program = prog; >+ wtu.loadStandardVertexShaderAsync(context, function(success, s) { >+ shader = s; >+ >+ assertMsg(program != null, "Program Compiled"); >+ assertMsg(shader != null, "Shader Compiled"); >+ >+ loc = context.getUniformLocation(program, "u_modelViewProjMatrix"); >+ assertMsg(loc != null, "getUniformLocation succeeded"); >+ >+ for (var i = 0; i < testArguments.length; ++i) { >+ argument = testArguments[i].value; >+ >+ debug('Testing argument: ' + argument); >+ >+ // These functions don't accept nullable arguments any more. >+ shouldThrow("context.compileShader(argument)"); >+ shouldThrow("context.linkProgram(argument)"); >+ shouldThrow("context.attachShader(program, argument)"); >+ shouldThrow("context.attachShader(argument, shader)"); >+ shouldThrow("context.detachShader(program, argument)"); >+ shouldThrow("context.detachShader(argument, shader)"); >+ shouldThrow("context.shaderSource(argument, 'foo')"); >+ shouldThrow("context.bindAttribLocation(argument, 0, 'foo')"); >+ shouldThrow("context.getProgramInfoLog(argument)"); >+ shouldThrow("context.getProgramParameter(argument, 0)"); >+ shouldThrow("context.getShaderInfoLog(argument)"); >+ shouldThrow("context.getShaderParameter(argument, 0)"); >+ shouldThrow("context.getShaderSource(argument)"); >+ shouldThrow("context.getUniform(argument, loc)"); >+ shouldThrow("context.getUniform(program, argument)"); >+ shouldThrow("context.getUniformLocation(argument, 'u_modelViewProjMatrix')"); >+ >+ // The following entry points still accept nullable arguments. >+ var func; >+ if (testArguments[i].throwsForNullables) { >+ func = shouldThrow; >+ } else { >+ func = shouldBeUndefined; >+ } >+ >+ func("context.bindBuffer(context.ARRAY_BUFFER, argument)"); >+ func("context.bindFramebuffer(context.FRAMEBUFFER, argument)"); >+ func("context.bindRenderbuffer(context.RENDERBUFFER, argument)"); >+ func("context.bindTexture(context.TEXTURE_2D, argument)"); >+ func("context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, argument)"); >+ func("context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, argument, 0)"); >+ func("context.uniform2fv(argument, new Float32Array([0.0, 0.0]))"); >+ func("context.uniform2iv(argument, new Int32Array([0, 0]))"); >+ func("context.uniformMatrix2fv(argument, false, new Float32Array([0.0, 0.0, 0.0, 0.0]))"); >+ func("context.useProgram(argument)"); >+ } >+ finishTest(); >+ }); >+}); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/boolean-argument-conversion.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/boolean-argument-conversion.html >new file mode 100644 >index 00000000000..be2719ad800 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/boolean-argument-conversion.html >@@ -0,0 +1,136 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/test-eval.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+description("Test that conversion of boolean arguments of WebGL functions follows EcmaScript 9.2. ToBoolean"); >+debug(""); >+debug("When an object is converted to a boolean, it should always evaluate as true. Any valueOf() method should not even get called. See Mozilla bug 727590 where Gecko incorrectly converted such an argument to a Number instead of a Boolean, giving the wrong behavior. See 9.2 and 9.3 in the EcmaScript specification."); >+debug(""); >+var gl = wtu.create3DContext(); >+var program = wtu.loadStandardProgram(gl); >+var shader = wtu.loadStandardVertexShader(gl); >+var shouldGenerateGLError = wtu.shouldGenerateGLError; >+ >+assertMsg(program != null, "Program Compiled"); >+assertMsg(shader != null, "Shader Compiled"); >+ >+var uloc = gl.getUniformLocation(program, "u_modelViewProjMatrix"); >+var aloc = gl.getAttribLocation(program, "a_vertex"); >+ >+gl.bindBuffer(gl.ARRAY_BUFFER, gl.createBuffer()); >+ >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from initialization."); >+assertMsg(uloc, "Uniform not found"); >+assertMsg(aloc >= 0, "Attribute not found"); >+ >+var boolArg = { valueOf: function() { throw "Converting an Object to a Boolean should just give 'true' without further evaluation"; } } >+ >+function shouldNotThrowWithBoolArgs(code) { >+ try { >+ TestEval(code); >+ } catch(e) { >+ testFailed(code + " threw exception: " + e); >+ return; >+ } >+ testPassed(code + " converted its boolean arguments correctly"); >+} >+ >+shouldNotThrowWithBoolArgs( >+ "gl.colorMask(boolArg, boolArg, boolArg, boolArg)" >+); >+ >+shouldNotThrowWithBoolArgs( >+ "gl.depthMask(boolArg)" >+); >+ >+shouldNotThrowWithBoolArgs( >+ "gl.sampleCoverage(1, boolArg)" >+); >+ >+function zeroArray(length) { >+ var a = new Array(length); >+ for (var i = 0; i < length; i++) >+ a[i] = 0; >+ return a; >+} >+ >+function zeroFloat32Array(length) { >+ var a = new Float32Array(length); >+ for (var i = 0; i < length; i++) >+ a[i] = 0; >+ return a; >+} >+ >+shouldNotThrowWithBoolArgs( >+ "gl.uniformMatrix2fv(uloc, boolArg, zeroFloat32Array(4))" >+); >+ >+shouldNotThrowWithBoolArgs( >+ "gl.uniformMatrix2fv(uloc, boolArg, zeroArray(4))" >+); >+ >+shouldNotThrowWithBoolArgs( >+ "gl.uniformMatrix3fv(uloc, boolArg, zeroFloat32Array(9))" >+); >+ >+shouldNotThrowWithBoolArgs( >+ "gl.uniformMatrix3fv(uloc, boolArg, zeroArray(9))" >+); >+ >+shouldNotThrowWithBoolArgs( >+ "gl.uniformMatrix4fv(uloc, boolArg, zeroFloat32Array(16))" >+); >+ >+shouldNotThrowWithBoolArgs( >+ "gl.uniformMatrix4fv(uloc, boolArg, zeroArray(16))" >+); >+ >+shouldNotThrowWithBoolArgs( >+ "gl.vertexAttribPointer(aloc, 4, gl.FLOAT, boolArg, 4, 0)" >+); >+ >+var successfullyParsed = true; >+</script> >+ >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/delayed-drawing.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/delayed-drawing.html >new file mode 100644 >index 00000000000..1cbc1a8aaaf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/delayed-drawing.html >@@ -0,0 +1,85 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Delayed Drawing test.</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="example" width="4" height="4" style="width: 40px; height: 30px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+enableJSTestPreVerboseLogging(); >+description(document.title); >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("example"); >+var program = wtu.setupTexturedQuad(gl); >+ >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from setup."); >+ >+var tex = gl.createTexture(); >+wtu.fillTexture(gl, tex, 5, 3, [0, 192, 128, 255]); >+ >+var loc = gl.getUniformLocation(program, "tex"); >+gl.uniform1i(loc, 0); >+ >+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); >+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); >+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ >+ >+drawAndCheck(); >+ >+setTimeout(step2, 1000); >+ >+function step2() { >+ drawAndCheck(); >+ finishTest(); >+} >+ >+function drawAndCheck() { >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors before drawing."); >+ wtu.clearAndDrawUnitQuad(gl); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from drawing."); >+ wtu.checkCanvas( >+ gl, [0, 192, 128, 255], >+ "draw should be 0, 192, 128, 255"); >+} >+ >+var successfullyParsed = true; >+</script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/error-reporting.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/error-reporting.html >new file mode 100644 >index 00000000000..9c8e45724b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/error-reporting.html >@@ -0,0 +1,94 @@ >+<!-- >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+description("Tests generation of synthetic and real GL errors"); >+ >+var wtu = WebGLTestUtils; >+var context = wtu.create3DContext(); >+var program = wtu.loadStandardProgram(context); >+ >+// Other tests like incorrect-context-object-behaviour already test the raising >+// of many synthetic GL errors. This test verifies the raising of certain >+// known real GL errors, and contains a few regression tests for bugs >+// discovered in the synthetic error generation and in the WebGL >+// implementation itself. >+ >+wtu.glErrorShouldBe(context, context.NO_ERROR); >+ >+debug("Testing getActiveAttrib"); >+shouldThrow("context.getActiveAttrib(null, 2)"); >+wtu.glErrorShouldBe(context, context.NO_ERROR); >+// Error state should be clear by this point >+wtu.glErrorShouldBe(context, context.NO_ERROR); >+// Real OpenGL error >+shouldBeNull("context.getActiveAttrib(program, 2)"); >+wtu.glErrorShouldBe(context, context.INVALID_VALUE); >+// Error state should be clear by this point >+wtu.glErrorShouldBe(context, context.NO_ERROR); >+ >+debug("Testing getActiveUniform"); >+shouldThrow("context.getActiveUniform(null, 0)"); >+wtu.glErrorShouldBe(context, context.NO_ERROR); >+// Error state should be clear by this point >+wtu.glErrorShouldBe(context, context.NO_ERROR); >+// Real OpenGL error >+shouldBeNull("context.getActiveUniform(program, 50)"); >+wtu.glErrorShouldBe(context, context.INVALID_VALUE); >+// Error state should be clear by this point >+wtu.glErrorShouldBe(context, context.NO_ERROR); >+ >+debug("Testing attempts to manipulate the default framebuffer"); >+shouldBeUndefined("context.bindFramebuffer(context.FRAMEBUFFER, null)"); >+wtu.glErrorShouldBe(context, context.NO_ERROR); >+shouldBeUndefined("context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, null)"); >+// Synthetic OpenGL error >+wtu.glErrorShouldBe(context, context.INVALID_OPERATION); >+// Error state should be clear by this point >+wtu.glErrorShouldBe(context, context.NO_ERROR); >+shouldBeUndefined("context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, null, 0)"); >+// Synthetic OpenGL error >+wtu.glErrorShouldBe(context, context.INVALID_OPERATION); >+// Error state should be clear by this point >+wtu.glErrorShouldBe(context, context.NO_ERROR); >+ >+var successfullyParsed = true; >+</script> >+ >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/expando-loss.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/expando-loss.html >new file mode 100644 >index 00000000000..f7e5003b383 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/expando-loss.html >@@ -0,0 +1,243 @@ >+<!-- >+ >+/* >+** Copyright (c) 2015 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<title>WebGL Object Expandos Conformance Test</title> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" width="8" height="8" style="width: 8px; height: 8px;"></canvas> >+<script> >+"use strict"; >+description("This test verifies that WebGL object expandos are preserved across garbage collections."); >+ >+var wtu = WebGLTestUtils; >+var canvas = document.getElementById("canvas"); >+var gl = wtu.create3DContext(canvas, {antialias: false}); >+ >+// Helpers that set expandos and verify they are set to the correct value. >+var expandoValue = "WebGL is awesome!" >+function setTestExpandos(instance) { >+ instance.expando1 = expandoValue; >+ instance.expando2 = { subvalue : expandoValue }; >+} >+function verifyTestExpandos(instance, msg) { >+ assertMsg(instance.expando1 === expandoValue, msg + ": Expect basic expando to survive despite GC."); >+ assertMsg(instance.expando2 && instance.expando2.subvalue === expandoValue, msg + ": Expect subobject expando to survive despite GC."); >+} >+ >+// Tests that we don't get expando loss for bound resources where the >+// only remaining reference is internal to WebGL >+function testBasicBindings() { >+ debug('Basic Bindings'); >+ >+ // Test data that describes how to create, bind, and retrieve an object off of the context >+ var glProt = Object.getPrototypeOf(gl); >+ var simpleData = [ >+ { >+ creationFn: glProt.createTexture, >+ bindFn: glProt.bindTexture, >+ bindConstant: glProt.TEXTURE_2D, >+ retrieveConstant: glProt.TEXTURE_BINDING_2D, >+ name: "TEXTURE_BINDING_2D", >+ }, >+ { >+ creationFn: glProt.createFramebuffer, >+ bindFn: glProt.bindFramebuffer, >+ bindConstant: glProt.FRAMEBUFFER, >+ retrieveConstant: glProt.FRAMEBUFFER_BINDING, >+ name: "FRAMEBUFFER_BINDING", >+ }, >+ { >+ creationFn: glProt.createRenderbuffer, >+ bindFn: glProt.bindRenderbuffer, >+ bindConstant: glProt.RENDERBUFFER, >+ retrieveConstant: glProt.RENDERBUFFER_BINDING, >+ name: "RENDERBUFFER_BINDING", >+ }, >+ { >+ creationFn: glProt.createBuffer, >+ bindFn: glProt.bindBuffer, >+ bindConstant: glProt.ELEMENT_ARRAY_BUFFER, >+ retrieveConstant: glProt.ELEMENT_ARRAY_BUFFER_BINDING, >+ name: "ELEMENT_ARRAY_BUFFER_BINDING", >+ }, >+ { >+ creationFn: glProt.createBuffer, >+ bindFn: glProt.bindBuffer, >+ bindConstant: glProt.ARRAY_BUFFER, >+ retrieveConstant: glProt.ARRAY_BUFFER_BINDING, >+ name: "ARRAY_BUFFER_BINDING", >+ }, >+ { >+ creationFn: glProt.createTexture, >+ bindFn: glProt.bindTexture, >+ bindConstant: glProt.TEXTURE_CUBE_MAP, >+ retrieveConstant: glProt.TEXTURE_BINDING_CUBE_MAP, >+ name: "TEXTURE_BINDING_CUBE_MAP", >+ }, >+ ]; >+ >+ simpleData.forEach(function(test) { >+ var instance = test.creationFn.apply(gl, []); >+ var msg = "getParameter(" + test.name + ")"; >+ setTestExpandos(instance); >+ >+ test.bindFn.apply(gl, [test.bindConstant, instance]); >+ assertMsg(instance === gl.getParameter(test.retrieveConstant), msg + " returns instance that was bound."); >+ >+ // Garbage collect Javascript references. Remaining references should be internal to WebGL. >+ instance = null; >+ webglHarnessCollectGarbage(); >+ >+ verifyTestExpandos(gl.getParameter(test.retrieveConstant), msg); >+ }); >+ >+ debug(''); >+} >+ >+// Attach a couple of shaders to a program and verify no expando loss when you call >+// getAttachedShaders and getParameter(CURRENT_PROGRAM). >+function testProgramsAndShaders() { >+ debug('Programs and Shaders'); >+ >+ var vs = wtu.loadShader(gl, wtu.simpleVertexShader, gl.VERTEX_SHADER); >+ setTestExpandos(vs); >+ >+ var fs = wtu.loadShader(gl, wtu.simpleColorFragmentShader, gl.FRAGMENT_SHADER); >+ setTestExpandos(fs); >+ >+ var program = wtu.setupProgram(gl, [vs, fs]); >+ setTestExpandos(program); >+ assertMsg(program === gl.getParameter(gl.CURRENT_PROGRAM), "getParameter(gl.CURRENT_PROGRAM) return instance set with useProgram"); >+ >+ var attachedShaders = gl.getAttachedShaders(program); >+ assertMsg(attachedShaders.indexOf(vs) !== -1, "Vertex shader instance found in getAttachedShaders"); >+ assertMsg(attachedShaders.indexOf(fs) !== -1, "Fragment shader instance found in getAttachedShaders"); >+ >+ // Garbage collect Javascript references. Remaining references should be internal to WebGL. >+ attachedShaders = null; >+ program = null; >+ vs = null; >+ fs = null; >+ webglHarnessCollectGarbage(); >+ >+ var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM); >+ verifyTestExpandos(currentProgram, "Current program"); >+ shouldBeType(currentProgram, 'WebGLProgram'); >+ >+ var retrievedShaders = gl.getAttachedShaders(currentProgram); >+ verifyTestExpandos(retrievedShaders[0], "Shader[0]"); >+ shouldBeType(retrievedShaders[0], "WebGLShader"); >+ verifyTestExpandos(retrievedShaders[1], "Shader[1]"); >+ shouldBeType(retrievedShaders[1], "WebGLShader"); >+ >+ debug(''); >+} >+ >+// Attach a buffer via vertexAttribPointer and verify no expando loss when you call getVertexAttrib. >+function testVertexAttributeBuffers() { >+ debug('Vertex Attribute Buffers'); >+ >+ var program = wtu.setupSimpleColorProgram(gl); >+ var position = gl.getAttribLocation(program, "vPosition"); >+ >+ var buffer = gl.createBuffer(); >+ setTestExpandos(buffer); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buffer); >+ gl.vertexAttribPointer(position, 2, gl.FLOAT, false, 0, 0); >+ assertMsg(buffer === gl.getVertexAttrib(position, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING), >+ "getVertexAttrib(VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) return instance set with vertexAttribPointer"); >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+ >+ // Garbage collect Javascript references. Remaining references should be internal to WebGL. >+ buffer = null; >+ program = null; >+ webglHarnessCollectGarbage(); >+ >+ var retrievedBuffer = gl.getVertexAttrib(position, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING); >+ verifyTestExpandos(retrievedBuffer, "Vertex Attribute Buffer"); >+ shouldBeType(retrievedBuffer, 'WebGLBuffer'); >+ >+ debug(''); >+} >+ >+// Attach renderbuffers to framebuffers and verify no expando loss ocurrs when you call >+// getFramebufferAttachmentParameter >+function testFrameBufferAttachments() { >+ debug('FrameBuffer Attachments'); >+ >+ var framebuffer = gl.createFramebuffer(); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); >+ var attachments = [ >+ { enum: gl.COLOR_ATTACHMENT0, name: "COLOR_ATTACHMENT0" }, >+ { enum: gl.DEPTH_ATTACHMENT, name: "DEPTH_ATTACHMENT" }, >+ { enum: gl.STENCIL_ATTACHMENT, name: "STENCIL_ATTACHMENT" }, >+ { enum: gl.DEPTH_STENCIL_ATTACHMENT,name: "DEPTH_STENCIL_ATTACHMENT" }, >+ ]; >+ >+ // Attach a renderbuffer to all attachment points. >+ attachments.forEach(function(attachment) { >+ var renderbuffer = gl.createRenderbuffer(); >+ gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); >+ gl.bindRenderbuffer(gl.RENDERBUFFER, null); >+ setTestExpandos(renderbuffer); >+ gl.framebufferRenderbuffer(gl.FRAMEBUFFER, attachment.enum, gl.RENDERBUFFER, renderbuffer); >+ assertMsg(renderbuffer === gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, attachment.enum, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME), >+ "getFramebufferAttachmentParameter(" + attachment.name + ") returns instance set with framebufferRenderbuffer"); >+ renderbuffer = null; >+ }); >+ >+ // Garbage collect Javascript references. Remaining references should be internal to WebGL. >+ webglHarnessCollectGarbage(); >+ >+ // Verify all attached renderbuffers have expandos. >+ attachments.forEach(function(attachment) { >+ var retrievedRenderbuffer = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, attachment.enum, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME); >+ verifyTestExpandos(retrievedRenderbuffer, attachment.name); >+ shouldBeType(retrievedRenderbuffer, 'WebGLRenderbuffer'); >+ }); >+ >+ debug(''); >+} >+ >+// Run tests >+testBasicBindings(); >+testProgramsAndShaders(); >+testVertexAttributeBuffers(); >+testFrameBufferAttachments(); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/functions-returning-strings.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/functions-returning-strings.html >new file mode 100644 >index 00000000000..d14d5d5e525 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/functions-returning-strings.html >@@ -0,0 +1,125 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Conformance Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/test-eval.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" width="2" height="2"> </canvas> >+<script> >+"use strict"; >+description("Test that functions returning strings really do return strings (and not e.g. null)"); >+debug(""); >+ >+var validVertexShaderString = >+ "attribute vec4 aVertex; attribute vec4 aColor; varying vec4 vColor; void main() { vColor = aColor; gl_Position = aVertex; }"; >+var validFragmentShaderString = >+ "precision mediump float; varying vec4 vColor; void main() { gl_FragColor = vColor; }"; >+ >+function shouldReturnString(_a) >+{ >+ var exception; >+ var _av; >+ try { >+ _av = TestEval(_a); >+ } catch (e) { >+ exception = e; >+ } >+ >+ if (exception) >+ testFailed(_a + ' should return a string. Threw exception ' + exception); >+ else if (typeof _av == "string") >+ testPassed(_a + ' returns a string'); >+ else >+ testFailed(_a + ' should return a string. Returns: "' + _av + '"'); >+} >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("canvas"); >+if (!gl) { >+ testFailed("context does not exist"); >+} else { >+ var vs = gl.createShader(gl.VERTEX_SHADER); >+ shouldReturnString("gl.getShaderSource(vs)"); >+ shouldReturnString("gl.getShaderInfoLog(vs)"); >+ gl.shaderSource(vs, validVertexShaderString); >+ gl.compileShader(vs); >+ shouldReturnString("gl.getShaderSource(vs)"); >+ shouldReturnString("gl.getShaderInfoLog(vs)"); >+ >+ var fs = gl.createShader(gl.FRAGMENT_SHADER); >+ shouldReturnString("gl.getShaderSource(fs)"); >+ shouldReturnString("gl.getShaderInfoLog(fs)"); >+ gl.shaderSource(fs, validFragmentShaderString); >+ gl.compileShader(fs); >+ shouldReturnString("gl.getShaderSource(fs)"); >+ shouldReturnString("gl.getShaderInfoLog(fs)"); >+ >+ var prog = gl.createProgram(); >+ shouldReturnString("gl.getProgramInfoLog(prog)"); >+ gl.attachShader(prog, vs); >+ gl.attachShader(prog, fs); >+ gl.linkProgram(prog); >+ shouldReturnString("gl.getProgramInfoLog(prog)"); >+ >+ // Make sure different numbers of extensions doesn't result in >+ // different test output. >+ var exts = gl.getSupportedExtensions(); >+ var allPassed = true; >+ for (var ii = 0; ii < exts.length; ++ii) { >+ var s = exts[ii]; >+ if (typeof s != "string") { >+ shouldReturnString("gl.getSupportedExtensions()[" + s + "]"); >+ allPassed = false; >+ } >+ } >+ if (allPassed) { >+ testPassed('getSupportedExtensions() returns an array of strings'); >+ } >+ >+ shouldReturnString("gl.getParameter(gl.VENDOR)"); >+ shouldReturnString("gl.getParameter(gl.RENDERER)"); >+ shouldReturnString("gl.getParameter(gl.VERSION)"); >+ shouldReturnString("gl.getParameter(gl.SHADING_LANGUAGE_VERSION)"); >+} >+ >+debug(""); >+var successfullyParsed = true; >+ >+</script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/instanceof-test.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/instanceof-test.html >new file mode 100644 >index 00000000000..4e9df8b61ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/instanceof-test.html >@@ -0,0 +1,65 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL instanceof test.</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="canvas" width="2" height="2" style="width: 40px; height: 40px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script id="vshader" type="x-shader/x-vertex"> >+attribute vec4 vPosition; >+varying vec2 texCoord; >+void main() >+{ >+ gl_Position = vPosition; >+} >+</script> >+<script id="fshader" type="x-shader/x-fragment"> >+precision mediump float; >+uniform vec4 color; >+void main() >+{ >+ gl_FragColor = color; >+} >+</script> >+ >+<script> >+var contextVersion = 1; >+</script> >+<script src="../../js/tests/instanceof-test.js"></script> >+<script src="../../js/js-test-post.js"></script> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/invalid-passed-params.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/invalid-passed-params.html >new file mode 100644 >index 00000000000..8aba3381b34 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/invalid-passed-params.html >@@ -0,0 +1,188 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/desktop-gl-constants.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+description("Test for invalid passed parameters"); >+ >+var wtu = WebGLTestUtils; >+var context = wtu.create3DContext(); >+var contextVersion = wtu.getDefault3DContextVersion(); >+ >+debug(""); >+debug("Test createShader()"); >+wtu.shouldGenerateGLError(context, context.NO_ERROR, "context.createShader(context.FRAGMENT_SHADER)"); >+wtu.shouldGenerateGLError(context, context.NO_ERROR, "context.createShader(context.VERTEX_SHADER)"); >+wtu.shouldGenerateGLError(context, context.INVALID_ENUM, "context.createShader(0)"); >+wtu.shouldGenerateGLError(context, context.INVALID_ENUM, "context.createShader(context.TRIANGLES)"); >+ >+debug(""); >+debug("Test clear()"); >+wtu.shouldGenerateGLError(context, context.INVALID_VALUE, "context.clear(desktopGL['ACCUM_BUFFER_BIT'])"); >+wtu.shouldGenerateGLError(context, context.INVALID_VALUE, "context.clear(desktopGL['ACCUM_BUFFER_BIT'] | context.COLOR_BUFFER_BIT)"); >+wtu.shouldGenerateGLError(context, context.INVALID_VALUE, "context.clear(desktopGL['ACCUM_BUFFER_BIT'] | context.COLOR_BUFFER_BIT | context.DEPTH_BUFFER_BIT | context.STENCIL_BUFFER_BIT)"); >+wtu.shouldGenerateGLError(context, context.NO_ERROR, "context.clear(context.COLOR_BUFFER_BIT | context.DEPTH_BUFFER_BIT | context.STENCIL_BUFFER_BIT)"); >+ >+debug(""); >+debug("Test {copy}Tex{Sub}Image2D with negative offset/width/height"); >+var tex = context.createTexture(); >+var pixels = new Uint8Array(2 * 2 * 4); >+wtu.shouldGenerateGLError(context, context.NO_ERROR, "context.bindTexture(context.TEXTURE_2D, tex)"); >+wtu.shouldGenerateGLError(context, context.INVALID_VALUE, "context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, -16, -16, 0, context.RGBA, context.UNSIGNED_BYTE, null)"); >+wtu.shouldGenerateGLError(context, context.NO_ERROR, "context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, 16, 16, 0, context.RGBA, context.UNSIGNED_BYTE, null)"); >+wtu.shouldGenerateGLError(context, context.INVALID_VALUE, "context.texSubImage2D(context.TEXTURE_2D, 0, -1, -1, 2, 2, context.RGBA, context.UNSIGNED_BYTE, pixels)"); >+wtu.shouldGenerateGLError(context, context.INVALID_VALUE, "context.texSubImage2D(context.TEXTURE_2D, 0, 0, 0, -1, -1, context.RGBA, context.UNSIGNED_BYTE, pixels)"); >+wtu.shouldGenerateGLError(context, context.NO_ERROR, "context.texSubImage2D(context.TEXTURE_2D, 0, 0, 0, 2, 2, context.RGBA, context.UNSIGNED_BYTE, pixels)"); >+wtu.shouldGenerateGLError(context, context.INVALID_VALUE, "context.copyTexImage2D(context.TEXTURE_2D, 0, context.RGBA, 0, 0, -1, -1, 0)"); >+wtu.shouldGenerateGLError(context, context.NO_ERROR, "context.copyTexImage2D(context.TEXTURE_2D, 0, context.RGBA, 0, 0, 16, 16, 0)"); >+wtu.shouldGenerateGLError(context, context.INVALID_VALUE, "context.copyTexSubImage2D(context.TEXTURE_2D, 0, -1, -1, 0, 0, 2, 2)"); >+wtu.shouldGenerateGLError(context, context.INVALID_VALUE, "context.copyTexSubImage2D(context.TEXTURE_2D, 0, 0, 0, 0, 0, -1, -1)"); >+wtu.shouldGenerateGLError(context, context.NO_ERROR, "context.copyTexSubImage2D(context.TEXTURE_2D, 0, 0, 0, 0, 0, 2, 2)"); >+ >+debug(""); >+debug("Test renderbufferStorage() with negative width/height"); >+var renderbuffer = context.createRenderbuffer(); >+wtu.shouldGenerateGLError(context, context.NO_ERROR, "context.bindRenderbuffer(context.RENDERBUFFER, renderbuffer)"); >+wtu.shouldGenerateGLError(context, context.INVALID_VALUE, "context.renderbufferStorage(context.RENDERBUFFER, context.RGBA4, -2, -2)"); >+wtu.shouldGenerateGLError(context, context.NO_ERROR, "context.renderbufferStorage(context.RENDERBUFFER, context.RGBA4, 16, 16)"); >+ >+debug(""); >+debug("Test scissor() with negative width/height"); >+wtu.shouldGenerateGLError(context, context.INVALID_VALUE, "context.scissor(0, 0, -2, -2)"); >+wtu.shouldGenerateGLError(context, context.NO_ERROR, "context.scissor(0, 0, 16, 16)"); >+ >+debug(""); >+debug("Test viewport() with negative width/height"); >+wtu.shouldGenerateGLError(context, context.INVALID_VALUE, "context.viewport(0, 0, -2, -2)"); >+wtu.shouldGenerateGLError(context, context.NO_ERROR, "context.viewport(0, 0, 16, 16)"); >+ >+debug(""); >+debug("Set up a program to test invalid characters"); >+var invalidSet = ['"', '$', '`', '@', '\\', "'"]; >+var validUniformName = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_1234567890"; >+var validAttribName = "abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; >+function generateShaderSource(opt_invalidIdentifierChar, opt_invalidCommentChar) { >+ var invalidIdentifierString = ""; >+ var invalidCommentString = ""; >+ if (opt_invalidIdentifierChar != undefined) { >+ invalidIdentifierString += opt_invalidIdentifierChar; >+ } >+ if (opt_invalidCommentChar != undefined) { >+ invalidCommentString += opt_invalidCommentChar; >+ } >+ return "uniform float " + validUniformName + invalidIdentifierString + ";\n" >+ + "varying float " + validAttribName + ";\n" >+ + "void main() {\n" >+ + validAttribName + " = " + validUniformName + ";\n" >+ + "gl_Position = vec4(0.0, 0.0, 0.0, 1.0); }\n" >+ + "//.+-/*%<>[](){}^|&~=!:;,?# " + invalidCommentString; >+} >+var vShader = context.createShader(context.VERTEX_SHADER); >+context.shaderSource(vShader, generateShaderSource()); >+context.compileShader(vShader); >+shouldBe("context.getError()", "context.NO_ERROR"); >+var fShader = context.createShader(context.FRAGMENT_SHADER); >+context.shaderSource(fShader, "precision mediump float;\n" >+ + "varying float " + validAttribName + ";\n" >+ + "void main() {\n" >+ + "gl_FragColor = vec4(" + validAttribName + ", 0.0, 0.0, 1.0); }"); >+context.compileShader(fShader); >+shouldBe("context.getError()", "context.NO_ERROR"); >+var program = context.createProgram(); >+context.attachShader(program, vShader); >+context.attachShader(program, fShader); >+context.linkProgram(program); >+var linkStatus = context.getProgramParameter(program, context.LINK_STATUS); >+shouldBeTrue("linkStatus"); >+if (!linkStatus) >+ debug(context.getProgramInfoLog(program)); >+shouldBe("context.getError()", "context.NO_ERROR"); >+context.bindAttribLocation(program, 1, validAttribName); >+shouldBe("context.getError()", "context.NO_ERROR"); >+context.getAttribLocation(program, validAttribName); >+shouldBe("context.getError()", "context.NO_ERROR"); >+context.getUniformLocation(program, validUniformName); >+shouldBe("context.getError()", "context.NO_ERROR"); >+ >+debug(""); >+debug("Test shaderSource() with invalid characters"); >+for (var i = 0; i < invalidSet.length; ++i) { >+ // Backslash as line-continuation is allowed in WebGL 2.0. >+ if (contextVersion > 1 && invalidSet[i] == '\\') >+ continue; >+ var validShaderSource = generateShaderSource(undefined, invalidSet[i]); >+ context.shaderSource(vShader, validShaderSource); >+ shouldBe("context.getError()", "context.NO_ERROR"); >+ var invalidShaderSource = generateShaderSource(invalidSet[i], undefined); >+ context.shaderSource(vShader, invalidShaderSource); >+ shouldBe("context.getError()", "context.INVALID_VALUE"); >+} >+ >+debug(""); >+debug("Test bindAttribLocation() with invalid characters"); >+for (var i = 0; i < invalidSet.length; ++i) { >+ var invalidName = validAttribName + invalidSet[i]; >+ context.bindAttribLocation(program, 1, invalidName); >+ shouldBe("context.getError()", "context.INVALID_VALUE"); >+} >+ >+debug(""); >+debug("Test getAttribLocation() with invalid characters"); >+for (var i = 0; i < invalidSet.length; ++i) { >+ var invalidName = validAttribName + invalidSet[i]; >+ context.getAttribLocation(program, invalidName); >+ shouldBe("context.getError()", "context.INVALID_VALUE"); >+} >+ >+debug(""); >+debug("Test getUniformLocation() with invalid characters"); >+for (var i = 0; i < invalidSet.length; ++i) { >+ var invalidName = validUniformName + invalidSet[i]; >+ context.getUniformLocation(program, invalidName); >+ shouldBe("context.getError()", "context.INVALID_VALUE"); >+} >+ >+debug("") >+var successfullyParsed = true; >+</script> >+ >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/is-object.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/is-object.html >new file mode 100644 >index 00000000000..4eaf736f9a6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/is-object.html >@@ -0,0 +1,99 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas"> >+<script> >+"use strict"; >+var wtu; >+var canvas; >+var gl; >+var shouldGenerateGLError; >+ >+var buffer; >+var framebuffer; >+var program; >+var renderbuffer; >+var shader; >+var texture; >+ >+description("Tests 'is' calls against non-bound and deleted objects"); >+ >+wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("canvas"); >+shouldGenerateGLError = wtu.shouldGenerateGLError; >+ >+shouldGenerateGLError(gl, gl.NO_ERROR, "buffer = gl.createBuffer()"); >+shouldBeFalse("gl.isBuffer(buffer)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindBuffer(gl.ARRAY_BUFFER, buffer)"); >+shouldBeTrue("gl.isBuffer(buffer)"); >+debug(""); >+ >+shouldGenerateGLError(gl, gl.NO_ERROR, "framebuffer = gl.createFramebuffer()"); >+shouldBeFalse("gl.isFramebuffer(framebuffer)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer)"); >+shouldBeTrue("gl.isFramebuffer(framebuffer)"); >+debug(""); >+ >+shouldGenerateGLError(gl, gl.NO_ERROR, "renderbuffer = gl.createRenderbuffer()"); >+shouldBeFalse("gl.isRenderbuffer(renderbuffer)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer)"); >+shouldBeTrue("gl.isRenderbuffer(renderbuffer)"); >+debug(""); >+ >+shouldGenerateGLError(gl, gl.NO_ERROR, "texture = gl.createTexture()"); >+shouldBeFalse("gl.isTexture(texture)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindTexture(gl.TEXTURE_2D, texture)"); >+shouldBeTrue("gl.isTexture(texture)"); >+debug(""); >+ >+shouldGenerateGLError(gl, gl.NO_ERROR, "program = gl.createProgram()"); >+shouldBeTrue("gl.isProgram(program)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteProgram(program)"); >+shouldBeFalse("gl.isProgram(program)"); >+debug(""); >+ >+shouldGenerateGLError(gl, gl.NO_ERROR, "shader = gl.createShader(gl.VERTEX_SHADER)"); >+shouldBeTrue("gl.isShader(shader)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteShader(shader)"); >+shouldBeFalse("gl.isShader(shader)"); >+debug(""); >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/null-object-behaviour.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/null-object-behaviour.html >new file mode 100644 >index 00000000000..2d6348c8fbd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/null-object-behaviour.html >@@ -0,0 +1,110 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+description("Tests calling WebGL APIs without providing the necessary objects"); >+ >+var context = wtu.create3DContext(); >+var program = wtu.loadStandardProgram(context); >+var shader = wtu.loadStandardVertexShader(context); >+var shouldGenerateGLError = wtu.shouldGenerateGLError; >+ >+assertMsg(program != null, "Program Compiled"); >+assertMsg(shader != null, "Shader Compiled"); >+shouldThrow("context.compileShader(undefined)"); >+shouldThrow("context.linkProgram(undefined)"); >+shouldThrow("context.attachShader(undefined, undefined)"); >+shouldThrow("context.attachShader(program, undefined)"); >+shouldThrow("context.attachShader(undefined, shader)"); >+shouldThrow("context.detachShader(program, undefined)"); >+shouldThrow("context.detachShader(undefined, shader)"); >+shouldThrow("context.shaderSource(undefined, undefined)"); >+shouldThrow("context.shaderSource(undefined, 'foo')"); >+shouldThrow("context.bindAttribLocation(undefined, 0, 'foo')"); >+shouldThrow("context.bindBuffer(context.ARRAY_BUFFER, 0)"); >+shouldThrow("context.bindFramebuffer(context.FRAMEBUFFER, 0)"); >+shouldThrow("context.bindRenderbuffer(context.RENDERBUFFER, 0)"); >+shouldThrow("context.bindTexture(context.TEXTURE_2D, 0)"); >+shouldGenerateGLError(context, context.NO_ERROR, "context.bindBuffer(context.ARRAY_BUFFER, null)"); >+shouldGenerateGLError(context, context.NO_ERROR, "context.bindFramebuffer(context.FRAMEBUFFER, null)"); >+shouldGenerateGLError(context, context.NO_ERROR, "context.bindRenderbuffer(context.RENDERBUFFER, null)"); >+shouldGenerateGLError(context, context.NO_ERROR, "context.bindTexture(context.TEXTURE_2D, null)"); >+shouldGenerateGLError(context, context.NO_ERROR, "context.bindBuffer(context.ARRAY_BUFFER, undefined)"); >+shouldGenerateGLError(context, context.NO_ERROR, "context.bindFramebuffer(context.FRAMEBUFFER, undefined)"); >+shouldGenerateGLError(context, context.NO_ERROR, "context.bindRenderbuffer(context.RENDERBUFFER, undefined)"); >+shouldGenerateGLError(context, context.NO_ERROR, "context.bindTexture(context.TEXTURE_2D, undefined)"); >+shouldGenerateGLError(context, context.INVALID_OPERATION, "context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, null)"); >+shouldGenerateGLError(context, context.INVALID_OPERATION, "context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, null, 0)"); >+shouldThrow("context.getProgramParameter(undefined, 0)"); >+shouldThrow("context.getProgramInfoLog(undefined, 0)"); >+shouldThrow("context.getShaderParameter(undefined, 0)"); >+shouldThrow("context.getShaderInfoLog(undefined, 0)"); >+shouldThrow("context.getShaderSource(undefined)"); >+shouldThrow("context.getUniform(undefined, null)"); >+shouldThrow("context.getUniformLocation(undefined, 'foo')"); >+ >+debug(""); >+debug("check with bindings"); >+context.bindBuffer(context.ARRAY_BUFFER, context.createBuffer()); >+context.bindTexture(context.TEXTURE_2D, context.createTexture()); >+shouldGenerateGLError(context, context.NO_ERROR, "context.bufferData(context.ARRAY_BUFFER, 1, context.STATIC_DRAW)"); >+shouldGenerateGLError(context, context.NO_ERROR, "context.getBufferParameter(context.ARRAY_BUFFER, context.BUFFER_SIZE)"); >+shouldGenerateGLError(context, context.NO_ERROR, "context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, 1, 1, 0, context.RGBA, context.UNSIGNED_BYTE, new Uint8Array([0,0,0,0]))"); >+shouldGenerateGLError(context, context.NO_ERROR, "context.texParameteri(context.TEXTURE_2D, context.TEXTURE_MIN_FILTER, context.NEAREST)"); >+shouldGenerateGLError(context, context.NO_ERROR, "context.getTexParameter(context.TEXTURE_2D, context.TEXTURE_MIN_FILTER)"); >+ >+debug(""); >+debug("check without bindings"); >+context.bindBuffer(context.ARRAY_BUFFER, null); >+context.bindTexture(context.TEXTURE_2D, null); >+shouldGenerateGLError(context, context.INVALID_OPERATION, "context.bufferData(context.ARRAY_BUFFER, 1, context.STATIC_DRAW)"); >+shouldGenerateGLError(context, context.INVALID_OPERATION, "context.getBufferParameter(context.ARRAY_BUFFER, context.BUFFER_SIZE)"); >+shouldGenerateGLError(context, context.INVALID_OPERATION, "context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, 1, 1, 0, context.RGBA, context.UNSIGNED_BYTE, new Uint8Array([0,0,0,0]))"); >+shouldGenerateGLError(context, context.INVALID_OPERATION, "context.texParameteri(context.TEXTURE_2D, context.TEXTURE_MIN_FILTER, context.NEAREST)"); >+shouldGenerateGLError(context, context.INVALID_OPERATION, "context.getTexParameter(context.TEXTURE_2D, context.TEXTURE_MIN_FILTER)"); >+ >+ >+var successfullyParsed = true; >+</script> >+ >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/object-deletion-behaviour.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/object-deletion-behaviour.html >new file mode 100644 >index 00000000000..1808e13a923 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/object-deletion-behaviour.html >@@ -0,0 +1,464 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+description("Tests deletion behavior for buffer, texture, renderbuffer, shader, and program"); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext(); >+var shouldGenerateGLError = wtu.shouldGenerateGLError; >+var contextVersion = wtu.getDefault3DContextVersion(); >+ >+debug(""); >+debug("shader and program deletion"); >+ >+var vertexShader = wtu.loadStandardVertexShader(gl); >+assertMsg(vertexShader, "vertex shader loaded"); >+var fragmentShader = wtu.loadStandardFragmentShader(gl); >+assertMsg(fragmentShader, "fragment shader loaded"); >+ >+var program = gl.createProgram(); >+shouldBeNonNull("program"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.attachShader(program, vertexShader)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.attachShader(program, fragmentShader)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.linkProgram(program)"); >+shouldBeTrue("gl.getProgramParameter(program, gl.LINK_STATUS)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.useProgram(program)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteShader(vertexShader)"); >+shouldBeTrue("gl.isShader(vertexShader)"); >+shouldBeTrue("gl.getShaderParameter(vertexShader, gl.DELETE_STATUS)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.detachShader(program, vertexShader)"); >+shouldBeFalse("gl.isShader(vertexShader)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteShader(fragmentShader)"); >+shouldBeTrue("gl.isShader(fragmentShader)"); >+shouldBeTrue("gl.getShaderParameter(fragmentShader, gl.DELETE_STATUS)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteProgram(program)"); >+shouldBeTrue("gl.isProgram(program)"); >+shouldBeTrue("gl.getProgramParameter(program, gl.DELETE_STATUS)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.useProgram(null)"); >+shouldBeFalse("gl.isProgram(program)"); >+shouldBeFalse("gl.isShader(fragmentShader)"); >+ >+debug(""); >+debug("texture deletion"); >+ >+var fbo = gl.createFramebuffer(), fbo2 = gl.createFramebuffer(), fbo3 = gl.createFramebuffer(); >+shouldBeNonNull("fbo"); >+shouldBeNonNull("fbo2"); >+shouldBeNonNull("fbo3"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo)"); >+ >+var tex = gl.createTexture(); >+shouldBeNonNull("tex"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindTexture(gl.TEXTURE_2D, tex)"); >+shouldBe("gl.getParameter(gl.TEXTURE_BINDING_2D)", "tex"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex, 0)"); >+shouldBe("gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)", "tex"); >+shouldBe("gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE)", "gl.TEXTURE"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteTexture(tex)"); >+// Deleting a texture bound to the currently-bound fbo is the same as >+// detaching the textue from fbo first, then delete the texture. >+shouldBe("gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE)", "gl.NONE"); >+if (contextVersion > 1) { >+ shouldBeNull("gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)"); >+} else { >+ shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)"); >+} >+shouldBeFalse("gl.isTexture(tex)"); >+shouldBeNull("gl.getParameter(gl.TEXTURE_BINDING_2D)"); >+shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.bindTexture(gl.TEXTURE_2D, tex)"); >+shouldBeNull("gl.getParameter(gl.TEXTURE_BINDING_2D)"); >+ >+var texCubeMap = gl.createTexture(); >+shouldBeNonNull("texCubeMap"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindTexture(gl.TEXTURE_CUBE_MAP, texCubeMap)"); >+shouldBe("gl.getParameter(gl.TEXTURE_BINDING_CUBE_MAP)", "texCubeMap"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteTexture(texCubeMap)"); >+shouldBeFalse("gl.isTexture(texCubeMap)"); >+shouldBeNull("gl.getParameter(gl.TEXTURE_BINDING_CUBE_MAP)"); >+shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.bindTexture(gl.TEXTURE_CUBE_MAP, texCubeMap)"); >+shouldBeNull("gl.getParameter(gl.TEXTURE_BINDING_CUBE_MAP)"); >+ >+var t = gl.createTexture(); >+shouldBeNonNull("t"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindTexture(gl.TEXTURE_2D, t)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteTexture(t)"); >+shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.bindTexture(gl.TEXTURE_2D, t)"); >+shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE)"); >+ >+var t2 = gl.createTexture(); >+shouldBeNonNull("t2"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.activeTexture(gl.TEXTURE0)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindTexture(gl.TEXTURE_2D, t2)"); >+shouldBe("gl.getParameter(gl.TEXTURE_BINDING_2D)", "t2"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.activeTexture(gl.TEXTURE1)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindTexture(gl.TEXTURE_2D, t2)"); >+shouldBe("gl.getParameter(gl.TEXTURE_BINDING_2D)", "t2"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteTexture(t2)"); >+shouldBeNull("gl.getParameter(gl.TEXTURE_BINDING_2D)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.activeTexture(gl.TEXTURE0)"); >+shouldBeNull("gl.getParameter(gl.TEXTURE_BINDING_2D)"); >+ >+debug(""); >+debug("renderbuffer deletion"); >+ >+var rbo = gl.createRenderbuffer(), rbo2 = gl.createRenderbuffer(), rbo3 = gl.createRenderbuffer(); >+shouldBeNonNull("rbo"); >+shouldBeNonNull("rbo2"); >+shouldBeNonNull("rbo3"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindRenderbuffer(gl.RENDERBUFFER, rbo)"); >+shouldBe("gl.getParameter(gl.RENDERBUFFER_BINDING)", "rbo"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rbo)"); >+shouldBe("gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)", "rbo"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteRenderbuffer(rbo)"); >+// Deleting a renderbuffer bound to the currently-bound fbo is the same as >+// detaching the renderbuffer from fbo first, then delete the renderbuffer. >+shouldBe("gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE)", "gl.NONE"); >+if (contextVersion > 1) { >+ shouldBeNull("gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)"); >+} else { >+ shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)"); >+} >+shouldBeFalse("gl.isRenderbuffer(rbo)"); >+shouldBeNull("gl.getParameter(gl.RENDERBUFFER_BINDING)"); >+shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.bindRenderbuffer(gl.RENDERBUFFER, rbo)"); >+shouldBeNull("gl.getParameter(gl.RENDERBUFFER_BINDING)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindRenderbuffer(gl.RENDERBUFFER, rbo2)"); >+shouldBe("gl.getParameter(gl.RENDERBUFFER_BINDING)", "rbo2"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteRenderbuffer(rbo3)"); >+shouldBe("gl.getParameter(gl.RENDERBUFFER_BINDING)", "rbo2"); >+ >+debug(""); >+debug("using deleted renderbuffer"); >+rbo = gl.createRenderbuffer(); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindRenderbuffer(gl.RENDERBUFFER, rbo)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 16, 16)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rbo)"); >+if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) == gl.FRAMEBUFFER_COMPLETE) { >+ // make backbuffer red >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, null)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clearColor(1,0,0,1)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clear(gl.COLOR_BUFFER_BIT)"); >+ // make fbo green >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clearColor(0,1,0,1)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clear(gl.COLOR_BUFFER_BIT)"); >+ // Bind backbuffer. >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, null)"); >+ // delete renderbuffer. It should still be attached to fbo though. >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteRenderbuffer(rbo)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 0, 16, 16, [255,0,0,255], "backbuffer should be red")'); >+ // Use fbo that has deleted rbo. >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 0, 16, 16, [0,255,0,255], "fbo should be green")'); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clearColor(0,0,1,1)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clear(gl.COLOR_BUFFER_BIT)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 0, 16, 16, [0,0,255,255], "fbo should be blue")'); >+ // Bind backbuffer. >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, null)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 0, 16, 16, [255,0,0,255], "backbuffer should be red")'); >+} >+ >+debug(""); >+debug("renderbuffer attached twice to same framebuffer"); >+rbo = gl.createRenderbuffer(); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindRenderbuffer(gl.RENDERBUFFER, rbo)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 16, 16)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rbo)"); >+if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) == gl.FRAMEBUFFER_COMPLETE) { >+ rbo2 = gl.createRenderbuffer(); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindRenderbuffer(gl.RENDERBUFFER, rbo2)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 16, 16)"); >+ // attach rbo2 at two attachment points incompatible with it >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, rbo2)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.RENDERBUFFER, rbo2)"); >+ shouldBe("gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)", "rbo2"); >+ shouldBe("gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)", "rbo2"); >+ // fbo can't be complete as rbo2 is attached at incompatible attachment points >+ shouldNotBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ // now we delete rbo2, which detaches it from the two attachment points where it currently is attached >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteRenderbuffer(rbo2)"); >+ shouldBe("gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE)", "gl.NONE"); >+ shouldBe("gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE)", "gl.NONE"); >+ // we should now be in the same state as before with only rbo attached, so fbo should be complete again >+ shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ shouldBe("gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)", "rbo"); >+} >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteRenderbuffer(rbo)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, null)"); >+ >+ >+ >+debug(""); >+debug("using deleted texture"); >+tex = gl.createTexture(); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindTexture(gl.TEXTURE_2D, tex)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex, 0)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, null)"); >+if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) == gl.FRAMEBUFFER_COMPLETE) { >+ // make fbo green >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clearColor(0,1,0,1)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clear(gl.COLOR_BUFFER_BIT)"); >+ // Bind backbuffer. >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, null)"); >+ // delete texture. It should still be attached to fbo though. >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteTexture(tex)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 0, 1, 1, [255,0,0,255], "backbuffer should be red")'); >+ // Use fbo that has deleted texture. >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0,255,0,255], "fbo should be green")'); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clearColor(0,0,1,1)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clear(gl.COLOR_BUFFER_BIT)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0,0,255,255], "fbo should be blue")'); >+ // Bind backbuffer. >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, null)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 0, 16, 16, [255,0,0,255], "backbuffer should be red")'); >+} >+ >+debug(""); >+debug("using deleted renderbuffer"); >+rbo = gl.createRenderbuffer(); >+shouldBeNonNull("rbo"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindRenderbuffer(gl.RENDERBUFFER, rbo)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 16, 16)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rbo)"); >+if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) == gl.FRAMEBUFFER_COMPLETE) { >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo2)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rbo)"); >+ shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ // make backbuffer red >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, null)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clearColor(1,0,0,1)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clear(gl.COLOR_BUFFER_BIT)"); >+ // make fbo green >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clearColor(0,1,0,1)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clear(gl.COLOR_BUFFER_BIT)"); >+ // delete renderbuffer. It should still be attached to fbo2 though. >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteRenderbuffer(rbo)"); >+ // fbo has no attachments >+ shouldNotBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ // Use fbo2 that has deleted rbo. >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo2)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 0, 16, 16, [0,255,0,255], "fbo should be green")'); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clearColor(0,0,1,1)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clear(gl.COLOR_BUFFER_BIT)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 0, 16, 16, [0,0,255,255], "fbo should be blue")'); >+ shouldBe("gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)", "rbo"); >+ >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo)"); >+ if (contextVersion > 1) { >+ shouldBeNull("gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)"); >+ } else { >+ shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)"); >+ } >+ shouldGenerateGLError(gl, gl.NONE, "gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE)"); >+ shouldNotBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ // Bind backbuffer. >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, null)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 0, 16, 16, [255,0,0,255], "backbuffer should be red")'); >+} >+ >+debug(""); >+debug("using deleted texture"); >+tex = gl.createTexture(); >+shouldBeNonNull("tex"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindTexture(gl.TEXTURE_2D, tex)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex, 0)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, null)"); >+if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) == gl.FRAMEBUFFER_COMPLETE) { >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo2)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex, 0)"); >+ // make fbo green >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clearColor(0,1,0,1)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clear(gl.COLOR_BUFFER_BIT)"); >+ // delete texture. It should still be attached to fbo2 though. >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteTexture(tex)"); >+ // fbo has no attachments >+ shouldNotBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ // Use fbo that has deleted texture. >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo2)"); >+ shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0,255,0,255], "fbo should be green")'); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clearColor(0,0,1,1)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clear(gl.COLOR_BUFFER_BIT)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0,0,255,255], "fbo should be blue")'); >+ shouldBe("gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)", "tex"); >+ >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo)"); >+ if (contextVersion > 1) { >+ shouldBeNull("gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)"); >+ } else { >+ shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)"); >+ } >+ shouldNotBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ // Bind backbuffer. >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, null)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 0, 16, 16, [255,0,0,255], "backbuffer should be red")'); >+} >+ >+debug(""); >+debug("buffer deletion"); >+ >+var buffer = gl.createBuffer(); >+shouldBeNonNull("buffer"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindBuffer(gl.ARRAY_BUFFER, buffer)"); >+shouldBe("gl.getParameter(gl.ARRAY_BUFFER_BINDING)", "buffer"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteBuffer(buffer)"); >+shouldBeFalse("gl.isBuffer(buffer)"); >+shouldBeNull("gl.getParameter(gl.ARRAY_BUFFER_BINDING)"); >+shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.bindBuffer(gl.ARRAY_BUFFER, buffer)"); >+shouldBeNull("gl.getParameter(gl.ARRAY_BUFFER_BINDING)"); >+ >+var buffer2 = gl.createBuffer(); >+shouldBeNonNull("buffer2"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindBuffer(gl.ARRAY_BUFFER, buffer2)"); >+shouldBe("gl.getParameter(gl.ARRAY_BUFFER_BINDING)", "buffer2"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindBuffer(gl.ARRAY_BUFFER, null)"); >+shouldBeNull("gl.getParameter(gl.ARRAY_BUFFER_BINDING)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteBuffer(buffer2)"); >+shouldBeFalse("gl.isBuffer(buffer2)"); >+shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.bindBuffer(gl.ARRAY_BUFFER, buffer2)"); >+shouldBeNull("gl.getParameter(gl.ARRAY_BUFFER_BINDING)"); >+ >+var bufferElement = gl.createBuffer(); >+shouldBeNonNull("bufferElement"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferElement)"); >+shouldBe("gl.getParameter(gl.ELEMENT_ARRAY_BUFFER_BINDING)", "bufferElement"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteBuffer(bufferElement)"); >+shouldBeFalse("gl.isBuffer(bufferElement)"); >+shouldBeNull("gl.getParameter(gl.ELEMENT_ARRAY_BUFFER_BINDING)"); >+shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferElement)"); >+shouldBeNull("gl.getParameter(gl.ELEMENT_ARRAY_BUFFER_BINDING)"); >+ >+var b = gl.createBuffer(); >+shouldBeNonNull("b"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindBuffer(gl.ARRAY_BUFFER, b)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bufferData(gl.ARRAY_BUFFER, 1, gl.STATIC_DRAW)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteBuffer(b)"); >+shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.bindBuffer(gl.ARRAY_BUFFER, b)"); >+shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.bufferData(gl.ARRAY_BUFFER, 1, gl.STATIC_DRAW)"); >+ >+var b1 = gl.createBuffer(); >+shouldBeNonNull("b1"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindBuffer(gl.ARRAY_BUFFER, b1);"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.enableVertexAttribArray(1);"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.vertexAttribPointer(1, 4, gl.FLOAT, false, 0, 0);"); >+var b2 = gl.createBuffer(); >+shouldBeNonNull("b2"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindBuffer(gl.ARRAY_BUFFER, b2);"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.enableVertexAttribArray(2);"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.vertexAttribPointer(2, 4, gl.FLOAT, false, 0, 0);"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.enableVertexAttribArray(3);"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.vertexAttribPointer(3, 4, gl.FLOAT, false, 0, 0);"); >+shouldBe("gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING)", "b1"); >+shouldBe("gl.getVertexAttrib(2, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING)", "b2"); >+shouldBe("gl.getVertexAttrib(3, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING)", "b2"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteBuffer(b2);"); >+shouldBe("gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING)", "b1"); >+shouldBeNull("gl.getVertexAttrib(2, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING)"); >+shouldBeNull("gl.getVertexAttrib(3, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteBuffer(b1);"); >+shouldBeNull("gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING)"); >+ >+debug(""); >+debug("framebuffer deletion"); >+ >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo)"); >+shouldBe("gl.getParameter(gl.FRAMEBUFFER_BINDING)", "fbo"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteFramebuffer(fbo)"); >+shouldBeFalse("gl.isFramebuffer(fbo)"); >+shouldBeNull("gl.getParameter(gl.FRAMEBUFFER_BINDING)"); >+shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo)"); >+shouldBeNull("gl.getParameter(gl.FRAMEBUFFER_BINDING)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo2)"); >+shouldBe("gl.getParameter(gl.FRAMEBUFFER_BINDING)", "fbo2"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteFramebuffer(fbo3)"); >+shouldBe("gl.getParameter(gl.FRAMEBUFFER_BINDING)", "fbo2"); >+ >+fbo = gl.createFramebuffer(); >+rbo = gl.createRenderbuffer(); >+shouldBeNonNull("fbo"); >+shouldBeNonNull("rbo"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindRenderbuffer(gl.RENDERBUFFER, rbo)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 16, 16)"); >+shouldGenerateGLError(gl, gl.NO_ERROR, "gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rbo)"); >+if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) == gl.FRAMEBUFFER_COMPLETE) { >+ // set backbuffer to red >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, null)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clearColor(1,0,0,1)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clear(gl.COLOR_BUFFER_BIT)"); >+ // set framebuffer to green >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, fbo)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clearColor(0,1,0,1)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clear(gl.COLOR_BUFFER_BIT)"); >+ // check framebuffer >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 0, 16, 16, [0,255,0,255], "fbo should be green")'); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 16, 16, 1, 1, [0,0,0,0], "outside fbo should be black")'); >+ // delete framebuffer. because this was the bound fbo the backbuffer should be active now >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.deleteFramebuffer(fbo)"); >+ // check backbuffer >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 0, 300, 150, [255,0,0,255], "backbuffer should be red")'); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 300, 0, 300, 300, [0,0,0,0], "outside backbuffer should be black")'); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 150, 300, 300, [0,0,0,0], "outside backbuffer should be black")'); >+ // check drawing to backbuffer >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clearColor(0,1,0,1)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.clear(gl.COLOR_BUFFER_BIT)"); >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 0, 300, 150, [0,255,0,255], "fbo should be green")'); >+ shouldGenerateGLError(gl, gl.NO_ERROR, "gl.bindFramebuffer(gl.FRAMEBUFFER, null)"); >+ // check again because many buggy implementations will have bound to the true backbuffer on deleteFramebuffer. >+ shouldGenerateGLError(gl, gl.NO_ERROR, 'wtu.checkCanvasRect(gl, 0, 0, 300, 150, [0,255,0,255], "fbo should be green")'); >+} >+ >+var successfullyParsed = true; >+</script> >+ >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/shader-precision-format.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/shader-precision-format.html >new file mode 100644 >index 00000000000..d7d124d2c2d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/shader-precision-format.html >@@ -0,0 +1,158 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL shader precision format test.</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"> </script> >+</head> >+<body> >+<canvas id="canvas" width="2" height="2" style="width: 40px; height: 40px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+description(document.title); >+debug("Tests that WebGLShaderPrecisionFormat class and getShaderPrecisionFormat work."); >+debug(""); >+var gl = wtu.create3DContext("canvas"); >+ >+function verifyShaderPrecisionFormat(shadertype, precisiontype) { >+ shouldBeTrue('gl.getShaderPrecisionFormat(' + shadertype + ', ' + >+ precisiontype + ') instanceof WebGLShaderPrecisionFormat'); >+} >+ >+debug(""); >+debug("Test that getShaderPrecisionFormat returns a WebGLShaderPrecisionFormat object."); >+debug(""); >+ >+verifyShaderPrecisionFormat('gl.VERTEX_SHADER', 'gl.LOW_FLOAT'); >+verifyShaderPrecisionFormat('gl.VERTEX_SHADER', 'gl.MEDIUM_FLOAT'); >+verifyShaderPrecisionFormat('gl.VERTEX_SHADER', 'gl.HIGH_FLOAT'); >+verifyShaderPrecisionFormat('gl.VERTEX_SHADER', 'gl.LOW_INT'); >+verifyShaderPrecisionFormat('gl.VERTEX_SHADER', 'gl.MEDIUM_INT'); >+verifyShaderPrecisionFormat('gl.VERTEX_SHADER', 'gl.HIGH_INT'); >+verifyShaderPrecisionFormat('gl.FRAGMENT_SHADER', 'gl.LOW_FLOAT'); >+verifyShaderPrecisionFormat('gl.FRAGMENT_SHADER', 'gl.MEDIUM_FLOAT'); >+verifyShaderPrecisionFormat('gl.FRAGMENT_SHADER', 'gl.HIGH_FLOAT'); >+verifyShaderPrecisionFormat('gl.FRAGMENT_SHADER', 'gl.LOW_INT'); >+verifyShaderPrecisionFormat('gl.FRAGMENT_SHADER', 'gl.MEDIUM_INT'); >+verifyShaderPrecisionFormat('gl.FRAGMENT_SHADER', 'gl.HIGH_INT'); >+ >+debug(""); >+debug("Test that getShaderPrecisionFormat throws an error with invalid parameters."); >+debug(""); >+ >+wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, 'gl.getShaderPrecisionFormat(gl.HIGH_INT, gl.VERTEX_SHADER)'); >+ >+debug(""); >+debug("Test that WebGLShaderPrecisionFormat values are sensible."); >+debug(""); >+ >+// The minimum values are from OpenGL ES Shading Language spec, section 4.5. >+ >+var shaderPrecisionFormat = gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.LOW_FLOAT); >+shouldBeTrue('shaderPrecisionFormat.rangeMin >= 1'); >+shouldBeTrue('shaderPrecisionFormat.rangeMax >= 1'); >+shouldBeTrue('shaderPrecisionFormat.precision >= 8'); >+ >+shaderPrecisionFormat = gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT); >+shouldBeTrue('shaderPrecisionFormat.rangeMin >= 14'); >+shouldBeTrue('shaderPrecisionFormat.rangeMax >= 14'); >+shouldBeTrue('shaderPrecisionFormat.precision >= 10'); >+ >+shaderPrecisionFormat = gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT); >+shouldBeTrue('shaderPrecisionFormat.rangeMin >= 62'); >+shouldBeTrue('shaderPrecisionFormat.rangeMax >= 62'); >+shouldBeTrue('shaderPrecisionFormat.precision >= 16'); >+ >+shaderPrecisionFormat = gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.LOW_INT); >+shouldBeTrue('shaderPrecisionFormat.rangeMin >= 8'); >+shouldBeTrue('shaderPrecisionFormat.rangeMax >= 8'); >+shouldBeTrue('shaderPrecisionFormat.precision == 0'); >+ >+shaderPrecisionFormat = gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_INT); >+shouldBeTrue('shaderPrecisionFormat.rangeMin >= 10'); >+shouldBeTrue('shaderPrecisionFormat.rangeMax >= 10'); >+shouldBeTrue('shaderPrecisionFormat.precision == 0'); >+ >+shaderPrecisionFormat = gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_INT); >+shouldBeTrue('shaderPrecisionFormat.rangeMin >= 16'); >+shouldBeTrue('shaderPrecisionFormat.rangeMax >= 16'); >+shouldBeTrue('shaderPrecisionFormat.precision == 0'); >+ >+var shaderPrecisionFormat = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.LOW_FLOAT); >+shouldBeTrue('shaderPrecisionFormat.rangeMin >= 1'); >+shouldBeTrue('shaderPrecisionFormat.rangeMax >= 1'); >+shouldBeTrue('shaderPrecisionFormat.precision >= 8'); >+ >+shaderPrecisionFormat = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT); >+shouldBeTrue('shaderPrecisionFormat.rangeMin >= 14'); >+shouldBeTrue('shaderPrecisionFormat.rangeMax >= 14'); >+shouldBeTrue('shaderPrecisionFormat.precision >= 10'); >+ >+shaderPrecisionFormat = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.LOW_INT); >+shouldBeTrue('shaderPrecisionFormat.rangeMin >= 8'); >+shouldBeTrue('shaderPrecisionFormat.rangeMax >= 8'); >+shouldBeTrue('shaderPrecisionFormat.precision == 0'); >+ >+shaderPrecisionFormat = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_INT); >+shouldBeTrue('shaderPrecisionFormat.rangeMin >= 10'); >+shouldBeTrue('shaderPrecisionFormat.rangeMax >= 10'); >+shouldBeTrue('shaderPrecisionFormat.precision == 0'); >+ >+debug(""); >+debug("Test optional highp support in fragment shaders."); >+debug(""); >+ >+shaderPrecisionFormat = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT); >+shouldBeTrue('(shaderPrecisionFormat.rangeMin == 0 && shaderPrecisionFormat.rangeMax == 0 && shaderPrecisionFormat.precision == 0) || (shaderPrecisionFormat.rangeMin >= 62 && shaderPrecisionFormat.rangeMax >= 62 && shaderPrecisionFormat.precision >= 16)'); >+ >+shaderPrecisionFormat = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_INT); >+shouldBeTrue('(shaderPrecisionFormat.rangeMin == 0 && shaderPrecisionFormat.rangeMax == 0 && shaderPrecisionFormat.precision == 0) || (shaderPrecisionFormat.rangeMin >= 16 && shaderPrecisionFormat.rangeMax >= 16 && shaderPrecisionFormat.precision == 0)'); >+ >+debug(""); >+debug("Test that getShaderPrecisionFormat returns the same thing every call."); >+debug(""); >+ >+shaderPrecisionFormat = gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.LOW_FLOAT); >+var shaderPrecisionFormat2 = gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.LOW_FLOAT); >+shouldBeTrue('shaderPrecisionFormat.rangeMin == shaderPrecisionFormat2.rangeMin'); >+shouldBeTrue('shaderPrecisionFormat.rangeMax == shaderPrecisionFormat2.rangeMax'); >+shouldBeTrue('shaderPrecisionFormat.precision == shaderPrecisionFormat2.precision'); >+ >+finishTest(); >+</script> >+ >+</body> >+</html> >+ >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/type-conversion-test.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/type-conversion-test.html >new file mode 100644 >index 00000000000..09c56b731ad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/type-conversion-test.html >@@ -0,0 +1,172 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+description("Tests calling WebGL APIs with various types"); >+ >+var context = wtu.create3DContext(); >+var program = wtu.loadStandardProgram(context); >+var shader = wtu.loadStandardVertexShader(context); >+ >+assertMsg(program != null, "Program Compiled"); >+assertMsg(shader != null, "Shader Compiled"); >+ >+var loc = context.getUniformLocation(program, "u_modelViewProjMatrix"); >+assertMsg(loc != null, "getUniformLocation succeeded"); >+ >+var buffer = context.createBuffer(); >+context.bindBuffer(context.ARRAY_BUFFER, buffer); >+var texture = context.createTexture(); >+context.bindTexture(context.TEXTURE_2D, texture); >+context.useProgram(program); >+ >+var args = [ >+ { type: "number", value: 0 }, >+ { type: "number", value: 2 }, >+ { type: "string that is NaN", value: "foo", }, >+ { type: "string that is number", value: "2", }, >+ { type: "null", value: null }, >+ { type: "Empty Array", value: [] }, >+ { type: "Object", value: {} }, >+ { type: "Array of Number", value: [2] }, >+ { type: "Array of String", value: ["foo"] }, >+ { type: "Array of String that is number", value: ["0"] }, >+ { type: "Array of String that is number", value: ["2"] }, >+ { type: "TypedArray", value: new Float32Array(1) } >+]; >+ >+var argument; >+ >+for (var i = 0; i < args.length; ++i) { >+ argument = args[i].value; >+ var func1 = shouldBeUndefined; >+ var func2 = shouldBeNonNull; >+ if (argument == 2) { >+ func2 = shouldBeNull; >+ } >+ var func3 = shouldBeNull; >+ debug(""); >+ debug("testing type of " + args[i].type + " : value = " + argument); >+ func1("context.bindAttribLocation(program, argument, 'foo')"); >+ func1("context.blendColor(argument, argument, argument, argument)"); >+ func1("context.bufferData(context.ARRAY_BUFFER, argument, context.STATIC_DRAW)"); >+ func1("context.bufferData(context.ARRAY_BUFFER, new Float32Array(10), context.STATIC_DRAW)"); >+ func1("context.bufferSubData(context.ARRAY_BUFFER, argument, new Float32Array(2))"); >+ func1("context.clear(argument)") >+ func1("context.clearColor(argument, 0, 0, 0)"); >+ func1("context.clearColor(0, argument, 0, 0)"); >+ func1("context.clearColor(0, 0, argument, 0)"); >+ func1("context.clearColor(0, 0, 0, argument)"); >+ func1("context.clearDepth(argument)"); >+ func1("context.clearStencil(argument)"); >+ func1("context.copyTexImage2D(context.TEXTURE_2D, argument, context.RGBA, 0, 0, 1, 1, 0)"); >+ func1("context.copyTexImage2D(context.TEXTURE_2D, 0, context.RGBA, argument, 0, 1, 1, 0)"); >+ func1("context.copyTexImage2D(context.TEXTURE_2D, 0, context.RGBA, 0, argument, 1, 1, 0)"); >+ func1("context.copyTexImage2D(context.TEXTURE_2D, 0, context.RGBA, 0, 0, argument, 1, 0)"); >+ func1("context.copyTexImage2D(context.TEXTURE_2D, 0, context.RGBA, 0, 0, 0, argument, 0)"); >+ func1("context.copyTexSubImage2D(context.TEXTURE_2D, argument, 0, 0, 0, 0, 0, 0)"); >+ func1("context.copyTexSubImage2D(context.TEXTURE_2D, 0, argument, 0, 0, 0, 0, 0)"); >+ func1("context.copyTexSubImage2D(context.TEXTURE_2D, 0, 0, argument, 0, 0, 0, 0)"); >+ func1("context.copyTexSubImage2D(context.TEXTURE_2D, 0, 0, 0, argument, 0, 0, 0)"); >+ func1("context.copyTexSubImage2D(context.TEXTURE_2D, 0, 0, 0, 0, argument, 0, 0)"); >+ func1("context.copyTexSubImage2D(context.TEXTURE_2D, 0, 0, 0, 0, 0, argument, 0)"); >+ func1("context.copyTexSubImage2D(context.TEXTURE_2D, 0, 0, 0, 0, 0, 0, argument)"); >+ func1("context.depthMask(argument)"); >+ func1("context.depthRange(argument, 1)"); >+ func1("context.depthRange(0, argument)"); >+ func1("context.drawArrays(context.POINTS, argument, 1)"); >+ func1("context.drawArrays(context.POINTS, 0, argument)"); >+ //func1("context.drawElements(...)"); >+ func1("context.enableVertexAttribArray(argument)"); >+ func1("context.disableVertexAttribArray(argument)"); >+ func2("context.getActiveAttrib(program, argument)"); >+ func2("context.getActiveUniform(program, argument)"); >+ func3("context.getParameter(argument)"); >+ func1("context.lineWidth(argument)"); >+ func1("context.polygonOffset(argument, 0)"); >+ func1("context.polygonOffset(0, argument)"); >+ //func1("context.readPixels(...)"); >+ //func1("context.renderbufferStorage(...)"); >+ func1("context.sampleCoverage(argument, 0)"); >+ func1("context.sampleCoverage(0, argument)"); >+ func1("context.scissor(argument, 0, 10, 10)"); >+ func1("context.scissor(0, argument, 10, 10)"); >+ func1("context.scissor(0, 0, argument, 10)"); >+ func1("context.scissor(0, 0, 10, argument)"); >+ func1("context.shaderSource(shader, argument)"); >+ func1("context.stencilFunc(context.NEVER, argument, 255)"); >+ func1("context.stencilFunc(context.NEVER, 0, argument)"); >+ //func1("context.stencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)"); >+ func1("context.stencilMask(argument)"); >+ //func1("context.stencilMaskSeparate(context.FRONT, argument); >+ //func1("context.texImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, ArrayBufferView pixels)"); >+ //func1("context.texParameterf(GLenum target, GLenum pname, GLfloat param)"); >+ //func1("context.texParameteri(GLenum target, GLenum pname, GLint param)"); >+ //func1("context.texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,GLsizei width, GLsizei height,GLenum format, GLenum type, ArrayBufferView pixels)"); >+ func1("context.uniform1i(loc, argument)"); >+ func1("context.uniform2i(loc, argument, 0)"); >+ func1("context.uniform2i(loc, 0, argument)"); >+ func1("context.uniform3i(loc, argument, 0, 0)"); >+ func1("context.uniform3i(loc, 0, argument, 0)"); >+ func1("context.uniform3i(loc, 0, 0, argument)"); >+ func1("context.uniform4i(loc, argument, 0, 0, 0)"); >+ func1("context.uniform4i(loc, 0, argument, 0, 0)"); >+ func1("context.uniform4i(loc, 0, 0, argument, 0)"); >+ func1("context.uniform4i(loc, 0, 0, 0, argument)"); >+ func1("context.uniform1f(loc, argument)"); >+ func1("context.uniform2f(loc, argument, 0)"); >+ func1("context.uniform2f(loc, 0, argument)"); >+ func1("context.uniform3f(loc, argument, 0, 0)"); >+ func1("context.uniform3f(loc, 0, argument, 0)"); >+ func1("context.uniform3f(loc, 0, 0, argument)"); >+ func1("context.uniform4f(loc, argument, 0, 0, 0)"); >+ func1("context.uniform4f(loc, 0, argument, 0, 0)"); >+ func1("context.uniform4f(loc, 0, 0, argument, 0)"); >+ func1("context.uniform4f(loc, 0, 0, 0, argument)"); >+} >+ >+var successfullyParsed = true; >+</script> >+ >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/uninitialized-test.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/uninitialized-test.html >new file mode 100644 >index 00000000000..af1de480125 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/uninitialized-test.html >@@ -0,0 +1,214 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Uninitialized GL Resources Tests</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas" width="2" height="2"> </canvas> >+<script> >+"use strict"; >+description("Tests to check user code cannot access uninitialized data from GL resources."); >+ >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("canvas"); >+if (!gl) >+ testFailed("Context created."); >+else >+ testPassed("Context created."); >+ >+function setupTexture(texWidth, texHeight) { >+ var texture = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, texture); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, texWidth, texHeight, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); >+ >+ // this can be quite undeterministic so to improve odds of seeing uninitialized data write bits >+ // into tex then delete texture then re-create one with same characteristics (driver will likely reuse mem) >+ // with this trick on r59046 WebKit/OSX I get FAIL 100% of the time instead of ~15% of the time. >+ >+ var badData = new Uint8Array(texWidth * texHeight * 4); >+ for (var i = 0; i < badData.length; ++i) >+ badData[i] = i % 255; >+ >+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, texWidth, texHeight, gl.RGBA, gl.UNSIGNED_BYTE, badData); >+ gl.finish(); // make sure it has been uploaded >+ >+ gl.deleteTexture(texture); >+ gl.finish(); // make sure it has been deleted >+ >+ var texture = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, texture); >+ return texture; >+} >+ >+function checkNonZeroPixels(texture, texWidth, texHeight, skipX, skipY, skipWidth, skipHeight, skipR, skipG, skipB, skipA) { >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ var fb = gl.createFramebuffer(); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0); >+ shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ >+ var data = new Uint8Array(texWidth * texHeight * 4); >+ gl.readPixels(0, 0, texWidth, texHeight, gl.RGBA, gl.UNSIGNED_BYTE, data); >+ >+ var k = 0; >+ for (var y = 0; y < texHeight; ++y) { >+ for (var x = 0; x < texWidth; ++x) { >+ var index = (y * texWidth + x) * 4; >+ if (x >= skipX && x < skipX + skipWidth && y >= skipY && y < skipY + skipHeight) { >+ if (data[index] != skipR || data[index + 1] != skipG || data[index + 2] != skipB || data[index + 3] != skipA) { >+ testFailed("non-zero pixel values are wrong"); >+ return; >+ } >+ } else { >+ for (var i = 0; i < 4; ++i) { >+ if (data[index + i] != 0) >+ k++; >+ } >+ } >+ } >+ } >+ if (k) { >+ testFailed("Found " + k + " non-zero bytes"); >+ } else { >+ testPassed("All data initialized"); >+ } >+} >+ >+var width = 512; >+var height = 512; >+ >+debug(""); >+debug("Reading an uninitialized texture (texImage2D) should succeed with all bytes set to 0."); >+ >+var tex = setupTexture(width, height); >+gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); >+checkNonZeroPixels(tex, width, height, 0, 0, 0, 0, 0, 0, 0, 0); >+gl.deleteTexture(tex); >+gl.finish(); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+debug(""); >+debug("Reading a partially initialized texture (texImage2D) should succeed with all uninitialized bytes set to 0 and initialized bytes untouched."); >+ >+var tex = setupTexture(width, height); >+gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); >+var data = new Uint8Array(4); >+var r = 108; >+var g = 72; >+var b = 36; >+var a = 9; >+data[0] = r; >+data[1] = g; >+data[2] = b; >+data[3] = a; >+gl.texSubImage2D(gl.TEXTURE_2D, 0, width/2, height/2, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, data); >+checkNonZeroPixels(tex, width, height, width/2, height/2, 1, 1, r, g, b, a); >+gl.deleteTexture(tex); >+gl.finish(); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+debug(""); >+debug("Reading an uninitialized portion of a texture (copyTexImage2D) should succeed with all bytes set to 0."); >+ >+var tex = setupTexture(width, height); >+var fbo = gl.createFramebuffer(); >+gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); >+var rbo = gl.createRenderbuffer(); >+gl.bindRenderbuffer(gl.RENDERBUFFER, rbo); >+var fboWidth = 16; >+var fboHeight = 16; >+gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, fboWidth, fboHeight); >+gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rbo); >+shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+gl.clearColor(1.0, 0.0, 0.0, 1.0); >+gl.clear(gl.COLOR_BUFFER_BIT); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0, 0, width, height, 0); >+checkNonZeroPixels(tex, width, height, 0, 0, fboWidth, fboHeight, 255, 0, 0, 255); >+gl.deleteTexture(tex); >+gl.finish(); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+debug(""); >+debug("Reading an uninitialized portion of a texture (copyTexImage2D with negative x and y) should succeed with all bytes set to 0."); >+ >+var tex = setupTexture(width, height); >+var fbo = gl.createFramebuffer(); >+gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); >+var rbo = gl.createRenderbuffer(); >+gl.bindRenderbuffer(gl.RENDERBUFFER, rbo); >+var fboWidth = 16; >+var fboHeight = 16; >+gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, fboWidth, fboHeight); >+gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, rbo); >+shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+gl.clearColor(1.0, 0.0, 0.0, 1.0); >+gl.clear(gl.COLOR_BUFFER_BIT); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+var x = -8; >+var y = -8; >+gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, x, y, width, height, 0); >+checkNonZeroPixels(tex, width, height, -x, -y, fboWidth, fboHeight, 255, 0, 0, 255); >+gl.deleteTexture(tex); >+gl.finish(); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+debug(""); >+debug("Reading an uninitialized portion of a texture (copyTexImage2D from WebGL internal fbo) should succeed with all bytes set to 0."); >+ >+var tex = setupTexture(width, height); >+gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+gl.clearColor(0.0, 1.0, 0.0, 0.0); >+gl.clear(gl.COLOR_BUFFER_BIT); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0, 0, width, height, 0); >+checkNonZeroPixels(tex, width, height, 0, 0, gl.canvas.width, gl.canvas.height, 0, 255, 0, 0); >+gl.deleteTexture(tex); >+gl.finish(); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+//TODO: uninitialized vertex array buffer >+//TODO: uninitialized vertex elements buffer >+//TODO: uninitialized framebuffer? (implementations would need to do a GL clear at first binding?) >+//TODO: uninitialized renderbuffer? (implementations would need to do a GL clear at first binding?) >+//TODO: uninitialized uniform arrays? >+ >+debug(""); >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/webgl-specific-stencil-settings.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/webgl-specific-stencil-settings.html >new file mode 100644 >index 00000000000..9777ce4942b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/webgl-specific-stencil-settings.html >@@ -0,0 +1,320 @@ >+<!-- >+ >+/* >+** Copyright (c) 2018 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL stencil mask/func front-state-back-state equality test</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+description("Tests that stencil mask/func are validated correctly when the front state and back state differ."); >+ >+var gl; >+ >+function checkDrawError(errIfMismatch) { >+ wtu.shouldGenerateGLError(gl, errIfMismatch, "wtu.dummySetProgramAndDrawNothing(gl)"); >+} >+ >+function setStencilMask(mask) { >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "gl.stencilMaskSeparate(gl.FRONT, " + mask[0] + ")"); >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "gl.stencilMaskSeparate(gl.BACK, " + mask[1] + ")"); >+} >+ >+function testStencilMaskCase(mask, error) { >+ setStencilMask(mask); >+ // If an error is generated, it should be at draw time. >+ checkDrawError(error); >+} >+ >+function testStencilMask(errIfMismatch) { >+ testStencilMaskCase([0, 256], gl.NO_ERROR); >+ testStencilMaskCase([1, 256], errIfMismatch); >+ testStencilMaskCase([1, 257], gl.NO_ERROR); >+ testStencilMaskCase([1, 258], errIfMismatch); >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "gl.stencilMask(1023)", "resetting stencilMask"); >+} >+ >+function setStencilFunc(ref, mask) { >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "gl.stencilFuncSeparate(gl.FRONT, gl.ALWAYS, " + ref[0] + ", " + mask[0] + ")"); >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "gl.stencilFuncSeparate(gl.BACK, gl.ALWAYS, " + ref[1] + ", " + mask[1] + ")"); >+} >+ >+function testStencilFuncCase(ref, mask, error) { >+ setStencilFunc(ref, mask); >+ // If an error is generated, it should be at draw time. >+ checkDrawError(error); >+} >+ >+function testStencilFunc(errIfMismatch) { >+ testStencilFuncCase([ 256, 257], [1023, 1023], gl.NO_ERROR); >+ testStencilFuncCase([ 256, 254], [1023, 1023], errIfMismatch); >+ >+ testStencilFuncCase([ -1, 0], [1023, 1023], gl.NO_ERROR); >+ testStencilFuncCase([ -1, 254], [1023, 1023], errIfMismatch); >+ >+ testStencilFuncCase([ 0, 0], [ 1, 257], gl.NO_ERROR); >+ testStencilFuncCase([ 0, 0], [ 1, 258], errIfMismatch); >+ >+ testStencilFuncCase([ 1, 1], [1024, 2048], gl.NO_ERROR); >+ testStencilFuncCase([ 1, 1], [2048, 1024], gl.NO_ERROR); >+ >+ testStencilFuncCase([ -1, -1], [1023, 1023], gl.NO_ERROR); >+ testStencilFuncCase([ -1, 0], [1023, 1023], gl.NO_ERROR); >+ testStencilFuncCase([ 0, -1], [1023, 1023], gl.NO_ERROR); >+ testStencilFuncCase([ 0, 0], [1023, 1023], gl.NO_ERROR); >+ >+ testStencilFuncCase([ -1, 255], [1023, 1023], errIfMismatch); >+ testStencilFuncCase([ 0, 256], [1023, 1023], errIfMismatch); >+ testStencilFuncCase([ 0, 1024], [1023, 1023], errIfMismatch); >+ testStencilFuncCase([ 1, 257], [1023, 1023], errIfMismatch); >+ testStencilFuncCase([ 255, -1], [1023, 1023], errIfMismatch); >+ testStencilFuncCase([ 256, 0], [1023, 1023], errIfMismatch); >+ testStencilFuncCase([1024, 0], [1023, 1023], errIfMismatch); >+ testStencilFuncCase([ 257, 1], [1023, 1023], errIfMismatch); >+ >+ wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "gl.stencilFunc(gl.ALWAYS, 0, 1023)", "resetting stencilFunc"); >+} >+ >+// >+// Tests of the default framebuffer >+// >+ >+debug(""); >+ >+debug("Testing default framebuffer with { stencil: true }"); >+gl = wtu.create3DContext(undefined, { stencil: true }); >+{ >+ gl.enable(gl.STENCIL_TEST); >+ testStencilMaskCase([1, 256], gl.INVALID_OPERATION); >+ testStencilFuncCase([256, 0], [1023, 1023], gl.INVALID_OPERATION); >+} >+ >+debug("Testing default framebuffer with { stencil: false }"); >+gl = wtu.create3DContext(undefined, { stencil: false }); >+{ >+ // with { stencil: false } >+ gl.enable(gl.STENCIL_TEST); >+ testStencilMaskCase([1, 256], gl.NO_ERROR); >+ testStencilFuncCase([256, 0], [1023, 1023], gl.NO_ERROR); >+} >+// (continue using this GL context for the other tests) >+ >+// >+// Tests with a framebuffer object >+// >+ >+const fb = gl.createFramebuffer(); >+gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+const colorRB = gl.createRenderbuffer(); >+gl.bindRenderbuffer(gl.RENDERBUFFER, colorRB); >+gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 1, 1); >+gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, colorRB); >+ >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "initial framebuffer setup") >+ >+function runWithStencilSettings(haveDepthBuffer, haveStencilBuffer, enableStencilTest, fn) { >+ let rbo = null; >+ let attachment; >+ if (haveDepthBuffer || haveStencilBuffer) { >+ rbo = gl.createRenderbuffer(); >+ gl.bindRenderbuffer(gl.RENDERBUFFER, rbo); >+ >+ let internalformat; >+ if (haveDepthBuffer && haveStencilBuffer) { >+ internalformat = gl.DEPTH_STENCIL; >+ attachment = gl.DEPTH_STENCIL_ATTACHMENT; >+ } else if (haveDepthBuffer) { >+ internalformat = gl.DEPTH_COMPONENT16; >+ attachment = gl.DEPTH_ATTACHMENT; >+ } else if (haveStencilBuffer) { >+ internalformat = gl.STENCIL_INDEX8; >+ attachment = gl.STENCIL_ATTACHMENT; >+ } >+ gl.renderbufferStorage(gl.RENDERBUFFER, internalformat, 1, 1); >+ gl.framebufferRenderbuffer(gl.FRAMEBUFFER, attachment, gl.RENDERBUFFER, rbo); >+ } >+ shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "depth/stencil renderbuffer setup") >+ >+ if (enableStencilTest) { >+ gl.enable(gl.STENCIL_TEST); >+ } else { >+ gl.disable(gl.STENCIL_TEST); >+ } >+ >+ fn(); >+ >+ if (rbo) { >+ gl.framebufferRenderbuffer(gl.FRAMEBUFFER, attachment, gl.RENDERBUFFER, null); >+ gl.bindRenderbuffer(gl.RENDERBUFFER, null); >+ gl.deleteRenderbuffer(rbo); >+ } >+ >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR, "depth/stencil renderbuffer cleanup") >+} >+ >+function testStencilSettings(haveDepthBuffer, haveStencilBuffer, enableStencilTest, errIfMismatch) { >+ debug(""); >+ debug("With depthbuffer=" + haveDepthBuffer + >+ ", stencilbuffer=" + haveStencilBuffer + >+ ", stencilTest=" + enableStencilTest + >+ ", expecting error=" + wtu.glEnumToString(gl, errIfMismatch) + >+ " for mismatching mask or func settings."); >+ >+ runWithStencilSettings(haveDepthBuffer, haveStencilBuffer, enableStencilTest, () => { >+ // Errors should be the same for both mask and func, because stencil test >+ // and stencil write are always enabled/disabled in tandem. >+ testStencilMask(errIfMismatch); >+ testStencilFunc(errIfMismatch); >+ }); >+} >+ >+debug(""); >+debug("Base case checks:"); >+testStencilMaskCase([0, 0], gl.NO_ERROR); >+testStencilFuncCase([0, 0], [1023, 1023], gl.NO_ERROR); >+ >+// haveDepthBuffer >+// | haveStencilBuffer >+// | | enableStencilTest >+// | | | errIfMismatch >+testStencilSettings(false, false, false, gl.NO_ERROR); >+testStencilSettings( true, false, false, gl.NO_ERROR); >+testStencilSettings(false, true, false, gl.NO_ERROR); >+testStencilSettings( true, true, false, gl.NO_ERROR); >+ >+testStencilSettings(false, false, true, gl.NO_ERROR); >+testStencilSettings( true, false, true, gl.NO_ERROR); >+testStencilSettings(false, true, true, gl.INVALID_OPERATION); >+testStencilSettings( true, true, true, gl.INVALID_OPERATION); >+ >+// >+// Tests to make sure the stencil validation check, if cached, is invalidated correctly. >+// >+ >+debug(""); >+ >+debug("Setup for stencil validation cache invalidation tests"); >+setStencilMask([1, 258]); >+setStencilFunc([0, 256], [1023, 1023]); >+ >+debug("Test with enabling/disabling stencil test"); >+runWithStencilSettings(false, true, false, () => { >+ checkDrawError(gl.NO_ERROR); >+ gl.enable(gl.STENCIL_TEST); >+ checkDrawError(gl.INVALID_OPERATION); >+ gl.disable(gl.STENCIL_TEST); >+ checkDrawError(gl.NO_ERROR); >+}); >+ >+debug("Test with swapping in a new FBO"); >+runWithStencilSettings(false, false, true, () => { >+ // no error with no stencil buffer >+ checkDrawError(gl.NO_ERROR); >+ >+ // swap in a new FBO with a stencil buffer >+ const fb2 = gl.createFramebuffer(); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb2); >+ gl.bindRenderbuffer(gl.RENDERBUFFER, colorRB); >+ gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, colorRB); >+ const rbo = gl.createRenderbuffer(); >+ gl.bindRenderbuffer(gl.RENDERBUFFER, rbo); >+ gl.renderbufferStorage(gl.RENDERBUFFER, gl.STENCIL_INDEX8, 1, 1); >+ gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.RENDERBUFFER, rbo); >+ shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ // this draw sholud detect the new fbo state >+ checkDrawError(gl.INVALID_OPERATION); >+ >+ gl.deleteFramebuffer(fb2); >+ gl.deleteRenderbuffer(rbo) >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fb); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+}); >+ >+debug("Test with adding a stencil attachment"); >+runWithStencilSettings(false, false, true, () => { >+ // no error with no stencil buffer >+ checkDrawError(gl.NO_ERROR); >+ >+ // add a stencil attachment >+ const rbo = gl.createRenderbuffer(); >+ gl.bindRenderbuffer(gl.RENDERBUFFER, rbo); >+ gl.renderbufferStorage(gl.RENDERBUFFER, gl.STENCIL_INDEX8, 1, 1); >+ gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.RENDERBUFFER, rbo); >+ shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ // this draw sholud detect the new fbo state >+ checkDrawError(gl.INVALID_OPERATION); >+ >+ gl.deleteRenderbuffer(rbo) >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+}); >+ >+debug("Test with reallocating the DEPTH_STENCIL attachment from depth to depth+stencil"); >+runWithStencilSettings(false, false, true, () => { >+ // attach a depth buffer to the DEPTH_STENCIL attachment >+ const rbo = gl.createRenderbuffer(); >+ gl.bindRenderbuffer(gl.RENDERBUFFER, rbo); >+ gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, 1, 1); >+ gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.RENDERBUFFER, rbo); >+ shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT"); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ >+ // this draw is invalid, but it still might trigger caching of the stencil validation >+ checkDrawError(gl.INVALID_FRAMEBUFFER_OPERATION); >+ >+ gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_STENCIL, 1, 1); >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+ // this draw sholud detect the new fbo state >+ checkDrawError(gl.INVALID_OPERATION); >+ >+ gl.deleteRenderbuffer(rbo) >+ wtu.glErrorShouldBe(gl, gl.NO_ERROR); >+}); >+ >+gl.deleteFramebuffer(fb); >+gl.deleteRenderbuffer(colorRB); >+ >+var successfullyParsed = true; >+</script> >+ >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/webgl-specific.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/webgl-specific.html >new file mode 100644 >index 00000000000..8f62ebe0eae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/misc/webgl-specific.html >@@ -0,0 +1,112 @@ >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLES2 difference test.</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+ >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+description("Tests the few differences between WebGL and GLES2"); >+ >+var gl = wtu.create3DContext(); >+var program = wtu.loadStandardProgram(gl); >+gl.useProgram(program); >+var vertexObject = gl.createBuffer(); >+gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); >+gl.enableVertexAttribArray(0); >+gl.vertexAttribPointer(0, 4, gl.FLOAT, false, 0, 0); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Setup should succeed"); >+ >+debug(""); >+debug("Verify that constant color and constant alpha cannot be used together as source and destination factors in the blend function"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFunc(gl.CONSTANT_COLOR, gl.CONSTANT_ALPHA)"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFunc(gl.ONE_MINUS_CONSTANT_COLOR, gl.CONSTANT_ALPHA)"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFunc(gl.CONSTANT_COLOR, gl.ONE_MINUS_CONSTANT_ALPHA)"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFunc(gl.ONE_MINUS_CONSTANT_COLOR, gl.ONE_MINUS_CONSTANT_ALPHA)"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFunc(gl.CONSTANT_ALPHA, gl.CONSTANT_COLOR)"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFunc(gl.CONSTANT_ALPHA, gl.ONE_MINUS_CONSTANT_COLOR)"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFunc(gl.ONE_MINUS_CONSTANT_ALPHA, gl.CONSTANT_COLOR)"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFunc(gl.ONE_MINUS_CONSTANT_ALPHA, gl.ONE_MINUS_CONSTANT_COLOR)"); >+ >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFuncSeparate(gl.CONSTANT_COLOR, gl.CONSTANT_ALPHA, gl.ONE, gl.ZERO)"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFuncSeparate(gl.ONE_MINUS_CONSTANT_COLOR, gl.CONSTANT_ALPHA, gl.ONE, gl.ZERO)"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFuncSeparate(gl.CONSTANT_COLOR, gl.ONE_MINUS_CONSTANT_ALPHA, gl.ONE, gl.ZERO)"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFuncSeparate(gl.ONE_MINUS_CONSTANT_COLOR, gl.ONE_MINUS_CONSTANT_ALPHA, gl.ONE, gl.ZERO)"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFuncSeparate(gl.CONSTANT_ALPHA, gl.CONSTANT_COLOR, gl.ONE, gl.ZERO)"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFuncSeparate(gl.CONSTANT_ALPHA, gl.ONE_MINUS_CONSTANT_COLOR, gl.ONE, gl.ZERO)"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFuncSeparate(gl.ONE_MINUS_CONSTANT_ALPHA, gl.CONSTANT_COLOR, gl.ONE, gl.ZERO)"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFuncSeparate(gl.ONE_MINUS_CONSTANT_ALPHA, gl.ONE_MINUS_CONSTANT_COLOR, gl.ONE, gl.ZERO)"); >+ >+debug(""); >+debug("Verify that in depthRange zNear <= zFar"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.depthRange(20, 10)"); >+ >+debug(""); >+debug("Verify that *LENGTH are undefined"); >+shouldBeUndefined(gl.INFO_LOG_LENGTH); >+shouldBeUndefined(gl.SHADER_SOURCE_LENGTH); >+shouldBeUndefined(gl.ACTIVE_UNIFORM_MAX_LENGTH); >+shouldBeUndefined(gl.ACTIVE_ATTRIB_MAX_LENGTH); >+shouldBeUndefined(gl.ACTIVE_ATTRIBUTE_MAX_LENGTH); >+ >+debug(""); >+debug("Verify that UNPACK_COLORSPACE_CONVERSION_WEBGL is supported"); >+shouldBe("gl.getParameter(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL)", "gl.BROWSER_DEFAULT_WEBGL"); >+gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, gl.NONE); >+shouldBe("gl.getParameter(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL)", "gl.NONE"); >+wtu.glErrorShouldBe(gl, gl.NO_ERROR, "set/get UNPACK_COLORSPACE_CONVERSION_WEBGL should generate no error"); >+ >+debug(""); >+debug("Verify that drawingBufferWidth and drawingBufferHeights are implemented"); >+shouldBeTrue("gl.drawingBufferWidth >= 0 && gl.drawingBufferHeight >= 0"); >+ >+debug(""); >+debug("Verify that bindAttribLocation rejects names start with webgl_ or _webgl_"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.bindAttribLocation(program, 0, 'webgl_a')"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.bindAttribLocation(program, 0, '_webgl_a')"); >+ >+debug(""); >+debug("Verify that NaN line width is not accepted"); >+wtu.shouldGenerateGLError(gl, gl.INVALID_VALUE, "gl.lineWidth(NaN)"); >+ >+var successfullyParsed = true; >+</script> >+ >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/00_test_list.txt >new file mode 100644 >index 00000000000..aeee7cd1889 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/00_test_list.txt >@@ -0,0 +1,57 @@ >+conformance/constants.html >+conformance/getContext.html >+conformance/methods.html >+conformance/quickCheckAPI-A.html >+conformance/quickCheckAPI-B1.html >+conformance/quickCheckAPI-B2.html >+conformance/quickCheckAPI-B3.html >+conformance/quickCheckAPI-B4.html >+conformance/quickCheckAPI-C.html >+conformance/quickCheckAPI-D_G.html >+conformance/quickCheckAPI-G_I.html >+conformance/quickCheckAPI-L_S.html >+conformance/quickCheckAPI-S_V.html >+conformance/webGLArrays.html >+functions/bindBuffer.html >+functions/bindBufferBadArgs.html >+functions/bindFramebufferLeaveNonZero.html >+functions/bufferData.html >+functions/bufferDataBadArgs.html >+functions/bufferSubData.html >+functions/bufferSubDataBadArgs.html >+functions/copyTexImage2D.html >+functions/copyTexImage2DBadArgs.html >+functions/copyTexSubImage2D.html >+functions/copyTexSubImage2DBadArgs.html >+functions/deleteBufferBadArgs.html >+functions/drawArrays.html >+functions/drawArraysOutOfBounds.html >+functions/drawElements.html >+functions/isTests.html >+--min-version 1.0.2 functions/isTestsBadArgs.html >+functions/readPixels.html >+functions/readPixelsBadArgs.html >+functions/texImage2D.html >+functions/texImage2DBadArgs.html >+functions/texImage2DHTML.html >+functions/texImage2DHTMLBadArgs.html >+functions/texSubImage2D.html >+functions/texSubImage2DBadArgs.html >+functions/texSubImage2DHTML.html >+functions/texSubImage2DHTMLBadArgs.html >+functions/uniformf.html >+functions/uniformfBadArgs.html >+functions/uniformfArrayLen1.html >+functions/uniformi.html >+functions/uniformiBadArgs.html >+functions/uniformMatrix.html >+functions/uniformMatrixBadArgs.html >+functions/vertexAttrib.html >+functions/vertexAttribBadArgs.html >+functions/vertexAttribPointer.html >+functions/vertexAttribPointerBadArgs.html >+glsl/arrayOutOfBounds.html >+#glsl/longLoops.html // No interactive tests. >+glsl/uniformOutOfBounds.html >+#glsl/unusedAttribsUniforms.html // No interactive tests. >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/README.md b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/README.md >new file mode 100644 >index 00000000000..01937147f69 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/README.md >@@ -0,0 +1,53 @@ >+Tests for the WebGL canvas context >+================================== >+ >+These tests are intended to serve the following purposes: >+ >+ * Assert spec conformance >+ * Check the safety of the GL binding (bounds checking, same origin policy) >+ * Provide performance numbers for developers >+ >+ >+Running the tests >+----------------- >+ >+ 1. <a href="http://learningwebgl.com/blog/?p=11">Install a browser with WebGL support</a> >+ 2. Run <code>ruby gen_tests.rb</code> if you have modified the tests. >+ 3. Run <code>ruby test_server.rb</code> if you want to get test run output to test_server's stdout (especially useful for finding out which test crashed your browser.) >+ 4. Open all_tests.html in your browser. >+ >+ >+Want to contribute? >+------------------- >+ >+ 1. Fork this repo >+ 2. Run <code>gen_tests.rb</code> >+ 3. Look into templates/ to see which functions lack tests (also see <a href="../raw/master/methods.txt">methods.txt</a> and <a href="http://mxr.mozilla.org/mozilla-central/source/dom/interfaces/canvas/nsICanvasRenderingContextWebGL.idl">nsICanvasRenderingContextWebGL.idl</a>): >+ 1. copy methodName.html to functions/methodName.html and write tests that test the results of valid inputs. >+ 2. copy methodNameBadArgs.html to functions/methodNameBadArgs.html and write tests to assert that invalid inputs throw exceptions. >+ 3. If your test causes a segfault, add the following to the top of the script tag: <code>Tests.autorun = false; Tests.message = "Caution: this may crash your browser";</code> >+ 4. For each performance test: >+ 1. Write a performance/myTestName.html and set <code>Tests.autorun = false;</code> >+ 5. If you have a test that you would like to run over the whole API or want to generate tests programmatically, add them to gen_tests.rb or write your own script. >+ 6. Create a commit for each file. (E.g. <code>for f in $(git status | grep -e "^#\\s*functions/\\S*$" | sed "s/^#\s*//"); do git add $f; git commit -m $f; done</code>) >+ 7. Send me a pull request. >+ 8. Congratulations, you're now a contributor! >+ >+ >+For more information on WebGL: >+ >+ * <a href="http://planet-webgl.org">Planet WebGL</a> >+ * <a href="http://learningwebgl.com">Learning WebGL</a> >+ * <a href="http://www.khronos.org/message_boards/viewforum.php?f=34">WebGL on Khronos Message Boards</a> >+ >+Developer links: >+ >+ * <a href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=webgl">WebGL on Mozilla Bugzilla</a> >+ * <a href="https://bugzilla.webkit.org/buglist.cgi?quicksearch=webgl">WebGL on WebKit Bugzilla</a> >+ * <a href="http://code.google.com/p/chromium/issues/list?q=label:3D-WebGL">WebGL on Chromium Bugzilla</a> >+ >+What's the stuff in apigen? >+ >+ There are some Python scripts in the apigen/ directory that generate C++ based on the API definition files (gl2.h, api_modifications.txt, valid_args.txt.) The generated code is Mozilla XPCOM functions that check their args against the valid GLES 2.0 constants (as they were written on the man pages.) There's also some wackier stuff for checking copyTexImage2D and copyTexSubImage2D image dimensions against viewport dimensions. >+ >+ If you can use it to generate code for your WebGL implementation, it might save you 1500 lines of typing and testing. The last time I used it was summer 2009 to generate a patch for Canvas 3D, so it's likely somewhat out of date. >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/all_tests.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/all_tests.html >new file mode 100644 >index 00000000000..5bc669f3083 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/all_tests.html >@@ -0,0 +1,399 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ <title>OpenGL ES 2.0 <canvas> context tests</title> >+ <style type="text/css"> >+ h2 { display: inline; font-size: 1em; margin-bottom: 0.2em; } >+ iframe { display: inline; border: 1px solid black; overflow: hidden;} >+ </style> >+ <script type="application/javascript"> >+ function loadTest(id, url) { >+ document.getElementById(id).src = url; >+ } >+ function seqLoader() { >+ var iframes = document.getElementsByTagName('iframe'); >+ for (var i=0; i<iframes.length; i++) { >+ iframes[i].addEventListener('load', (function(j) { >+ return function() { >+ var e = document.getElementById((j+1)+'_link'); >+ if (e) loadTest(j+1, e.href); >+ } >+ })(i), false); >+ } >+ var e = document.getElementById('0_link'); >+ if (e) loadTest(0, e.href); >+ } >+ </script> >+</head> >+<body onload="seqLoader()"> >+ >+ <div> >+ <iframe src="conformance/badArgsArityLessThanArgc.html" width="110" height="42"></iframe> >+ <h2><a href="conformance/badArgsArityLessThanArgc.html">conformance/badArgsArityLessThanArgc.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="conformance/constants.html" width="110" height="42"></iframe> >+ <h2><a href="conformance/constants.html">conformance/constants.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="conformance/fuzzTheAPI.html" width="110" height="42"></iframe> >+ <h2><a href="conformance/fuzzTheAPI.html">conformance/fuzzTheAPI.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="conformance/getContext.html" width="110" height="42"></iframe> >+ <h2><a href="conformance/getContext.html">conformance/getContext.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="conformance/methods.html" width="110" height="42"></iframe> >+ <h2><a href="conformance/methods.html">conformance/methods.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="conformance/quickCheckAPI.html" width="110" height="42"></iframe> >+ <h2><a href="conformance/quickCheckAPI.html">conformance/quickCheckAPI.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="conformance/quickCheckAPIBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="conformance/quickCheckAPIBadArgs.html">conformance/quickCheckAPIBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="conformance/webGLArrays.html" width="110" height="42"></iframe> >+ <h2><a href="conformance/webGLArrays.html">conformance/webGLArrays.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/bindBuffer.html" width="110" height="42"></iframe> >+ <h2><a href="functions/bindBuffer.html">functions/bindBuffer.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/bindBufferBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/bindBufferBadArgs.html">functions/bindBufferBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/bindFramebufferLeaveNonZero.html" width="110" height="42"></iframe> >+ <h2><a href="functions/bindFramebufferLeaveNonZero.html">functions/bindFramebufferLeaveNonZero.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/bufferData.html" width="110" height="42"></iframe> >+ <h2><a href="functions/bufferData.html">functions/bufferData.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/bufferDataBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/bufferDataBadArgs.html">functions/bufferDataBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/bufferSubData.html" width="110" height="42"></iframe> >+ <h2><a href="functions/bufferSubData.html">functions/bufferSubData.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/bufferSubDataBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/bufferSubDataBadArgs.html">functions/bufferSubDataBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/copyTexImage2D.html" width="110" height="42"></iframe> >+ <h2><a href="functions/copyTexImage2D.html">functions/copyTexImage2D.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/copyTexImage2DBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/copyTexImage2DBadArgs.html">functions/copyTexImage2DBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/copyTexSubImage2D.html" width="110" height="42"></iframe> >+ <h2><a href="functions/copyTexSubImage2D.html">functions/copyTexSubImage2D.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/copyTexSubImage2DBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/copyTexSubImage2DBadArgs.html">functions/copyTexSubImage2DBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/deleteBufferBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/deleteBufferBadArgs.html">functions/deleteBufferBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/drawArrays.html" width="110" height="42"></iframe> >+ <h2><a href="functions/drawArrays.html">functions/drawArrays.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/drawArraysOutOfBounds.html" width="110" height="42"></iframe> >+ <h2><a href="functions/drawArraysOutOfBounds.html">functions/drawArraysOutOfBounds.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/drawElements.html" width="110" height="42"></iframe> >+ <h2><a href="functions/drawElements.html">functions/drawElements.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/drawElementsBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/drawElementsBadArgs.html">functions/drawElementsBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/getImageData.html" width="110" height="42"></iframe> >+ <h2><a href="functions/getImageData.html">functions/getImageData.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/getImageDataBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/getImageDataBadArgs.html">functions/getImageDataBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/isTests.html" width="110" height="42"></iframe> >+ <h2><a href="functions/isTests.html">functions/isTests.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/linkProgramBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/linkProgramBadArgs.html">functions/linkProgramBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/readPixels.html" width="110" height="42"></iframe> >+ <h2><a href="functions/readPixels.html">functions/readPixels.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/readPixelsBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/readPixelsBadArgs.html">functions/readPixelsBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/texImage2D.html" width="110" height="42"></iframe> >+ <h2><a href="functions/texImage2D.html">functions/texImage2D.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/texImage2DBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/texImage2DBadArgs.html">functions/texImage2DBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/texImage2DHTML.html" width="110" height="42"></iframe> >+ <h2><a href="functions/texImage2DHTML.html">functions/texImage2DHTML.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/texImage2DHTMLBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/texImage2DHTMLBadArgs.html">functions/texImage2DHTMLBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/texSubImage2D.html" width="110" height="42"></iframe> >+ <h2><a href="functions/texSubImage2D.html">functions/texSubImage2D.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/texSubImage2DBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/texSubImage2DBadArgs.html">functions/texSubImage2DBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/texSubImage2DHTML.html" width="110" height="42"></iframe> >+ <h2><a href="functions/texSubImage2DHTML.html">functions/texSubImage2DHTML.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/texSubImage2DHTMLBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/texSubImage2DHTMLBadArgs.html">functions/texSubImage2DHTMLBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/uniformMatrix.html" width="110" height="42"></iframe> >+ <h2><a href="functions/uniformMatrix.html">functions/uniformMatrix.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/uniformMatrixBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/uniformMatrixBadArgs.html">functions/uniformMatrixBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/uniformf.html" width="110" height="42"></iframe> >+ <h2><a href="functions/uniformf.html">functions/uniformf.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/uniformfBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/uniformfBadArgs.html">functions/uniformfBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/uniformi.html" width="110" height="42"></iframe> >+ <h2><a href="functions/uniformi.html">functions/uniformi.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/uniformiBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/uniformiBadArgs.html">functions/uniformiBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/vertexAttrib.html" width="110" height="42"></iframe> >+ <h2><a href="functions/vertexAttrib.html">functions/vertexAttrib.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/vertexAttribBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/vertexAttribBadArgs.html">functions/vertexAttribBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/vertexAttribPointer.html" width="110" height="42"></iframe> >+ <h2><a href="functions/vertexAttribPointer.html">functions/vertexAttribPointer.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="functions/vertexAttribPointerBadArgs.html" width="110" height="42"></iframe> >+ <h2><a href="functions/vertexAttribPointerBadArgs.html">functions/vertexAttribPointerBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="performance/CPUvsGPU.html" width="110" height="42"></iframe> >+ <h2><a href="performance/CPUvsGPU.html">performance/CPUvsGPU.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="performance/bandwidth.html" width="110" height="42"></iframe> >+ <h2><a href="performance/bandwidth.html">performance/bandwidth.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="performance/jsGCPause.html" width="110" height="42"></iframe> >+ <h2><a href="performance/jsGCPause.html">performance/jsGCPause.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="performance/jsMatrixMult.html" width="110" height="42"></iframe> >+ <h2><a href="performance/jsMatrixMult.html">performance/jsMatrixMult.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="performance/jsToGLOverhead.html" width="110" height="42"></iframe> >+ <h2><a href="performance/jsToGLOverhead.html">performance/jsToGLOverhead.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="glsl/arrayOutOfBounds.html" width="110" height="42"></iframe> >+ <h2><a href="glsl/arrayOutOfBounds.html">glsl/arrayOutOfBounds.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="glsl/longLoops.html" width="110" height="42"></iframe> >+ <h2><a href="glsl/longLoops.html">glsl/longLoops.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="glsl/uniformOutOfBounds.html" width="110" height="42"></iframe> >+ <h2><a href="glsl/uniformOutOfBounds.html">glsl/uniformOutOfBounds.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe src="glsl/unusedAttribsUniforms.html" width="110" height="42"></iframe> >+ <h2><a href="glsl/unusedAttribsUniforms.html">glsl/unusedAttribsUniforms.html</a></h2> >+ </div> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/all_tests_linkonly.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/all_tests_linkonly.html >new file mode 100644 >index 00000000000..ee4b1af9f53 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/all_tests_linkonly.html >@@ -0,0 +1,399 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ <title>OpenGL ES 2.0 <canvas> context tests</title> >+ <style type="text/css"> >+ h2 { display: inline; font-size: 1em; margin-bottom: 0.2em; } >+ iframe { display: inline; border: 1px solid black; overflow: hidden;} >+ </style> >+ <script type="application/javascript"> >+ function loadTest(id, url) { >+ document.getElementById(id).src = url; >+ } >+ function seqLoader() { >+ var iframes = document.getElementsByTagName('iframe'); >+ for (var i=0; i<iframes.length; i++) { >+ iframes[i].addEventListener('load', (function(j) { >+ return function() { >+ var e = document.getElementById((j+1)+'_link'); >+ if (e) loadTest(j+1, e.href); >+ } >+ })(i), false); >+ } >+ var e = document.getElementById('0_link'); >+ if (e) loadTest(0, e.href); >+ } >+ </script> >+</head> >+<body onload="seqLoader()"> >+ >+ <div> >+ <iframe id="0" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(0, 'conformance/badArgsArityLessThanArgc.html');return false" href="conformance/badArgsArityLessThanArgc.html">conformance/badArgsArityLessThanArgc.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="1" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(1, 'conformance/constants.html');return false" href="conformance/constants.html">conformance/constants.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="2" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(2, 'conformance/fuzzTheAPI.html');return false" href="conformance/fuzzTheAPI.html">conformance/fuzzTheAPI.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="3" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(3, 'conformance/getContext.html');return false" href="conformance/getContext.html">conformance/getContext.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="4" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(4, 'conformance/methods.html');return false" href="conformance/methods.html">conformance/methods.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="5" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(5, 'conformance/quickCheckAPI.html');return false" href="conformance/quickCheckAPI.html">conformance/quickCheckAPI.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="6" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(6, 'conformance/quickCheckAPIBadArgs.html');return false" href="conformance/quickCheckAPIBadArgs.html">conformance/quickCheckAPIBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="7" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(7, 'conformance/webGLArrays.html');return false" href="conformance/webGLArrays.html">conformance/webGLArrays.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="8" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(8, 'functions/bindBuffer.html');return false" href="functions/bindBuffer.html">functions/bindBuffer.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="9" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(9, 'functions/bindBufferBadArgs.html');return false" href="functions/bindBufferBadArgs.html">functions/bindBufferBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="10" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(10, 'functions/bindFramebufferLeaveNonZero.html');return false" href="functions/bindFramebufferLeaveNonZero.html">functions/bindFramebufferLeaveNonZero.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="11" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(11, 'functions/bufferData.html');return false" href="functions/bufferData.html">functions/bufferData.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="12" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(12, 'functions/bufferDataBadArgs.html');return false" href="functions/bufferDataBadArgs.html">functions/bufferDataBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="13" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(13, 'functions/bufferSubData.html');return false" href="functions/bufferSubData.html">functions/bufferSubData.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="14" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(14, 'functions/bufferSubDataBadArgs.html');return false" href="functions/bufferSubDataBadArgs.html">functions/bufferSubDataBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="15" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(15, 'functions/copyTexImage2D.html');return false" href="functions/copyTexImage2D.html">functions/copyTexImage2D.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="16" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(16, 'functions/copyTexImage2DBadArgs.html');return false" href="functions/copyTexImage2DBadArgs.html">functions/copyTexImage2DBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="17" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(17, 'functions/copyTexSubImage2D.html');return false" href="functions/copyTexSubImage2D.html">functions/copyTexSubImage2D.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="18" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(18, 'functions/copyTexSubImage2DBadArgs.html');return false" href="functions/copyTexSubImage2DBadArgs.html">functions/copyTexSubImage2DBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="19" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(19, 'functions/deleteBufferBadArgs.html');return false" href="functions/deleteBufferBadArgs.html">functions/deleteBufferBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="20" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(20, 'functions/drawArrays.html');return false" href="functions/drawArrays.html">functions/drawArrays.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="21" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(21, 'functions/drawArraysOutOfBounds.html');return false" href="functions/drawArraysOutOfBounds.html">functions/drawArraysOutOfBounds.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="22" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(22, 'functions/drawElements.html');return false" href="functions/drawElements.html">functions/drawElements.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="23" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(23, 'functions/drawElementsBadArgs.html');return false" href="functions/drawElementsBadArgs.html">functions/drawElementsBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="24" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(24, 'functions/getImageData.html');return false" href="functions/getImageData.html">functions/getImageData.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="25" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(25, 'functions/getImageDataBadArgs.html');return false" href="functions/getImageDataBadArgs.html">functions/getImageDataBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="26" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(26, 'functions/isTests.html');return false" href="functions/isTests.html">functions/isTests.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="27" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(27, 'functions/linkProgramBadArgs.html');return false" href="functions/linkProgramBadArgs.html">functions/linkProgramBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="28" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(28, 'functions/readPixels.html');return false" href="functions/readPixels.html">functions/readPixels.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="29" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(29, 'functions/readPixelsBadArgs.html');return false" href="functions/readPixelsBadArgs.html">functions/readPixelsBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="30" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(30, 'functions/texImage2D.html');return false" href="functions/texImage2D.html">functions/texImage2D.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="31" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(31, 'functions/texImage2DBadArgs.html');return false" href="functions/texImage2DBadArgs.html">functions/texImage2DBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="32" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(32, 'functions/texImage2DHTML.html');return false" href="functions/texImage2DHTML.html">functions/texImage2DHTML.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="33" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(33, 'functions/texImage2DHTMLBadArgs.html');return false" href="functions/texImage2DHTMLBadArgs.html">functions/texImage2DHTMLBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="34" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(34, 'functions/texSubImage2D.html');return false" href="functions/texSubImage2D.html">functions/texSubImage2D.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="35" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(35, 'functions/texSubImage2DBadArgs.html');return false" href="functions/texSubImage2DBadArgs.html">functions/texSubImage2DBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="36" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(36, 'functions/texSubImage2DHTML.html');return false" href="functions/texSubImage2DHTML.html">functions/texSubImage2DHTML.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="37" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(37, 'functions/texSubImage2DHTMLBadArgs.html');return false" href="functions/texSubImage2DHTMLBadArgs.html">functions/texSubImage2DHTMLBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="38" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(38, 'functions/uniformMatrix.html');return false" href="functions/uniformMatrix.html">functions/uniformMatrix.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="39" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(39, 'functions/uniformMatrixBadArgs.html');return false" href="functions/uniformMatrixBadArgs.html">functions/uniformMatrixBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="40" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(40, 'functions/uniformf.html');return false" href="functions/uniformf.html">functions/uniformf.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="41" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(41, 'functions/uniformfBadArgs.html');return false" href="functions/uniformfBadArgs.html">functions/uniformfBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="42" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(42, 'functions/uniformi.html');return false" href="functions/uniformi.html">functions/uniformi.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="43" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(43, 'functions/uniformiBadArgs.html');return false" href="functions/uniformiBadArgs.html">functions/uniformiBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="44" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(44, 'functions/vertexAttrib.html');return false" href="functions/vertexAttrib.html">functions/vertexAttrib.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="45" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(45, 'functions/vertexAttribBadArgs.html');return false" href="functions/vertexAttribBadArgs.html">functions/vertexAttribBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="46" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(46, 'functions/vertexAttribPointer.html');return false" href="functions/vertexAttribPointer.html">functions/vertexAttribPointer.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="47" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(47, 'functions/vertexAttribPointerBadArgs.html');return false" href="functions/vertexAttribPointerBadArgs.html">functions/vertexAttribPointerBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="48" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(48, 'performance/CPUvsGPU.html');return false" href="performance/CPUvsGPU.html">performance/CPUvsGPU.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="49" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(49, 'performance/bandwidth.html');return false" href="performance/bandwidth.html">performance/bandwidth.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="50" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(50, 'performance/jsGCPause.html');return false" href="performance/jsGCPause.html">performance/jsGCPause.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="51" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(51, 'performance/jsMatrixMult.html');return false" href="performance/jsMatrixMult.html">performance/jsMatrixMult.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="52" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(52, 'performance/jsToGLOverhead.html');return false" href="performance/jsToGLOverhead.html">performance/jsToGLOverhead.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="53" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(53, 'glsl/arrayOutOfBounds.html');return false" href="glsl/arrayOutOfBounds.html">glsl/arrayOutOfBounds.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="54" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(54, 'glsl/longLoops.html');return false" href="glsl/longLoops.html">glsl/longLoops.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="55" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(55, 'glsl/uniformOutOfBounds.html');return false" href="glsl/uniformOutOfBounds.html">glsl/uniformOutOfBounds.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="56" width="110" height="42"></iframe> >+ <h2><a onclick="loadTest(56, 'glsl/unusedAttribsUniforms.html');return false" href="glsl/unusedAttribsUniforms.html">glsl/unusedAttribsUniforms.html</a></h2> >+ </div> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/all_tests_sequential.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/all_tests_sequential.html >new file mode 100644 >index 00000000000..0da1a4f3c10 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/all_tests_sequential.html >@@ -0,0 +1,399 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ <title>OpenGL ES 2.0 <canvas> context tests</title> >+ <style type="text/css"> >+ h2 { display: inline; font-size: 1em; margin-bottom: 0.2em; } >+ iframe { display: inline; border: 1px solid black; overflow: hidden;} >+ </style> >+ <script type="application/javascript"> >+ function loadTest(id, url) { >+ document.getElementById(id).src = url; >+ } >+ function seqLoader() { >+ var iframes = document.getElementsByTagName('iframe'); >+ for (var i=0; i<iframes.length; i++) { >+ iframes[i].addEventListener('load', (function(j) { >+ return function() { >+ var e = document.getElementById((j+1)+'_link'); >+ if (e) loadTest(j+1, e.href); >+ } >+ })(i), false); >+ } >+ var e = document.getElementById('0_link'); >+ if (e) loadTest(0, e.href); >+ } >+ </script> >+</head> >+<body onload="seqLoader()"> >+ >+ <div> >+ <iframe id="0" width="110" height="42"></iframe> >+ <h2><a id="0_link" href="conformance/badArgsArityLessThanArgc.html">conformance/badArgsArityLessThanArgc.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="1" width="110" height="42"></iframe> >+ <h2><a id="1_link" href="conformance/constants.html">conformance/constants.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="2" width="110" height="42"></iframe> >+ <h2><a id="2_link" href="conformance/fuzzTheAPI.html">conformance/fuzzTheAPI.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="3" width="110" height="42"></iframe> >+ <h2><a id="3_link" href="conformance/getContext.html">conformance/getContext.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="4" width="110" height="42"></iframe> >+ <h2><a id="4_link" href="conformance/methods.html">conformance/methods.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="5" width="110" height="42"></iframe> >+ <h2><a id="5_link" href="conformance/quickCheckAPI.html">conformance/quickCheckAPI.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="6" width="110" height="42"></iframe> >+ <h2><a id="6_link" href="conformance/quickCheckAPIBadArgs.html">conformance/quickCheckAPIBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="7" width="110" height="42"></iframe> >+ <h2><a id="7_link" href="conformance/webGLArrays.html">conformance/webGLArrays.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="8" width="110" height="42"></iframe> >+ <h2><a id="8_link" href="functions/bindBuffer.html">functions/bindBuffer.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="9" width="110" height="42"></iframe> >+ <h2><a id="9_link" href="functions/bindBufferBadArgs.html">functions/bindBufferBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="10" width="110" height="42"></iframe> >+ <h2><a id="10_link" href="functions/bindFramebufferLeaveNonZero.html">functions/bindFramebufferLeaveNonZero.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="11" width="110" height="42"></iframe> >+ <h2><a id="11_link" href="functions/bufferData.html">functions/bufferData.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="12" width="110" height="42"></iframe> >+ <h2><a id="12_link" href="functions/bufferDataBadArgs.html">functions/bufferDataBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="13" width="110" height="42"></iframe> >+ <h2><a id="13_link" href="functions/bufferSubData.html">functions/bufferSubData.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="14" width="110" height="42"></iframe> >+ <h2><a id="14_link" href="functions/bufferSubDataBadArgs.html">functions/bufferSubDataBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="15" width="110" height="42"></iframe> >+ <h2><a id="15_link" href="functions/copyTexImage2D.html">functions/copyTexImage2D.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="16" width="110" height="42"></iframe> >+ <h2><a id="16_link" href="functions/copyTexImage2DBadArgs.html">functions/copyTexImage2DBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="17" width="110" height="42"></iframe> >+ <h2><a id="17_link" href="functions/copyTexSubImage2D.html">functions/copyTexSubImage2D.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="18" width="110" height="42"></iframe> >+ <h2><a id="18_link" href="functions/copyTexSubImage2DBadArgs.html">functions/copyTexSubImage2DBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="19" width="110" height="42"></iframe> >+ <h2><a id="19_link" href="functions/deleteBufferBadArgs.html">functions/deleteBufferBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="20" width="110" height="42"></iframe> >+ <h2><a id="20_link" href="functions/drawArrays.html">functions/drawArrays.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="21" width="110" height="42"></iframe> >+ <h2><a id="21_link" href="functions/drawArraysOutOfBounds.html">functions/drawArraysOutOfBounds.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="22" width="110" height="42"></iframe> >+ <h2><a id="22_link" href="functions/drawElements.html">functions/drawElements.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="23" width="110" height="42"></iframe> >+ <h2><a id="23_link" href="functions/drawElementsBadArgs.html">functions/drawElementsBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="24" width="110" height="42"></iframe> >+ <h2><a id="24_link" href="functions/getImageData.html">functions/getImageData.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="25" width="110" height="42"></iframe> >+ <h2><a id="25_link" href="functions/getImageDataBadArgs.html">functions/getImageDataBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="26" width="110" height="42"></iframe> >+ <h2><a id="26_link" href="functions/isTests.html">functions/isTests.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="27" width="110" height="42"></iframe> >+ <h2><a id="27_link" href="functions/linkProgramBadArgs.html">functions/linkProgramBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="28" width="110" height="42"></iframe> >+ <h2><a id="28_link" href="functions/readPixels.html">functions/readPixels.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="29" width="110" height="42"></iframe> >+ <h2><a id="29_link" href="functions/readPixelsBadArgs.html">functions/readPixelsBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="30" width="110" height="42"></iframe> >+ <h2><a id="30_link" href="functions/texImage2D.html">functions/texImage2D.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="31" width="110" height="42"></iframe> >+ <h2><a id="31_link" href="functions/texImage2DBadArgs.html">functions/texImage2DBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="32" width="110" height="42"></iframe> >+ <h2><a id="32_link" href="functions/texImage2DHTML.html">functions/texImage2DHTML.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="33" width="110" height="42"></iframe> >+ <h2><a id="33_link" href="functions/texImage2DHTMLBadArgs.html">functions/texImage2DHTMLBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="34" width="110" height="42"></iframe> >+ <h2><a id="34_link" href="functions/texSubImage2D.html">functions/texSubImage2D.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="35" width="110" height="42"></iframe> >+ <h2><a id="35_link" href="functions/texSubImage2DBadArgs.html">functions/texSubImage2DBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="36" width="110" height="42"></iframe> >+ <h2><a id="36_link" href="functions/texSubImage2DHTML.html">functions/texSubImage2DHTML.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="37" width="110" height="42"></iframe> >+ <h2><a id="37_link" href="functions/texSubImage2DHTMLBadArgs.html">functions/texSubImage2DHTMLBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="38" width="110" height="42"></iframe> >+ <h2><a id="38_link" href="functions/uniformMatrix.html">functions/uniformMatrix.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="39" width="110" height="42"></iframe> >+ <h2><a id="39_link" href="functions/uniformMatrixBadArgs.html">functions/uniformMatrixBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="40" width="110" height="42"></iframe> >+ <h2><a id="40_link" href="functions/uniformf.html">functions/uniformf.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="41" width="110" height="42"></iframe> >+ <h2><a id="41_link" href="functions/uniformfBadArgs.html">functions/uniformfBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="42" width="110" height="42"></iframe> >+ <h2><a id="42_link" href="functions/uniformi.html">functions/uniformi.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="43" width="110" height="42"></iframe> >+ <h2><a id="43_link" href="functions/uniformiBadArgs.html">functions/uniformiBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="44" width="110" height="42"></iframe> >+ <h2><a id="44_link" href="functions/vertexAttrib.html">functions/vertexAttrib.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="45" width="110" height="42"></iframe> >+ <h2><a id="45_link" href="functions/vertexAttribBadArgs.html">functions/vertexAttribBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="46" width="110" height="42"></iframe> >+ <h2><a id="46_link" href="functions/vertexAttribPointer.html">functions/vertexAttribPointer.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="47" width="110" height="42"></iframe> >+ <h2><a id="47_link" href="functions/vertexAttribPointerBadArgs.html">functions/vertexAttribPointerBadArgs.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="48" width="110" height="42"></iframe> >+ <h2><a id="48_link" href="performance/CPUvsGPU.html">performance/CPUvsGPU.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="49" width="110" height="42"></iframe> >+ <h2><a id="49_link" href="performance/bandwidth.html">performance/bandwidth.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="50" width="110" height="42"></iframe> >+ <h2><a id="50_link" href="performance/jsGCPause.html">performance/jsGCPause.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="51" width="110" height="42"></iframe> >+ <h2><a id="51_link" href="performance/jsMatrixMult.html">performance/jsMatrixMult.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="52" width="110" height="42"></iframe> >+ <h2><a id="52_link" href="performance/jsToGLOverhead.html">performance/jsToGLOverhead.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="53" width="110" height="42"></iframe> >+ <h2><a id="53_link" href="glsl/arrayOutOfBounds.html">glsl/arrayOutOfBounds.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="54" width="110" height="42"></iframe> >+ <h2><a id="54_link" href="glsl/longLoops.html">glsl/longLoops.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="55" width="110" height="42"></iframe> >+ <h2><a id="55_link" href="glsl/uniformOutOfBounds.html">glsl/uniformOutOfBounds.html</a></h2> >+ </div> >+ >+ >+ <div> >+ <iframe id="56" width="110" height="42"></iframe> >+ <h2><a id="56_link" href="glsl/unusedAttribsUniforms.html">glsl/unusedAttribsUniforms.html</a></h2> >+ </div> >+ >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-A.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-A.js >new file mode 100644 >index 00000000000..31039b5968f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-A.js >@@ -0,0 +1,86 @@ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+// ArgGenerators contains argument generators for WebGL functions. >+// The argument generators are used for running random tests against the WebGL >+// functions. >+// >+// ArgGenerators is an object consisting of functionName : argGen -properties. >+// >+// functionName is a WebGL context function name and the argGen is an argument >+// generator object that encapsulates the requirements to run >+// randomly generated tests on the WebGL function. >+// >+// An argGen object has the following methods: >+// - setup -- set up state for testing the GL function, returns values >+// that need cleanup in teardown. Run once before entering a >+// test loop. >+// - teardown -- do cleanup on setup's return values after testing is complete >+// - generate -- generate a valid set of random arguments for the GL function >+// - returnValueCleanup -- do cleanup on value returned by the tested GL function >+// - cleanup -- do cleanup on generated arguments from generate >+// - checkArgValidity -- check if passed args are valid. Has a call signature >+// that matches generate's return value. Returns true >+// if args are valid, false if not. >+// >+// Example test loop that demonstrates how the function args and return >+// values flow together: >+// >+// var setupArgs = argGen.setup(); >+// for (var i=0; i<numberOfTests; i++) { >+// var generatedArgs = argGen.generate.apply(argGen, setupArgs); >+// var validArgs = argGen.checkArgValidity.apply(argGen, generatedArgs); >+// var rv = call the GL function with generatedArgs; >+// argGen.returnValueCleanup(rv); >+// argGen.cleanup.apply(argGen, generatedArgs); >+// } >+// argGen.teardown.apply(argGen, setupArgs); >+// >+ArgGenerators = { >+ >+// GL functions in alphabetical order >+ >+// A >+ >+ activeTexture : { >+ generate : function() { return [textureUnit.random()]; }, >+ checkArgValidity : function(t) { return textureUnit.has(t); }, >+ teardown : function() { GL.activeTexture(GL.TEXTURE0); } >+ }, >+ attachShader : { >+ generate : function() { >+ var p = GL.createProgram(); >+ var sh = GL.createShader(shaderType.random()); >+ return [p, sh]; >+ }, >+ checkArgValidity : function(p, sh) { >+ return GL.isProgram(p) && GL.isShader(sh) && !GL.getAttachedShaders(p).has(sh); >+ }, >+ cleanup : function(p, sh) { >+ try {GL.detachShader(p,sh);} catch(e) {} >+ try {GL.deleteProgram(p);} catch(e) {} >+ try {GL.deleteShader(sh);} catch(e) {} >+ } >+ } >+ >+}; >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-B1.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-B1.js >new file mode 100644 >index 00000000000..e8abf394af4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-B1.js >@@ -0,0 +1,78 @@ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+// ArgGenerators contains argument generators for WebGL functions. >+// The argument generators are used for running random tests against the WebGL >+// functions. >+// >+// ArgGenerators is an object consisting of functionName : argGen -properties. >+// >+// functionName is a WebGL context function name and the argGen is an argument >+// generator object that encapsulates the requirements to run >+// randomly generated tests on the WebGL function. >+// >+// An argGen object has the following methods: >+// - setup -- set up state for testing the GL function, returns values >+// that need cleanup in teardown. Run once before entering a >+// test loop. >+// - teardown -- do cleanup on setup's return values after testing is complete >+// - generate -- generate a valid set of random arguments for the GL function >+// - returnValueCleanup -- do cleanup on value returned by the tested GL function >+// - cleanup -- do cleanup on generated arguments from generate >+// - checkArgValidity -- check if passed args are valid. Has a call signature >+// that matches generate's return value. Returns true >+// if args are valid, false if not. >+// >+// Example test loop that demonstrates how the function args and return >+// values flow together: >+// >+// var setupArgs = argGen.setup(); >+// for (var i=0; i<numberOfTests; i++) { >+// var generatedArgs = argGen.generate.apply(argGen, setupArgs); >+// var validArgs = argGen.checkArgValidity.apply(argGen, generatedArgs); >+// var rv = call the GL function with generatedArgs; >+// argGen.returnValueCleanup(rv); >+// argGen.cleanup.apply(argGen, generatedArgs); >+// } >+// argGen.teardown.apply(argGen, setupArgs); >+// >+ArgGenerators = { >+ >+// GL functions in alphabetical order >+ >+// B-1 >+ >+ bindAttribLocation : { >+ generate : function() { >+ var program = GL.createProgram(); >+ return [program, randomVertexAttribute(), randomName()]; >+ }, >+ checkArgValidity : function(program, index, name) { >+ return GL.isProgram(program) && isVertexAttribute(index) && isValidName(name); >+ }, >+ cleanup : function(program, index, name) { >+ try { GL.deleteProgram(program); } catch(e) {} >+ } >+ } >+ >+}; >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-B2.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-B2.js >new file mode 100644 >index 00000000000..327f4426638 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-B2.js >@@ -0,0 +1,171 @@ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+// ArgGenerators contains argument generators for WebGL functions. >+// The argument generators are used for running random tests against the WebGL >+// functions. >+// >+// ArgGenerators is an object consisting of functionName : argGen -properties. >+// >+// functionName is a WebGL context function name and the argGen is an argument >+// generator object that encapsulates the requirements to run >+// randomly generated tests on the WebGL function. >+// >+// An argGen object has the following methods: >+// - setup -- set up state for testing the GL function, returns values >+// that need cleanup in teardown. Run once before entering a >+// test loop. >+// - teardown -- do cleanup on setup's return values after testing is complete >+// - generate -- generate a valid set of random arguments for the GL function >+// - returnValueCleanup -- do cleanup on value returned by the tested GL function >+// - cleanup -- do cleanup on generated arguments from generate >+// - checkArgValidity -- check if passed args are valid. Has a call signature >+// that matches generate's return value. Returns true >+// if args are valid, false if not. >+// >+// Example test loop that demonstrates how the function args and return >+// values flow together: >+// >+// var setupArgs = argGen.setup(); >+// for (var i=0; i<numberOfTests; i++) { >+// var generatedArgs = argGen.generate.apply(argGen, setupArgs); >+// var validArgs = argGen.checkArgValidity.apply(argGen, generatedArgs); >+// var rv = call the GL function with generatedArgs; >+// argGen.returnValueCleanup(rv); >+// argGen.cleanup.apply(argGen, generatedArgs); >+// } >+// argGen.teardown.apply(argGen, setupArgs); >+// >+ArgGenerators = { >+ >+// GL functions in alphabetical order >+ >+// B-2 >+ >+ bindBuffer : { >+ generate : function(buf) { >+ return [bufferTarget.random(), GL.createBuffer()]; >+ }, >+ checkArgValidity : function(target, buf) { >+ if (!bufferTarget.has(target)) >+ return false; >+ GL.bindBuffer(target, buf); >+ return GL.isBuffer(buf); >+ }, >+ cleanup : function(t, buf, m) { >+ GL.deleteBuffer(buf); >+ } >+ }, >+ bindFramebuffer : { >+ generate : function() { >+ return [GL.FRAMEBUFFER, Math.random() > 0.5 ? null : GL.createFramebuffer()]; >+ }, >+ checkArgValidity : function(target, fbo) { >+ if (target != GL.FRAMEBUFFER) >+ return false; >+ if (fbo != null) >+ GL.bindFramebuffer(target, fbo); >+ return (fbo == null || GL.isFramebuffer(fbo)); >+ }, >+ cleanup : function(target, fbo) { >+ GL.bindFramebuffer(target, null); >+ if (fbo) >+ GL.deleteFramebuffer(fbo); >+ } >+ }, >+ bindRenderbuffer : { >+ generate : function() { >+ return [GL.RENDERBUFFER, Math.random() > 0.5 ? null : GL.createRenderbuffer()]; >+ }, >+ checkArgValidity : function(target, rbo) { >+ if (target != GL.RENDERBUFFER) >+ return false; >+ if (rbo != null) >+ GL.bindRenderbuffer(target, rbo); >+ return (rbo == null || GL.isRenderbuffer(rbo)); >+ }, >+ cleanup : function(target, rbo) { >+ GL.bindRenderbuffer(target, null); >+ if (rbo) >+ GL.deleteRenderbuffer(rbo); >+ } >+ }, >+ bindTexture : { >+ generate : function() { >+ return [bindTextureTarget.random(), Math.random() > 0.5 ? null : GL.createTexture()]; >+ }, >+ checkArgValidity : function(target, o) { >+ if (!bindTextureTarget.has(target)) >+ return false; >+ if (o != null) >+ GL.bindTexture(target, o); >+ return (o == null || GL.isTexture(o)); >+ }, >+ cleanup : function(target, o) { >+ GL.bindTexture(target, null); >+ if (o) >+ GL.deleteTexture(o); >+ } >+ }, >+ blendColor : { >+ generate : function() { return randomColor(); }, >+ teardown : function() { GL.blendColor(0,0,0,0); } >+ }, >+ blendEquation : { >+ generate : function() { return [blendEquationMode.random()]; }, >+ checkArgValidity : function(o) { return blendEquationMode.has(o); }, >+ teardown : function() { GL.blendEquation(GL.FUNC_ADD); } >+ }, >+ blendEquationSeparate : { >+ generate : function() { >+ return [blendEquationMode.random(), blendEquationMode.random()]; >+ }, >+ checkArgValidity : function(o,p) { >+ return blendEquationMode.has(o) && blendEquationMode.has(p); >+ }, >+ teardown : function() { GL.blendEquationSeparate(GL.FUNC_ADD, GL.FUNC_ADD); } >+ }, >+ blendFunc : { >+ generate : function() { >+ return [blendFuncSfactor.random(), blendFuncDfactor.random()]; >+ }, >+ checkArgValidity : function(s,d) { >+ return blendFuncSfactor.has(s) && blendFuncDfactor.has(d); >+ }, >+ teardown : function() { GL.blendFunc(GL.ONE, GL.ZERO); } >+ }, >+ blendFuncSeparate : { >+ generate : function() { >+ return [blendFuncSfactor.random(), blendFuncDfactor.random(), >+ blendFuncSfactor.random(), blendFuncDfactor.random()]; >+ }, >+ checkArgValidity : function(s,d,as,ad) { >+ return blendFuncSfactor.has(s) && blendFuncDfactor.has(d) && >+ blendFuncSfactor.has(as) && blendFuncDfactor.has(ad) ; >+ }, >+ teardown : function() { >+ GL.blendFuncSeparate(GL.ONE, GL.ZERO, GL.ONE, GL.ZERO); >+ } >+ } >+ >+}; >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-B3.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-B3.js >new file mode 100644 >index 00000000000..7b7f46c4614 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-B3.js >@@ -0,0 +1,85 @@ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+// ArgGenerators contains argument generators for WebGL functions. >+// The argument generators are used for running random tests against the WebGL >+// functions. >+// >+// ArgGenerators is an object consisting of functionName : argGen -properties. >+// >+// functionName is a WebGL context function name and the argGen is an argument >+// generator object that encapsulates the requirements to run >+// randomly generated tests on the WebGL function. >+// >+// An argGen object has the following methods: >+// - setup -- set up state for testing the GL function, returns values >+// that need cleanup in teardown. Run once before entering a >+// test loop. >+// - teardown -- do cleanup on setup's return values after testing is complete >+// - generate -- generate a valid set of random arguments for the GL function >+// - returnValueCleanup -- do cleanup on value returned by the tested GL function >+// - cleanup -- do cleanup on generated arguments from generate >+// - checkArgValidity -- check if passed args are valid. Has a call signature >+// that matches generate's return value. Returns true >+// if args are valid, false if not. >+// >+// Example test loop that demonstrates how the function args and return >+// values flow together: >+// >+// var setupArgs = argGen.setup(); >+// for (var i=0; i<numberOfTests; i++) { >+// var generatedArgs = argGen.generate.apply(argGen, setupArgs); >+// var validArgs = argGen.checkArgValidity.apply(argGen, generatedArgs); >+// var rv = call the GL function with generatedArgs; >+// argGen.returnValueCleanup(rv); >+// argGen.cleanup.apply(argGen, generatedArgs); >+// } >+// argGen.teardown.apply(argGen, setupArgs); >+// >+ArgGenerators = { >+ >+// GL functions in alphabetical order >+ >+// B-3 >+ >+ bufferData : { >+ setup : function() { >+ var buf = GL.createBuffer(); >+ var ebuf = GL.createBuffer(); >+ GL.bindBuffer(GL.ARRAY_BUFFER, buf); >+ GL.bindBuffer(GL.ELEMENT_ARRAY_BUFFER, ebuf); >+ return [buf, ebuf]; >+ }, >+ generate : function(buf, ebuf) { >+ return [bufferTarget.random(), randomBufferData(), bufferMode.random()]; >+ }, >+ checkArgValidity : function(target, bufData, mode) { >+ return bufferTarget.has(target) && isBufferData(bufData) && bufferMode.has(mode); >+ }, >+ teardown : function(buf, ebuf) { >+ GL.deleteBuffer(buf); >+ GL.deleteBuffer(ebuf); >+ }, >+ } >+ >+}; >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-B4.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-B4.js >new file mode 100644 >index 00000000000..6881c32148f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-B4.js >@@ -0,0 +1,88 @@ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+// ArgGenerators contains argument generators for WebGL functions. >+// The argument generators are used for running random tests against the WebGL >+// functions. >+// >+// ArgGenerators is an object consisting of functionName : argGen -properties. >+// >+// functionName is a WebGL context function name and the argGen is an argument >+// generator object that encapsulates the requirements to run >+// randomly generated tests on the WebGL function. >+// >+// An argGen object has the following methods: >+// - setup -- set up state for testing the GL function, returns values >+// that need cleanup in teardown. Run once before entering a >+// test loop. >+// - teardown -- do cleanup on setup's return values after testing is complete >+// - generate -- generate a valid set of random arguments for the GL function >+// - returnValueCleanup -- do cleanup on value returned by the tested GL function >+// - cleanup -- do cleanup on generated arguments from generate >+// - checkArgValidity -- check if passed args are valid. Has a call signature >+// that matches generate's return value. Returns true >+// if args are valid, false if not. >+// >+// Example test loop that demonstrates how the function args and return >+// values flow together: >+// >+// var setupArgs = argGen.setup(); >+// for (var i=0; i<numberOfTests; i++) { >+// var generatedArgs = argGen.generate.apply(argGen, setupArgs); >+// var validArgs = argGen.checkArgValidity.apply(argGen, generatedArgs); >+// var rv = call the GL function with generatedArgs; >+// argGen.returnValueCleanup(rv); >+// argGen.cleanup.apply(argGen, generatedArgs); >+// } >+// argGen.teardown.apply(argGen, setupArgs); >+// >+ArgGenerators = { >+ >+// GL functions in alphabetical order >+ >+// B-4 >+ >+ bufferSubData : { >+ setup : function() { >+ var buf = GL.createBuffer(); >+ var ebuf = GL.createBuffer(); >+ GL.bindBuffer(GL.ARRAY_BUFFER, buf); >+ GL.bufferData(GL.ARRAY_BUFFER, 256, GL.STATIC_DRAW); >+ GL.bindBuffer(GL.ELEMENT_ARRAY_BUFFER, ebuf); >+ GL.bufferData(GL.ELEMENT_ARRAY_BUFFER, 256, GL.STATIC_DRAW); >+ return [buf, ebuf]; >+ }, >+ generate : function(buf, ebuf) { >+ var d = randomBufferSubData(256); >+ return [bufferTarget.random(), d.offset, d.data]; >+ }, >+ checkArgValidity : function(target, offset, data) { >+ return bufferTarget.has(target) && offset >= 0 && data.byteLength >= 0 && offset + data.byteLength <= 256; >+ }, >+ teardown : function(buf, ebuf) { >+ GL.deleteBuffer(buf); >+ GL.deleteBuffer(ebuf); >+ }, >+ } >+ >+}; >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-C.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-C.js >new file mode 100644 >index 00000000000..974ff745532 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-C.js >@@ -0,0 +1,136 @@ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+// ArgGenerators contains argument generators for WebGL functions. >+// The argument generators are used for running random tests against the WebGL >+// functions. >+// >+// ArgGenerators is an object consisting of functionName : argGen -properties. >+// >+// functionName is a WebGL context function name and the argGen is an argument >+// generator object that encapsulates the requirements to run >+// randomly generated tests on the WebGL function. >+// >+// An argGen object has the following methods: >+// - setup -- set up state for testing the GL function, returns values >+// that need cleanup in teardown. Run once before entering a >+// test loop. >+// - teardown -- do cleanup on setup's return values after testing is complete >+// - generate -- generate a valid set of random arguments for the GL function >+// - returnValueCleanup -- do cleanup on value returned by the tested GL function >+// - cleanup -- do cleanup on generated arguments from generate >+// - checkArgValidity -- check if passed args are valid. Has a call signature >+// that matches generate's return value. Returns true >+// if args are valid, false if not. >+// >+// Example test loop that demonstrates how the function args and return >+// values flow together: >+// >+// var setupArgs = argGen.setup(); >+// for (var i=0; i<numberOfTests; i++) { >+// var generatedArgs = argGen.generate.apply(argGen, setupArgs); >+// var validArgs = argGen.checkArgValidity.apply(argGen, generatedArgs); >+// var rv = call the GL function with generatedArgs; >+// argGen.returnValueCleanup(rv); >+// argGen.cleanup.apply(argGen, generatedArgs); >+// } >+// argGen.teardown.apply(argGen, setupArgs); >+// >+ArgGenerators = { >+ >+// GL functions in alphabetical order >+ >+// C >+ >+ checkFramebufferStatus : { >+ generate : function() { >+ return [Math.random() > 0.5 ? null : GL.createFramebuffer()]; >+ }, >+ checkArgValidity : function(fbo) { >+ if (fbo != null) >+ GL.bindFramebuffer(GL.FRAMEBUFFER, fbo); >+ return fbo == null || GL.isFramebuffer(fbo); >+ }, >+ cleanup : function(fbo){ >+ GL.bindFramebuffer(GL.FRAMEBUFFER, null); >+ if (fbo != null) >+ try{ GL.deleteFramebuffer(fbo); } catch(e) {} >+ } >+ }, >+ clear : { >+ generate : function() { return [clearMask.random()]; }, >+ checkArgValidity : function(mask) { return clearMask.has(mask); } >+ }, >+ clearColor : { >+ generate : function() { return randomColor(); }, >+ teardown : function() { GL.clearColor(0,0,0,0); } >+ }, >+ clearDepth : { >+ generate : function() { return [Math.random()]; }, >+ teardown : function() { GL.clearDepth(1); } >+ }, >+ clearStencil : { >+ generate : function() { return [randomStencil()]; }, >+ teardown : function() { GL.clearStencil(0); } >+ }, >+ colorMask : { >+ generate : function() { >+ return [randomBool(), randomBool(), randomBool(), randomBool()]; >+ }, >+ teardown : function() { GL.colorMask(true, true, true, true); } >+ }, >+ compileShader : {}, // FIXME >+ copyTexImage2D : {}, // FIXME >+ copyTexSubImage2D : {}, // FIXME >+ createBuffer : { >+ generate : function() { return []; }, >+ returnValueCleanup : function(o) { GL.deleteBuffer(o); } >+ }, >+ createFramebuffer : { >+ generate : function() { return []; }, >+ returnValueCleanup : function(o) { GL.deleteFramebuffer(o); } >+ }, >+ createProgram : { >+ generate : function() { return []; }, >+ returnValueCleanup : function(o) { GL.deleteProgram(o); } >+ }, >+ createRenderbuffer : { >+ generate : function() { return []; }, >+ returnValueCleanup : function(o) { GL.deleteRenderbuffer(o); } >+ }, >+ createShader : { >+ generate : function() { return [shaderType.random()]; }, >+ checkArgValidity : function(t) { return shaderType.has(t); }, >+ returnValueCleanup : function(o) { GL.deleteShader(o); } >+ }, >+ createTexture : { >+ generate : function() { return []; }, >+ returnValueCleanup : function(o) { GL.deleteTexture(o); } >+ }, >+ cullFace : { >+ generate : function() { return [cullFace.random()]; }, >+ checkArgValidity : function(f) { return cullFace.has(f); }, >+ teardown : function() { GL.cullFace(GL.BACK); } >+ } >+ >+}; >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-D_G.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-D_G.js >new file mode 100644 >index 00000000000..7d218519dff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-D_G.js >@@ -0,0 +1,252 @@ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+// ArgGenerators contains argument generators for WebGL functions. >+// The argument generators are used for running random tests against the WebGL >+// functions. >+// >+// ArgGenerators is an object consisting of functionName : argGen -properties. >+// >+// functionName is a WebGL context function name and the argGen is an argument >+// generator object that encapsulates the requirements to run >+// randomly generated tests on the WebGL function. >+// >+// An argGen object has the following methods: >+// - setup -- set up state for testing the GL function, returns values >+// that need cleanup in teardown. Run once before entering a >+// test loop. >+// - teardown -- do cleanup on setup's return values after testing is complete >+// - generate -- generate a valid set of random arguments for the GL function >+// - returnValueCleanup -- do cleanup on value returned by the tested GL function >+// - cleanup -- do cleanup on generated arguments from generate >+// - checkArgValidity -- check if passed args are valid. Has a call signature >+// that matches generate's return value. Returns true >+// if args are valid, false if not. >+// >+// Example test loop that demonstrates how the function args and return >+// values flow together: >+// >+// var setupArgs = argGen.setup(); >+// for (var i=0; i<numberOfTests; i++) { >+// var generatedArgs = argGen.generate.apply(argGen, setupArgs); >+// var validArgs = argGen.checkArgValidity.apply(argGen, generatedArgs); >+// var rv = call the GL function with generatedArgs; >+// argGen.returnValueCleanup(rv); >+// argGen.cleanup.apply(argGen, generatedArgs); >+// } >+// argGen.teardown.apply(argGen, setupArgs); >+// >+ArgGenerators = { >+ >+// GL functions in alphabetical order >+ >+// D >+ >+ deleteBuffer : { >+ generate : function() { return [GL.createBuffer()]; }, >+ checkArgValidity : function(o) { >+ GL.bindBuffer(GL.ARRAY_BUFFER, o); >+ return GL.isBuffer(o); >+ }, >+ cleanup : function(o) { >+ GL.bindBuffer(GL.ARRAY_BUFFER, null); >+ try { GL.deleteBuffer(o); } catch(e) {} >+ } >+ }, >+ deleteFramebuffer : { >+ generate : function() { return [GL.createFramebuffer()]; }, >+ checkArgValidity : function(o) { >+ GL.bindFramebuffer(GL.FRAMEBUFFER, o); >+ return GL.isFramebuffer(o); >+ }, >+ cleanup : function(o) { >+ GL.bindFramebuffer(GL.FRAMEBUFFER, null); >+ try { GL.deleteFramebuffer(o); } catch(e) {} >+ } >+ }, >+ deleteProgram : { >+ generate : function() { return [GL.createProgram()]; }, >+ checkArgValidity : function(o) { return GL.isProgram(o); }, >+ cleanup : function(o) { try { GL.deleteProgram(o); } catch(e) {} } >+ }, >+ deleteRenderbuffer : { >+ generate : function() { return [GL.createRenderbuffer()]; }, >+ checkArgValidity : function(o) { >+ GL.bindRenderbuffer(GL.RENDERBUFFER, o); >+ return GL.isRenderbuffer(o); >+ }, >+ cleanup : function(o) { >+ GL.bindRenderbuffer(GL.RENDERBUFFER, null); >+ try { GL.deleteRenderbuffer(o); } catch(e) {} >+ } >+ }, >+ deleteShader : { >+ generate : function() { return [GL.createShader(shaderType.random())]; }, >+ checkArgValidity : function(o) { return GL.isShader(o); }, >+ cleanup : function(o) { try { GL.deleteShader(o); } catch(e) {} } >+ }, >+ deleteTexture : { >+ generate : function() { return [GL.createTexture()]; }, >+ checkArgValidity : function(o) { >+ GL.bindTexture(GL.TEXTURE_2D, o); >+ return GL.isTexture(o); >+ }, >+ cleanup : function(o) { >+ GL.bindTexture(GL.TEXTURE_2D, null); >+ try { GL.deleteTexture(o); } catch(e) {} >+ } >+ }, >+ depthFunc : { >+ generate : function() { return [depthFuncFunc.random()]; }, >+ checkArgValidity : function(f) { return depthFuncFunc.has(f); }, >+ teardown : function() { GL.depthFunc(GL.LESS); } >+ }, >+ depthMask : { >+ generate : function() { return [randomBool()]; }, >+ teardown : function() { GL.depthFunc(GL.TRUE); } >+ }, >+ depthRange : { >+ generate : function() { return [Math.random(), Math.random()]; }, >+ teardown : function() { GL.depthRange(0, 1); } >+ }, >+ detachShader : { >+ generate : function() { >+ var p = GL.createProgram(); >+ var sh = GL.createShader(shaderType.random()); >+ GL.attachShader(p, sh); >+ return [p, sh]; >+ }, >+ checkArgValidity : function(p, sh) { >+ return GL.isProgram(p) && GL.isShader(sh) && GL.getAttachedShaders(p).has(sh); >+ }, >+ cleanup : function(p, sh) { >+ try {GL.deleteProgram(p);} catch(e) {} >+ try {GL.deleteShader(sh);} catch(e) {} >+ } >+ }, >+ disable : { >+ generate : function() { return [enableCap.random()]; }, >+ checkArgValidity : function(c) { return enableCap.has(c); }, >+ cleanup : function(c) { if (c == GL.DITHER) GL.enable(c); } >+ }, >+ disableVertexAttribArray : { >+ generate : function() { return [randomVertexAttribute()]; }, >+ checkArgValidity : function(v) { return isVertexAttribute(v); } >+ }, >+ drawArrays : {}, // FIXME >+ drawElements : {}, // FIXME >+ >+// E >+ >+ enable : { >+ generate : function() { return [enableCap.random()]; }, >+ checkArgValidity : function(c) { return enableCap.has(c); }, >+ cleanup : function(c) { if (c != GL.DITHER) GL.disable(c); } >+ }, >+ enableVertexAttribArray : { >+ generate : function() { return [randomVertexAttribute()]; }, >+ checkArgValidity : function(v) { return isVertexAttribute(castToInt(v)); }, >+ cleanup : function(v) { GL.disableVertexAttribArray(v); } >+ }, >+ >+// F >+ >+ finish : { >+ generate : function() { return []; } >+ }, >+ flush : { >+ generate : function() { return []; } >+ }, >+ framebufferRenderbuffer : {}, // FIXME >+ framebufferTexture2D : {}, // FIXME >+ frontFace : { >+ generate : function() { return [frontFaceMode.random()]; }, >+ checkArgValidity : function(c) { return frontFaceMode.has(c); }, >+ cleanup : function(c) { GL.frontFace(GL.CCW); } >+ }, >+ >+// G-1 >+ >+ generateMipmap : { >+ setup : function() { >+ var tex = GL.createTexture(); >+ var tex2 = GL.createTexture(); >+ GL.bindTexture(GL.TEXTURE_2D, tex); >+ GL.bindTexture(GL.TEXTURE_CUBE_MAP, tex2); >+ var pix = new Uint8Array(16*16*4); >+ GL.texImage2D(GL.TEXTURE_2D, 0, GL.RGBA, 16, 16, 0, GL.RGBA, GL.UNSIGNED_BYTE, pix); >+ GL.texImage2D(GL.TEXTURE_CUBE_MAP_POSITIVE_X, 0, GL.RGBA, 16, 16, 0, GL.RGBA, GL.UNSIGNED_BYTE, pix); >+ GL.texImage2D(GL.TEXTURE_CUBE_MAP_NEGATIVE_X, 0, GL.RGBA, 16, 16, 0, GL.RGBA, GL.UNSIGNED_BYTE, pix); >+ GL.texImage2D(GL.TEXTURE_CUBE_MAP_POSITIVE_Y, 0, GL.RGBA, 16, 16, 0, GL.RGBA, GL.UNSIGNED_BYTE, pix); >+ GL.texImage2D(GL.TEXTURE_CUBE_MAP_NEGATIVE_Y, 0, GL.RGBA, 16, 16, 0, GL.RGBA, GL.UNSIGNED_BYTE, pix); >+ GL.texImage2D(GL.TEXTURE_CUBE_MAP_POSITIVE_Z, 0, GL.RGBA, 16, 16, 0, GL.RGBA, GL.UNSIGNED_BYTE, pix); >+ GL.texImage2D(GL.TEXTURE_CUBE_MAP_NEGATIVE_Z, 0, GL.RGBA, 16, 16, 0, GL.RGBA, GL.UNSIGNED_BYTE, pix); >+ }, >+ generate : function() { return [bindTextureTarget.random()]; }, >+ checkArgValidity : function(t) { return bindTextureTarget.has(t); }, >+ teardown : function(tex, tex2) { >+ GL.bindTexture(GL.TEXTURE_2D, null); >+ GL.bindTexture(GL.TEXTURE_CUBE_MAP, null); >+ GL.deleteTexture(tex); >+ GL.deleteTexture(tex2); >+ } >+ }, >+ getActiveAttrib : { >+ /* FIXME the queried attrib needs to be an active one >+ generate : function() { >+ var program = GL.createProgram(); >+ return [program, randomVertexAttribute()]; >+ }, >+ checkArgValidity : function(program, index) { >+ return GL.isProgram(program) && isVertexAttribute(index); >+ }, >+ cleanup : function(program, index) { >+ GL.deleteProgram(program); >+ } >+ */ >+ }, >+ getActiveUniform : {}, // FIXME >+ getAttachedShaders : { >+ setup : function() { >+ var program = GL.createProgram(); >+ var s1 = GL.createShader(GL.VERTEX_SHADER); >+ var s2 = GL.createShader(GL.FRAGMENT_SHADER); >+ GL.attachShader(program, s1); >+ GL.attachShader(program, s2); >+ return [program, s1, s2]; >+ }, >+ generate : function(program, s1, s2) { >+ return [program] >+ }, >+ checkArgValidity : function(program) { >+ return GL.isProgram(program); >+ }, >+ teardown : function(program, s1, s2) { >+ GL.deleteProgram(program); >+ GL.deleteShader(s1); >+ GL.deleteShader(s2); >+ } >+ } >+ >+}; >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-G_I.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-G_I.js >new file mode 100644 >index 00000000000..7af58b0bf4e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-G_I.js >@@ -0,0 +1,141 @@ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+// ArgGenerators contains argument generators for WebGL functions. >+// The argument generators are used for running random tests against the WebGL >+// functions. >+// >+// ArgGenerators is an object consisting of functionName : argGen -properties. >+// >+// functionName is a WebGL context function name and the argGen is an argument >+// generator object that encapsulates the requirements to run >+// randomly generated tests on the WebGL function. >+// >+// An argGen object has the following methods: >+// - setup -- set up state for testing the GL function, returns values >+// that need cleanup in teardown. Run once before entering a >+// test loop. >+// - teardown -- do cleanup on setup's return values after testing is complete >+// - generate -- generate a valid set of random arguments for the GL function >+// - returnValueCleanup -- do cleanup on value returned by the tested GL function >+// - cleanup -- do cleanup on generated arguments from generate >+// - checkArgValidity -- check if passed args are valid. Has a call signature >+// that matches generate's return value. Returns true >+// if args are valid, false if not. >+// >+// Example test loop that demonstrates how the function args and return >+// values flow together: >+// >+// var setupArgs = argGen.setup(); >+// for (var i=0; i<numberOfTests; i++) { >+// var generatedArgs = argGen.generate.apply(argGen, setupArgs); >+// var validArgs = argGen.checkArgValidity.apply(argGen, generatedArgs); >+// var rv = call the GL function with generatedArgs; >+// argGen.returnValueCleanup(rv); >+// argGen.cleanup.apply(argGen, generatedArgs); >+// } >+// argGen.teardown.apply(argGen, setupArgs); >+// >+ArgGenerators = { >+ >+// GL functions in alphabetical order >+ >+// G-2 >+ >+ getAttribLocation : { >+ generate : function() { >+ var program = GL.createProgram(); >+ var name = randomName(); >+ GL.bindAttribLocation(program, randomVertexAttribute(), name); >+ return [program, name]; >+ }, >+ checkArgValidity : function(program, name) { >+ return GL.isProgram(program) && isValidName(name); >+ }, >+ cleanup : function(program, name) { >+ try { GL.deleteProgram(program); } catch(e) {} >+ } >+ },/* >+ getParameter : { >+ generate : function() { return [getParameterPname.random()]; }, >+ checkArgValidity : function(p) { return getParameterPname.has(p); } >+ }, >+ getBufferParameter : {}, // FIXME >+ getError : { >+ generate : function() { return []; } >+ }, >+ getFramebufferAttachmentParameter : {}, // FIXME >+ getProgramParameter : {}, // FIXME >+ getProgramInfoLog : {}, // FIXME >+ getRenderbufferParameter : {}, // FIXME >+ getShaderParameter : {}, // FIXME >+ getShaderInfoLog : {}, // FIXME >+ getShaderSource : {}, // FIXME >+ getTexParameter : {}, // FIXME >+ getUniform : {}, // FIXME >+ getUniformLocation : {}, // FIXME >+ getVertexAttrib : {}, // FIXME >+ getVertexAttribOffset : {}, // FIXME >+ >+// H >+ >+ hint : { >+ generate : function() { return [GL.GENERATE_MIPMAP_HINT, mipmapHint.random()]; }, >+ checkValidArgs : function(h, m) { >+ return h == GL.GENERATE_MIPMAP_HINT && mipmapHint.has(m); >+ }, >+ teardown : function(){ GL.hint(GL.GENERATE_MIPMAP_HINT, GL.DONT_CARE); } >+ }, >+ >+// I >+ >+ isBuffer : { >+ generate : function() { return [GL.createBuffer()]; }, >+ cleanup : function(o) { try { GL.deleteBuffer(o); } catch(e) {} } >+ }, >+ isEnabled : { >+ generate : function() { return [enableCap.random()]; }, >+ checkArgValidity : function(c) { return enableCap.has(c); } >+ }, >+ isFramebuffer : { >+ generate : function() { return [GL.createFramebuffer()]; }, >+ cleanup : function(o) { try { GL.deleteFramebuffer(o); } catch(e) {} } >+ }, >+ isProgram : { >+ generate : function() { return [GL.createProgram()]; }, >+ cleanup : function(o) { try { GL.deleteProgram(o); } catch(e) {} } >+ }, >+ isRenderbuffer : { >+ generate : function() { return [GL.createRenderbuffer()]; }, >+ cleanup : function(o) { try { GL.deleteRenderbuffer(o); } catch(e) {} } >+ }, >+ isShader : { >+ generate : function() { return [GL.createShader(shaderType.random())]; }, >+ cleanup : function(o) { try { GL.deleteShader(o); } catch(e) {} } >+ }, >+ isTexture : { >+ generate : function() { return [GL.createTexture()]; }, >+ cleanup : function(o) { try { GL.deleteTexture(o); } catch(e) {} } >+ }*/ >+ >+}; >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-L_S.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-L_S.js >new file mode 100644 >index 00000000000..db7f38d61d3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-L_S.js >@@ -0,0 +1,139 @@ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+// ArgGenerators contains argument generators for WebGL functions. >+// The argument generators are used for running random tests against the WebGL >+// functions. >+// >+// ArgGenerators is an object consisting of functionName : argGen -properties. >+// >+// functionName is a WebGL context function name and the argGen is an argument >+// generator object that encapsulates the requirements to run >+// randomly generated tests on the WebGL function. >+// >+// An argGen object has the following methods: >+// - setup -- set up state for testing the GL function, returns values >+// that need cleanup in teardown. Run once before entering a >+// test loop. >+// - teardown -- do cleanup on setup's return values after testing is complete >+// - generate -- generate a valid set of random arguments for the GL function >+// - returnValueCleanup -- do cleanup on value returned by the tested GL function >+// - cleanup -- do cleanup on generated arguments from generate >+// - checkArgValidity -- check if passed args are valid. Has a call signature >+// that matches generate's return value. Returns true >+// if args are valid, false if not. >+// >+// Example test loop that demonstrates how the function args and return >+// values flow together: >+// >+// var setupArgs = argGen.setup(); >+// for (var i=0; i<numberOfTests; i++) { >+// var generatedArgs = argGen.generate.apply(argGen, setupArgs); >+// var validArgs = argGen.checkArgValidity.apply(argGen, generatedArgs); >+// var rv = call the GL function with generatedArgs; >+// argGen.returnValueCleanup(rv); >+// argGen.cleanup.apply(argGen, generatedArgs); >+// } >+// argGen.teardown.apply(argGen, setupArgs); >+// >+ArgGenerators = { >+ >+// GL functions in alphabetical order >+ >+// L >+ >+ lineWidth : { >+ generate : function() { return [randomLineWidth()]; }, >+ teardown : function() { GL.lineWidth(1); } >+ }, >+ linkProgram : {}, // FIXME >+ >+// P >+ pixelStorei : { >+ generate : function() { >+ return [pixelStoreiPname.random(), pixelStoreiParam.random()]; >+ }, >+ checkArgValidity : function(pname, param) { >+ return pixelStoreiPname.has(pname) && pixelStoreiParam.has(param); >+ }, >+ teardown : function() { >+ GL.pixelStorei(GL.PACK_ALIGNMENT, 4); >+ GL.pixelStorei(GL.UNPACK_ALIGNMENT, 4); >+ } >+ }, >+ polygonOffset : { >+ generate : function() { return [randomFloat(), randomFloat()]; }, >+ teardown : function() { GL.polygonOffset(0,0); } >+ }, >+ >+// R >+ >+ readPixels : {}, // FIXME >+ renderbufferStorage : {}, // FIXME >+ >+// S-1 >+ >+ sampleCoverage : { >+ generate : function() { return [randomFloatFromRange(0,1), randomBool()] }, >+ teardown : function() { GL.sampleCoverage(1, false); } >+ }, >+ scissor : { >+ generate : function() { >+ return [randomInt(3000)-1500, randomInt(3000)-1500, randomIntFromRange(0,3000), randomIntFromRange(0,3000)]; >+ }, >+ checkArgValidity : function(x,y,w,h) { >+ return castToInt(w) >= 0 && castToInt(h) >= 0; >+ }, >+ teardown : function() { >+ GL.scissor(0,0,GL.canvas.width, GL.canvas.height); >+ } >+ }, >+ shaderSource : {}, // FIXME >+ stencilFunc : { >+ generate : function(){ >+ return [stencilFuncFunc.random(), randomInt(MaxStencilValue), randomInt(0xffffffff)]; >+ }, >+ checkArgValidity : function(func, ref, mask) { >+ return stencilFuncFunc.has(func) && castToInt(ref) >= 0 && castToInt(ref) < MaxStencilValue; >+ }, >+ teardown : function() { >+ GL.stencilFunc(GL.ALWAYS, 0, 0xffffffff); >+ } >+ }, >+ stencilFuncSeparate : { >+ generate : function(){ >+ return [cullFace.random(), stencilFuncFunc.random(), randomInt(MaxStencilValue), randomInt(0xffffffff)]; >+ }, >+ checkArgValidity : function(face, func, ref, mask) { >+ return cullFace.has(face) && stencilFuncFunc.has(func) && castToInt(ref) >= 0 && castToInt(ref) < MaxStencilValue; >+ }, >+ teardown : function() { >+ GL.stencilFunc(GL.ALWAYS, 0, 0xffffffff); >+ } >+ }, >+ stencilMask : { >+ generate : function() { return [randomInt(0xffffffff)]; }, >+ teardown : function() { GL.stencilMask(0xffffffff); } >+ } >+ >+}; >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-S_V.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-S_V.js >new file mode 100644 >index 00000000000..726f6ef0521 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/argGenerators-S_V.js >@@ -0,0 +1,229 @@ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+// ArgGenerators contains argument generators for WebGL functions. >+// The argument generators are used for running random tests against the WebGL >+// functions. >+// >+// ArgGenerators is an object consisting of functionName : argGen -properties. >+// >+// functionName is a WebGL context function name and the argGen is an argument >+// generator object that encapsulates the requirements to run >+// randomly generated tests on the WebGL function. >+// >+// An argGen object has the following methods: >+// - setup -- set up state for testing the GL function, returns values >+// that need cleanup in teardown. Run once before entering a >+// test loop. >+// - teardown -- do cleanup on setup's return values after testing is complete >+// - generate -- generate a valid set of random arguments for the GL function >+// - returnValueCleanup -- do cleanup on value returned by the tested GL function >+// - cleanup -- do cleanup on generated arguments from generate >+// - checkArgValidity -- check if passed args are valid. Has a call signature >+// that matches generate's return value. Returns true >+// if args are valid, false if not. >+// >+// Example test loop that demonstrates how the function args and return >+// values flow together: >+// >+// var setupArgs = argGen.setup(); >+// for (var i=0; i<numberOfTests; i++) { >+// var generatedArgs = argGen.generate.apply(argGen, setupArgs); >+// var validArgs = argGen.checkArgValidity.apply(argGen, generatedArgs); >+// var rv = call the GL function with generatedArgs; >+// argGen.returnValueCleanup(rv); >+// argGen.cleanup.apply(argGen, generatedArgs); >+// } >+// argGen.teardown.apply(argGen, setupArgs); >+// >+ArgGenerators = { >+ >+// GL functions in alphabetical order >+ >+// S-2 >+ >+ stencilMaskSeparate : { >+ generate : function() { return [cullFace.random(), randomInt(0xffffffff)]; }, >+ checkArgValidity : function(face, mask) { >+ return cullFace.has(face); >+ }, >+ teardown : function() { GL.stencilMask(0xffffffff); } >+ }, >+ stencilOp : { >+ generate : function() { >+ return [stencilOp.random(), stencilOp.random(), stencilOp.random()]; >+ }, >+ checkArgValidity : function(sfail, dpfail, dppass) { >+ return stencilOp.has(sfail) && stencilOp.has(dpfail) && stencilOp.has(dppass); >+ }, >+ teardown : function() { GL.stencilOp(GL.KEEP, GL.KEEP, GL.KEEP); } >+ }, >+ stencilOpSeparate : { >+ generate : function() { >+ return [cullFace.random(), stencilOp.random(), stencilOp.random(), stencilOp.random()]; >+ }, >+ checkArgValidity : function(face, sfail, dpfail, dppass) { >+ return cullFace.has(face) && stencilOp.has(sfail) && >+ stencilOp.has(dpfail) && stencilOp.has(dppass); >+ }, >+ teardown : function() { GL.stencilOp(GL.KEEP, GL.KEEP, GL.KEEP); } >+ }, >+ >+// T >+ texImage2D : { >+ noAlreadyTriedCheck : true, // Object.toSource is very slow here >+ setup : function() { >+ var tex = GL.createTexture(); >+ var tex2 = GL.createTexture(); >+ GL.bindTexture(GL.TEXTURE_2D, tex); >+ GL.bindTexture(GL.TEXTURE_CUBE_MAP, tex2); >+ return [tex, tex2]; >+ }, >+ generate : function() { >+ var format = texImageFormat.random(); >+ if (Math.random() < 0.5) { >+ var img = randomImage(16,16); >+ var a = [ texImageTarget.random(), 0, format, format, GL.UNSIGNED_BYTE, img ]; >+ return a; >+ } else { >+ var pix = null; >+ if (Math.random > 0.5) { >+ pix = new Uint8Array(16*16*4); >+ } >+ return [ >+ texImageTarget.random(), 0, >+ format, 16, 16, 0, >+ format, GL.UNSIGNED_BYTE, pix >+ ]; >+ } >+ }, >+ checkArgValidity : function(target, level, internalformat, width, height, border, format, type, data) { >+ // or : function(target, level, internalformat, format, type, image) >+ if (!texImageTarget.has(target) || castToInt(level) < 0) >+ return false; >+ if (arguments.length <= 6) { >+ var xformat = width; >+ var xtype = height; >+ var ximage = border; >+ if ((ximage instanceof HTMLImageElement || >+ ximage instanceof HTMLVideoElement || >+ ximage instanceof HTMLCanvasElement || >+ ximage instanceof ImageData) && >+ texImageInternalFormat.has(internalformat) && >+ texImageFormat.has(xformat) && >+ texImageType.has(xtype) && >+ internalformat == xformat) >+ return true; >+ return false; >+ } >+ var w = castToInt(width), h = castToInt(height), b = castToInt(border); >+ return texImageInternalFormat.has(internalformat) && w >= 0 && h >= 0 && >+ b == 0 && (data == null || data.byteLength == w*h*4) && >+ texImageFormat.has(format) && texImageType.has(type) >+ && internalformat == format; >+ }, >+ teardown : function(tex, tex2) { >+ GL.bindTexture(GL.TEXTURE_2D, null); >+ GL.bindTexture(GL.TEXTURE_CUBE_MAP, null); >+ GL.deleteTexture(tex); >+ GL.deleteTexture(tex2); >+ } >+ }, >+ texParameterf : { >+ generate : function() { >+ var pname = texParameterPname.random(); >+ var param = texParameterParam[pname].random(); >+ return [bindTextureTarget.random(), pname, param]; >+ }, >+ checkArgValidity : function(target, pname, param) { >+ if (!bindTextureTarget.has(target)) >+ return false; >+ if (!texParameterPname.has(pname)) >+ return false; >+ return texParameterParam[pname].has(param); >+ } >+ }, >+ texParameteri : { >+ generate : function() { >+ var pname = texParameterPname.random(); >+ var param = texParameterParam[pname].random(); >+ return [bindTextureTarget.random(), pname, param]; >+ }, >+ checkArgValidity : function(target, pname, param) { >+ if (!bindTextureTarget.has(target)) >+ return false; >+ if (!texParameterPname.has(pname)) >+ return false; >+ return texParameterParam[pname].has(param); >+ } >+ }, >+ texSubImage2D : {}, // FIXME >+ >+// U >+ >+ uniform1f : {}, // FIXME >+ uniform1fv : {}, // FIXME >+ uniform1i : {}, // FIXME >+ uniform1iv : {}, // FIXME >+ uniform2f : {}, // FIXME >+ uniform2fv : {}, // FIXME >+ uniform2i : {}, // FIXME >+ uniform2iv : {}, // FIXME >+ uniform3f : {}, // FIXME >+ uniform3fv : {}, // FIXME >+ uniform3i : {}, // FIXME >+ uniform3iv : {}, // FIXME >+ uniform4f : {}, // FIXME >+ uniform4fv : {}, // FIXME >+ uniform4i : {}, // FIXME >+ uniform4iv : {}, // FIXME >+ uniformMatrix2fv : {}, // FIXME >+ uniformMatrix3fv : {}, // FIXME >+ uniformMatrix4fv : {}, // FIXME >+ useProgram : {}, // FIXME >+ >+// V >+ >+ validateProgram : {}, // FIXME >+ vertexAttrib1f : {}, // FIXME >+ vertexAttrib1fv : {}, // FIXME >+ vertexAttrib2f : {}, // FIXME >+ vertexAttrib2fv : {}, // FIXME >+ vertexAttrib3f : {}, // FIXME >+ vertexAttrib3fv : {}, // FIXME >+ vertexAttrib4f : {}, // FIXME >+ vertexAttrib4fv : {}, // FIXME >+ vertexAttribPointer : {}, // FIXME >+ viewport : { >+ generate : function() { >+ return [randomInt(3000)-1500, randomInt(3000)-1500, randomIntFromRange(0,3000), randomIntFromRange(0,3000)]; >+ }, >+ checkArgValidity : function(x,y,w,h) { >+ return castToInt(w) >= 0 && castToInt(h) >= 0; >+ }, >+ teardown : function() { >+ GL.viewport(0,0,GL.canvas.width, GL.canvas.height); >+ } >+ } >+ >+}; >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/badArgsArityLessThanArgc.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/badArgsArityLessThanArgc.html >new file mode 100644 >index 00000000000..02c1aed9820 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/badArgsArityLessThanArgc.html >@@ -0,0 +1,597 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+/* >+ The following tests are generated from >+ http://www.khronos.org/registry/gles/api/2.0/gl2.h >+ and api_modifications.txt >+*/ >+Tests.test_activeTexture = function(gl) { >+ assertFail(function(){ gl.activeTexture(); }); >+} >+Tests.test_attachShader = function(gl) { >+ assertFail(function(){ gl.attachShader(); }); >+ assertFail(function(){ gl.attachShader(0); }); >+} >+Tests.test_bindAttribLocation = function(gl) { >+ assertFail(function(){ gl.bindAttribLocation(); }); >+ assertFail(function(){ gl.bindAttribLocation(0); }); >+ assertFail(function(){ gl.bindAttribLocation(0,0); }); >+} >+Tests.test_bindBuffer = function(gl) { >+ assertFail(function(){ gl.bindBuffer(); }); >+ assertFail(function(){ gl.bindBuffer(0); }); >+} >+Tests.test_bindFramebuffer = function(gl) { >+ assertFail(function(){ gl.bindFramebuffer(); }); >+ assertFail(function(){ gl.bindFramebuffer(0); }); >+} >+Tests.test_bindRenderbuffer = function(gl) { >+ assertFail(function(){ gl.bindRenderbuffer(); }); >+ assertFail(function(){ gl.bindRenderbuffer(0); }); >+} >+Tests.test_bindTexture = function(gl) { >+ assertFail(function(){ gl.bindTexture(); }); >+ assertFail(function(){ gl.bindTexture(0); }); >+} >+Tests.test_blendColor = function(gl) { >+ assertFail(function(){ gl.blendColor(); }); >+ assertFail(function(){ gl.blendColor(0); }); >+ assertFail(function(){ gl.blendColor(0,0); }); >+ assertFail(function(){ gl.blendColor(0,0,0); }); >+} >+Tests.test_blendEquation = function(gl) { >+ assertFail(function(){ gl.blendEquation(); }); >+} >+Tests.test_blendEquationSeparate = function(gl) { >+ assertFail(function(){ gl.blendEquationSeparate(); }); >+ assertFail(function(){ gl.blendEquationSeparate(0); }); >+} >+Tests.test_blendFunc = function(gl) { >+ assertFail(function(){ gl.blendFunc(); }); >+ assertFail(function(){ gl.blendFunc(0); }); >+} >+Tests.test_blendFuncSeparate = function(gl) { >+ assertFail(function(){ gl.blendFuncSeparate(); }); >+ assertFail(function(){ gl.blendFuncSeparate(0); }); >+ assertFail(function(){ gl.blendFuncSeparate(0,0); }); >+ assertFail(function(){ gl.blendFuncSeparate(0,0,0); }); >+} >+Tests.test_bufferData = function(gl) { >+ assertFail(function(){ gl.bufferData(); }); >+ assertFail(function(){ gl.bufferData(0); }); >+ assertFail(function(){ gl.bufferData(0,0); }); >+} >+Tests.test_bufferSubData = function(gl) { >+ assertFail(function(){ gl.bufferSubData(); }); >+ assertFail(function(){ gl.bufferSubData(0); }); >+ assertFail(function(){ gl.bufferSubData(0,0); }); >+} >+Tests.test_checkFramebufferStatus = function(gl) { >+ assertFail(function(){ gl.checkFramebufferStatus(); }); >+} >+Tests.test_clear = function(gl) { >+ assertFail(function(){ gl.clear(); }); >+} >+Tests.test_clearColor = function(gl) { >+ assertFail(function(){ gl.clearColor(); }); >+ assertFail(function(){ gl.clearColor(0); }); >+ assertFail(function(){ gl.clearColor(0,0); }); >+ assertFail(function(){ gl.clearColor(0,0,0); }); >+} >+Tests.test_clearDepth = function(gl) { >+ assertFail(function(){ gl.clearDepth(); }); >+} >+Tests.test_clearStencil = function(gl) { >+ assertFail(function(){ gl.clearStencil(); }); >+} >+Tests.test_colorMask = function(gl) { >+ assertFail(function(){ gl.colorMask(); }); >+ assertFail(function(){ gl.colorMask(0); }); >+ assertFail(function(){ gl.colorMask(0,0); }); >+ assertFail(function(){ gl.colorMask(0,0,0); }); >+} >+Tests.test_compileShader = function(gl) { >+ assertFail(function(){ gl.compileShader(); }); >+} >+Tests.test_copyTexImage2D = function(gl) { >+ assertFail(function(){ gl.copyTexImage2D(); }); >+ assertFail(function(){ gl.copyTexImage2D(0); }); >+ assertFail(function(){ gl.copyTexImage2D(0,0); }); >+ assertFail(function(){ gl.copyTexImage2D(0,0,0); }); >+ assertFail(function(){ gl.copyTexImage2D(0,0,0,0); }); >+ assertFail(function(){ gl.copyTexImage2D(0,0,0,0,0); }); >+ assertFail(function(){ gl.copyTexImage2D(0,0,0,0,0,0); }); >+ assertFail(function(){ gl.copyTexImage2D(0,0,0,0,0,0,0); }); >+} >+Tests.test_copyTexSubImage2D = function(gl) { >+ assertFail(function(){ gl.copyTexSubImage2D(); }); >+ assertFail(function(){ gl.copyTexSubImage2D(0); }); >+ assertFail(function(){ gl.copyTexSubImage2D(0,0); }); >+ assertFail(function(){ gl.copyTexSubImage2D(0,0,0); }); >+ assertFail(function(){ gl.copyTexSubImage2D(0,0,0,0); }); >+ assertFail(function(){ gl.copyTexSubImage2D(0,0,0,0,0); }); >+ assertFail(function(){ gl.copyTexSubImage2D(0,0,0,0,0,0); }); >+ assertFail(function(){ gl.copyTexSubImage2D(0,0,0,0,0,0,0); }); >+} >+Tests.test_createProgram = function(gl) { >+} >+Tests.test_createShader = function(gl) { >+ assertFail(function(){ gl.createShader(); }); >+} >+Tests.test_cullFace = function(gl) { >+ assertFail(function(){ gl.cullFace(); }); >+} >+Tests.test_deleteBuffer = function(gl) { >+ assertFail(function(){ gl.deleteBuffer(); }); >+} >+Tests.test_deleteFramebuffer = function(gl) { >+ assertFail(function(){ gl.deleteFramebuffer(); }); >+} >+Tests.test_deleteProgram = function(gl) { >+ assertFail(function(){ gl.deleteProgram(); }); >+} >+Tests.test_deleteRenderbuffer = function(gl) { >+ assertFail(function(){ gl.deleteRenderbuffer(); }); >+} >+Tests.test_deleteShader = function(gl) { >+ assertFail(function(){ gl.deleteShader(); }); >+} >+Tests.test_deleteTexture = function(gl) { >+ assertFail(function(){ gl.deleteTexture(); }); >+} >+Tests.test_depthFunc = function(gl) { >+ assertFail(function(){ gl.depthFunc(); }); >+} >+Tests.test_depthMask = function(gl) { >+ assertFail(function(){ gl.depthMask(); }); >+} >+Tests.test_depthRange = function(gl) { >+ assertFail(function(){ gl.depthRange(); }); >+ assertFail(function(){ gl.depthRange(0); }); >+} >+Tests.test_detachShader = function(gl) { >+ assertFail(function(){ gl.detachShader(); }); >+ assertFail(function(){ gl.detachShader(0); }); >+} >+Tests.test_disable = function(gl) { >+ assertFail(function(){ gl.disable(); }); >+} >+Tests.test_disableVertexAttribArray = function(gl) { >+ assertFail(function(){ gl.disableVertexAttribArray(); }); >+} >+Tests.test_drawArrays = function(gl) { >+ assertFail(function(){ gl.drawArrays(); }); >+ assertFail(function(){ gl.drawArrays(0); }); >+ assertFail(function(){ gl.drawArrays(0,0); }); >+} >+Tests.test_drawElements = function(gl) { >+ assertFail(function(){ gl.drawElements(); }); >+ assertFail(function(){ gl.drawElements(0); }); >+ assertFail(function(){ gl.drawElements(0,0); }); >+ assertFail(function(){ gl.drawElements(0,0,0); }); >+} >+Tests.test_enable = function(gl) { >+ assertFail(function(){ gl.enable(); }); >+} >+Tests.test_enableVertexAttribArray = function(gl) { >+ assertFail(function(){ gl.enableVertexAttribArray(); }); >+} >+Tests.test_finish = function(gl) { >+} >+Tests.test_flush = function(gl) { >+} >+Tests.test_framebufferRenderbuffer = function(gl) { >+ assertFail(function(){ gl.framebufferRenderbuffer(); }); >+ assertFail(function(){ gl.framebufferRenderbuffer(0); }); >+ assertFail(function(){ gl.framebufferRenderbuffer(0,0); }); >+ assertFail(function(){ gl.framebufferRenderbuffer(0,0,0); }); >+} >+Tests.test_framebufferTexture2D = function(gl) { >+ assertFail(function(){ gl.framebufferTexture2D(); }); >+ assertFail(function(){ gl.framebufferTexture2D(0); }); >+ assertFail(function(){ gl.framebufferTexture2D(0,0); }); >+ assertFail(function(){ gl.framebufferTexture2D(0,0,0); }); >+ assertFail(function(){ gl.framebufferTexture2D(0,0,0,0); }); >+} >+Tests.test_frontFace = function(gl) { >+ assertFail(function(){ gl.frontFace(); }); >+} >+Tests.test_createBuffer = function(gl) { >+} >+Tests.test_generateMipmap = function(gl) { >+ assertFail(function(){ gl.generateMipmap(); }); >+} >+Tests.test_createFramebuffer = function(gl) { >+} >+Tests.test_createRenderbuffer = function(gl) { >+} >+Tests.test_createTexture = function(gl) { >+} >+Tests.test_getActiveAttrib = function(gl) { >+ assertFail(function(){ gl.getActiveAttrib(); }); >+ assertFail(function(){ gl.getActiveAttrib(0); }); >+} >+Tests.test_getActiveUniform = function(gl) { >+ assertFail(function(){ gl.getActiveUniform(); }); >+ assertFail(function(){ gl.getActiveUniform(0); }); >+} >+Tests.test_getAttachedShaders = function(gl) { >+ assertFail(function(){ gl.getAttachedShaders(); }); >+} >+Tests.test_getAttribLocation = function(gl) { >+ assertFail(function(){ gl.getAttribLocation(); }); >+ assertFail(function(){ gl.getAttribLocation(0); }); >+} >+Tests.test_getBufferParameteri = function(gl) { >+ assertFail(function(){ gl.getBufferParameteri(); }); >+ assertFail(function(){ gl.getBufferParameteri(0); }); >+} >+Tests.test_getError = function(gl) { >+} >+Tests.test_getFramebufferAttachmentParameteri = function(gl) { >+ assertFail(function(){ gl.getFramebufferAttachmentParameteri(); }); >+ assertFail(function(){ gl.getFramebufferAttachmentParameteri(0); }); >+ assertFail(function(){ gl.getFramebufferAttachmentParameteri(0,0); }); >+} >+Tests.test_getProgramInfoLog = function(gl) { >+ assertFail(function(){ gl.getProgramInfoLog(); }); >+} >+Tests.test_getRenderbufferParameteri = function(gl) { >+ assertFail(function(){ gl.getRenderbufferParameteri(); }); >+ assertFail(function(){ gl.getRenderbufferParameteri(0); }); >+} >+Tests.test_getShaderInfoLog = function(gl) { >+ assertFail(function(){ gl.getShaderInfoLog(); }); >+} >+Tests.test_getShaderSource = function(gl) { >+ assertFail(function(){ gl.getShaderSource(); }); >+} >+Tests.test_getUniformLocation = function(gl) { >+ assertFail(function(){ gl.getUniformLocation(); }); >+ assertFail(function(){ gl.getUniformLocation(0); }); >+} >+Tests.test_hint = function(gl) { >+ assertFail(function(){ gl.hint(); }); >+ assertFail(function(){ gl.hint(0); }); >+} >+Tests.test_isBuffer = function(gl) { >+ assertFail(function(){ gl.isBuffer(); }); >+} >+Tests.test_isEnabled = function(gl) { >+ assertFail(function(){ gl.isEnabled(); }); >+} >+Tests.test_isFramebuffer = function(gl) { >+ assertFail(function(){ gl.isFramebuffer(); }); >+} >+Tests.test_isProgram = function(gl) { >+ assertFail(function(){ gl.isProgram(); }); >+} >+Tests.test_isRenderbuffer = function(gl) { >+ assertFail(function(){ gl.isRenderbuffer(); }); >+} >+Tests.test_isShader = function(gl) { >+ assertFail(function(){ gl.isShader(); }); >+} >+Tests.test_isTexture = function(gl) { >+ assertFail(function(){ gl.isTexture(); }); >+} >+Tests.test_lineWidth = function(gl) { >+ assertFail(function(){ gl.lineWidth(); }); >+} >+Tests.test_linkProgram = function(gl) { >+ assertFail(function(){ gl.linkProgram(); }); >+} >+Tests.test_polygonOffset = function(gl) { >+ assertFail(function(){ gl.polygonOffset(); }); >+ assertFail(function(){ gl.polygonOffset(0); }); >+} >+Tests.test_readPixels = function(gl) { >+ assertFail(function(){ gl.readPixels(); }); >+ assertFail(function(){ gl.readPixels(0); }); >+ assertFail(function(){ gl.readPixels(0,0); }); >+ assertFail(function(){ gl.readPixels(0,0,0); }); >+ assertFail(function(){ gl.readPixels(0,0,0,0); }); >+ assertFail(function(){ gl.readPixels(0,0,0,0,0); }); >+} >+Tests.test_renderbufferStorage = function(gl) { >+ assertFail(function(){ gl.renderbufferStorage(); }); >+ assertFail(function(){ gl.renderbufferStorage(0); }); >+ assertFail(function(){ gl.renderbufferStorage(0,0); }); >+ assertFail(function(){ gl.renderbufferStorage(0,0,0); }); >+} >+Tests.test_sampleCoverage = function(gl) { >+ assertFail(function(){ gl.sampleCoverage(); }); >+ assertFail(function(){ gl.sampleCoverage(0); }); >+} >+Tests.test_scissor = function(gl) { >+ assertFail(function(){ gl.scissor(); }); >+ assertFail(function(){ gl.scissor(0); }); >+ assertFail(function(){ gl.scissor(0,0); }); >+ assertFail(function(){ gl.scissor(0,0,0); }); >+} >+Tests.test_shaderSource = function(gl) { >+ assertFail(function(){ gl.shaderSource(); }); >+ assertFail(function(){ gl.shaderSource(0); }); >+} >+Tests.test_stencilFunc = function(gl) { >+ assertFail(function(){ gl.stencilFunc(); }); >+ assertFail(function(){ gl.stencilFunc(0); }); >+ assertFail(function(){ gl.stencilFunc(0,0); }); >+} >+Tests.test_stencilFuncSeparate = function(gl) { >+ assertFail(function(){ gl.stencilFuncSeparate(); }); >+ assertFail(function(){ gl.stencilFuncSeparate(0); }); >+ assertFail(function(){ gl.stencilFuncSeparate(0,0); }); >+ assertFail(function(){ gl.stencilFuncSeparate(0,0,0); }); >+} >+Tests.test_stencilMask = function(gl) { >+ assertFail(function(){ gl.stencilMask(); }); >+} >+Tests.test_stencilMaskSeparate = function(gl) { >+ assertFail(function(){ gl.stencilMaskSeparate(); }); >+ assertFail(function(){ gl.stencilMaskSeparate(0); }); >+} >+Tests.test_stencilOp = function(gl) { >+ assertFail(function(){ gl.stencilOp(); }); >+ assertFail(function(){ gl.stencilOp(0); }); >+ assertFail(function(){ gl.stencilOp(0,0); }); >+} >+Tests.test_stencilOpSeparate = function(gl) { >+ assertFail(function(){ gl.stencilOpSeparate(); }); >+ assertFail(function(){ gl.stencilOpSeparate(0); }); >+ assertFail(function(){ gl.stencilOpSeparate(0,0); }); >+ assertFail(function(){ gl.stencilOpSeparate(0,0,0); }); >+} >+Tests.test_texImage2D = function(gl) { >+ assertFail(function(){ gl.texImage2D(); }); >+ assertFail(function(){ gl.texImage2D(0); }); >+ assertFail(function(){ gl.texImage2D(0,0); }); >+} >+Tests.test_texParameteri = function(gl) { >+ assertFail(function(){ gl.texParameteri(); }); >+ assertFail(function(){ gl.texParameteri(0); }); >+ assertFail(function(){ gl.texParameteri(0,0); }); >+} >+Tests.test_texSubImage2D = function(gl) { >+ assertFail(function(){ gl.texSubImage2D(); }); >+ assertFail(function(){ gl.texSubImage2D(0); }); >+ assertFail(function(){ gl.texSubImage2D(0,0); }); >+ assertFail(function(){ gl.texSubImage2D(0,0,0); }); >+ assertFail(function(){ gl.texSubImage2D(0,0,0,0); }); >+ assertFail(function(){ gl.texSubImage2D(0,0,0,0,0); }); >+ assertFail(function(){ gl.texSubImage2D(0,0,0,0,0,0); }); >+ assertFail(function(){ gl.texSubImage2D(0,0,0,0,0,0,0); }); >+ assertFail(function(){ gl.texSubImage2D(0,0,0,0,0,0,0,0); }); >+} >+Tests.test_uniform1f = function(gl) { >+ assertFail(function(){ gl.uniform1f(); }); >+ assertFail(function(){ gl.uniform1f(0); }); >+} >+Tests.test_uniform1fv = function(gl) { >+ assertFail(function(){ gl.uniform1fv(); }); >+ assertFail(function(){ gl.uniform1fv(0); }); >+} >+Tests.test_uniform1i = function(gl) { >+ assertFail(function(){ gl.uniform1i(); }); >+ assertFail(function(){ gl.uniform1i(0); }); >+} >+Tests.test_uniform1iv = function(gl) { >+ assertFail(function(){ gl.uniform1iv(); }); >+ assertFail(function(){ gl.uniform1iv(0); }); >+} >+Tests.test_uniform2f = function(gl) { >+ assertFail(function(){ gl.uniform2f(); }); >+ assertFail(function(){ gl.uniform2f(0); }); >+ assertFail(function(){ gl.uniform2f(0,0); }); >+} >+Tests.test_uniform2fv = function(gl) { >+ assertFail(function(){ gl.uniform2fv(); }); >+ assertFail(function(){ gl.uniform2fv(0); }); >+} >+Tests.test_uniform2i = function(gl) { >+ assertFail(function(){ gl.uniform2i(); }); >+ assertFail(function(){ gl.uniform2i(0); }); >+ assertFail(function(){ gl.uniform2i(0,0); }); >+} >+Tests.test_uniform2iv = function(gl) { >+ assertFail(function(){ gl.uniform2iv(); }); >+ assertFail(function(){ gl.uniform2iv(0); }); >+} >+Tests.test_uniform3f = function(gl) { >+ assertFail(function(){ gl.uniform3f(); }); >+ assertFail(function(){ gl.uniform3f(0); }); >+ assertFail(function(){ gl.uniform3f(0,0); }); >+ assertFail(function(){ gl.uniform3f(0,0,0); }); >+} >+Tests.test_uniform3fv = function(gl) { >+ assertFail(function(){ gl.uniform3fv(); }); >+ assertFail(function(){ gl.uniform3fv(0); }); >+} >+Tests.test_uniform3i = function(gl) { >+ assertFail(function(){ gl.uniform3i(); }); >+ assertFail(function(){ gl.uniform3i(0); }); >+ assertFail(function(){ gl.uniform3i(0,0); }); >+ assertFail(function(){ gl.uniform3i(0,0,0); }); >+} >+Tests.test_uniform3iv = function(gl) { >+ assertFail(function(){ gl.uniform3iv(); }); >+ assertFail(function(){ gl.uniform3iv(0); }); >+} >+Tests.test_uniform4f = function(gl) { >+ assertFail(function(){ gl.uniform4f(); }); >+ assertFail(function(){ gl.uniform4f(0); }); >+ assertFail(function(){ gl.uniform4f(0,0); }); >+ assertFail(function(){ gl.uniform4f(0,0,0); }); >+ assertFail(function(){ gl.uniform4f(0,0,0,0); }); >+} >+Tests.test_uniform4fv = function(gl) { >+ assertFail(function(){ gl.uniform4fv(); }); >+ assertFail(function(){ gl.uniform4fv(0); }); >+} >+Tests.test_uniform4i = function(gl) { >+ assertFail(function(){ gl.uniform4i(); }); >+ assertFail(function(){ gl.uniform4i(0); }); >+ assertFail(function(){ gl.uniform4i(0,0); }); >+ assertFail(function(){ gl.uniform4i(0,0,0); }); >+ assertFail(function(){ gl.uniform4i(0,0,0,0); }); >+} >+Tests.test_uniform4iv = function(gl) { >+ assertFail(function(){ gl.uniform4iv(); }); >+ assertFail(function(){ gl.uniform4iv(0); }); >+} >+Tests.test_uniformMatrix2fv = function(gl) { >+ assertFail(function(){ gl.uniformMatrix2fv(); }); >+ assertFail(function(){ gl.uniformMatrix2fv(0); }); >+ assertFail(function(){ gl.uniformMatrix2fv(0,0); }); >+} >+Tests.test_uniformMatrix3fv = function(gl) { >+ assertFail(function(){ gl.uniformMatrix3fv(); }); >+ assertFail(function(){ gl.uniformMatrix3fv(0); }); >+ assertFail(function(){ gl.uniformMatrix3fv(0,0); }); >+} >+Tests.test_uniformMatrix4fv = function(gl) { >+ assertFail(function(){ gl.uniformMatrix4fv(); }); >+ assertFail(function(){ gl.uniformMatrix4fv(0); }); >+ assertFail(function(){ gl.uniformMatrix4fv(0,0); }); >+} >+Tests.test_useProgram = function(gl) { >+ assertFail(function(){ gl.useProgram(); }); >+} >+Tests.test_validateProgram = function(gl) { >+ assertFail(function(){ gl.validateProgram(); }); >+} >+Tests.test_vertexAttrib1f = function(gl) { >+ assertFail(function(){ gl.vertexAttrib1f(); }); >+ assertFail(function(){ gl.vertexAttrib1f(0); }); >+} >+Tests.test_vertexAttrib1fv = function(gl) { >+ assertFail(function(){ gl.vertexAttrib1fv(); }); >+ assertFail(function(){ gl.vertexAttrib1fv(0); }); >+} >+Tests.test_vertexAttrib2f = function(gl) { >+ assertFail(function(){ gl.vertexAttrib2f(); }); >+ assertFail(function(){ gl.vertexAttrib2f(0); }); >+ assertFail(function(){ gl.vertexAttrib2f(0,0); }); >+} >+Tests.test_vertexAttrib2fv = function(gl) { >+ assertFail(function(){ gl.vertexAttrib2fv(); }); >+ assertFail(function(){ gl.vertexAttrib2fv(0); }); >+} >+Tests.test_vertexAttrib3f = function(gl) { >+ assertFail(function(){ gl.vertexAttrib3f(); }); >+ assertFail(function(){ gl.vertexAttrib3f(0); }); >+ assertFail(function(){ gl.vertexAttrib3f(0,0); }); >+ assertFail(function(){ gl.vertexAttrib3f(0,0,0); }); >+} >+Tests.test_vertexAttrib3fv = function(gl) { >+ assertFail(function(){ gl.vertexAttrib3fv(); }); >+ assertFail(function(){ gl.vertexAttrib3fv(0); }); >+} >+Tests.test_vertexAttrib4f = function(gl) { >+ assertFail(function(){ gl.vertexAttrib4f(); }); >+ assertFail(function(){ gl.vertexAttrib4f(0); }); >+ assertFail(function(){ gl.vertexAttrib4f(0,0); }); >+ assertFail(function(){ gl.vertexAttrib4f(0,0,0); }); >+ assertFail(function(){ gl.vertexAttrib4f(0,0,0,0); }); >+} >+Tests.test_vertexAttrib4fv = function(gl) { >+ assertFail(function(){ gl.vertexAttrib4fv(); }); >+ assertFail(function(){ gl.vertexAttrib4fv(0); }); >+} >+Tests.test_vertexAttribPointer = function(gl) { >+ assertFail(function(){ gl.vertexAttribPointer(); }); >+ assertFail(function(){ gl.vertexAttribPointer(0); }); >+ assertFail(function(){ gl.vertexAttribPointer(0,0); }); >+ assertFail(function(){ gl.vertexAttribPointer(0,0,0); }); >+ assertFail(function(){ gl.vertexAttribPointer(0,0,0,0); }); >+ assertFail(function(){ gl.vertexAttribPointer(0,0,0,0,0); }); >+} >+Tests.test_viewport = function(gl) { >+ assertFail(function(){ gl.viewport(); }); >+ assertFail(function(){ gl.viewport(0); }); >+ assertFail(function(){ gl.viewport(0,0); }); >+ assertFail(function(){ gl.viewport(0,0,0); }); >+} >+Tests.test_currentArrayBufferBinding = function(gl) { >+} >+Tests.test_currentElementArrayBufferBinding = function(gl) { >+} >+Tests.test_currentFramebufferBinding = function(gl) { >+} >+Tests.test_currentRenderbufferBinding = function(gl) { >+} >+Tests.test_currentTextureBinding2D = function(gl) { >+} >+Tests.test_currentTextureBindingCubeMap = function(gl) { >+} >+Tests.test_currentProgram = function(gl) { >+} >+Tests.test_getParameter = function(gl) { >+ assertFail(function(){ gl.getParameter(); }); >+} >+Tests.test_getProgramParameter = function(gl) { >+ assertFail(function(){ gl.getProgramParameter(); }); >+ assertFail(function(){ gl.getProgramParameter(0); }); >+} >+Tests.test_getShaderParameter = function(gl) { >+ assertFail(function(){ gl.getShaderParameter(); }); >+ assertFail(function(){ gl.getShaderParameter(0); }); >+} >+Tests.test_getTexParameteri = function(gl) { >+ assertFail(function(){ gl.getTexParameteri(); }); >+ assertFail(function(){ gl.getTexParameteri(0); }); >+} >+Tests.test_getUniformi = function(gl) { >+ assertFail(function(){ gl.getUniformi(); }); >+ assertFail(function(){ gl.getUniformi(0); }); >+} >+Tests.test_getVertexAttribi = function(gl) { >+ assertFail(function(){ gl.getVertexAttribi(); }); >+ assertFail(function(){ gl.getVertexAttribi(0); }); >+} >+Tests.test_present = function(gl) { >+} >+Tests.startUnit = function() { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+ <canvas id="gl" width="1" height="1"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/constants.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/constants.html >new file mode 100644 >index 00000000000..45467ea9f94 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/constants.html >@@ -0,0 +1,371 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+/* >+ The following tests are generated from >+ http://www.khronos.org/registry/gles/api/2.0/gl2.h >+ and api_modifications.txt >+*/ >+var constants = { >+DEPTH_BUFFER_BIT : 0x00000100, >+STENCIL_BUFFER_BIT : 0x00000400, >+COLOR_BUFFER_BIT : 0x00004000, >+POINTS : 0x0000, >+LINES : 0x0001, >+LINE_LOOP : 0x0002, >+LINE_STRIP : 0x0003, >+TRIANGLES : 0x0004, >+TRIANGLE_STRIP : 0x0005, >+TRIANGLE_FAN : 0x0006, >+ZERO : 0, >+ONE : 1, >+SRC_COLOR : 0x0300, >+ONE_MINUS_SRC_COLOR : 0x0301, >+SRC_ALPHA : 0x0302, >+ONE_MINUS_SRC_ALPHA : 0x0303, >+DST_ALPHA : 0x0304, >+ONE_MINUS_DST_ALPHA : 0x0305, >+DST_COLOR : 0x0306, >+ONE_MINUS_DST_COLOR : 0x0307, >+SRC_ALPHA_SATURATE : 0x0308, >+FUNC_ADD : 0x8006, >+BLEND_EQUATION : 0x8009, >+BLEND_EQUATION_RGB : 0x8009, >+BLEND_EQUATION_ALPHA : 0x883D, >+FUNC_SUBTRACT : 0x800A, >+FUNC_REVERSE_SUBTRACT : 0x800B, >+BLEND_DST_RGB : 0x80C8, >+BLEND_SRC_RGB : 0x80C9, >+BLEND_DST_ALPHA : 0x80CA, >+BLEND_SRC_ALPHA : 0x80CB, >+CONSTANT_COLOR : 0x8001, >+ONE_MINUS_CONSTANT_COLOR : 0x8002, >+CONSTANT_ALPHA : 0x8003, >+ONE_MINUS_CONSTANT_ALPHA : 0x8004, >+BLEND_COLOR : 0x8005, >+ARRAY_BUFFER : 0x8892, >+ELEMENT_ARRAY_BUFFER : 0x8893, >+ARRAY_BUFFER_BINDING : 0x8894, >+ELEMENT_ARRAY_BUFFER_BINDING : 0x8895, >+STREAM_DRAW : 0x88E0, >+STATIC_DRAW : 0x88E4, >+DYNAMIC_DRAW : 0x88E8, >+BUFFER_SIZE : 0x8764, >+BUFFER_USAGE : 0x8765, >+CURRENT_VERTEX_ATTRIB : 0x8626, >+FRONT : 0x0404, >+BACK : 0x0405, >+FRONT_AND_BACK : 0x0408, >+TEXTURE_2D : 0x0DE1, >+CULL_FACE : 0x0B44, >+BLEND : 0x0BE2, >+DITHER : 0x0BD0, >+STENCIL_TEST : 0x0B90, >+DEPTH_TEST : 0x0B71, >+SCISSOR_TEST : 0x0C11, >+POLYGON_OFFSET_FILL : 0x8037, >+SAMPLE_ALPHA_TO_COVERAGE : 0x809E, >+SAMPLE_COVERAGE : 0x80A0, >+NO_ERROR : 0, >+INVALID_ENUM : 0x0500, >+INVALID_VALUE : 0x0501, >+INVALID_OPERATION : 0x0502, >+OUT_OF_MEMORY : 0x0505, >+CW : 0x0900, >+CCW : 0x0901, >+LINE_WIDTH : 0x0B21, >+ALIASED_POINT_SIZE_RANGE : 0x846D, >+ALIASED_LINE_WIDTH_RANGE : 0x846E, >+CULL_FACE_MODE : 0x0B45, >+FRONT_FACE : 0x0B46, >+DEPTH_RANGE : 0x0B70, >+DEPTH_WRITEMASK : 0x0B72, >+DEPTH_CLEAR_VALUE : 0x0B73, >+DEPTH_FUNC : 0x0B74, >+STENCIL_CLEAR_VALUE : 0x0B91, >+STENCIL_FUNC : 0x0B92, >+STENCIL_FAIL : 0x0B94, >+STENCIL_PASS_DEPTH_FAIL : 0x0B95, >+STENCIL_PASS_DEPTH_PASS : 0x0B96, >+STENCIL_REF : 0x0B97, >+STENCIL_VALUE_MASK : 0x0B93, >+STENCIL_WRITEMASK : 0x0B98, >+STENCIL_BACK_FUNC : 0x8800, >+STENCIL_BACK_FAIL : 0x8801, >+STENCIL_BACK_PASS_DEPTH_FAIL : 0x8802, >+STENCIL_BACK_PASS_DEPTH_PASS : 0x8803, >+STENCIL_BACK_REF : 0x8CA3, >+STENCIL_BACK_VALUE_MASK : 0x8CA4, >+STENCIL_BACK_WRITEMASK : 0x8CA5, >+VIEWPORT : 0x0BA2, >+SCISSOR_BOX : 0x0C10, >+COLOR_CLEAR_VALUE : 0x0C22, >+COLOR_WRITEMASK : 0x0C23, >+UNPACK_ALIGNMENT : 0x0CF5, >+PACK_ALIGNMENT : 0x0D05, >+MAX_TEXTURE_SIZE : 0x0D33, >+MAX_VIEWPORT_DIMS : 0x0D3A, >+SUBPIXEL_BITS : 0x0D50, >+RED_BITS : 0x0D52, >+GREEN_BITS : 0x0D53, >+BLUE_BITS : 0x0D54, >+ALPHA_BITS : 0x0D55, >+DEPTH_BITS : 0x0D56, >+STENCIL_BITS : 0x0D57, >+POLYGON_OFFSET_UNITS : 0x2A00, >+POLYGON_OFFSET_FACTOR : 0x8038, >+TEXTURE_BINDING_2D : 0x8069, >+SAMPLE_BUFFERS : 0x80A8, >+SAMPLES : 0x80A9, >+SAMPLE_COVERAGE_VALUE : 0x80AA, >+SAMPLE_COVERAGE_INVERT : 0x80AB, >+COMPRESSED_TEXTURE_FORMATS : 0x86A3, >+DONT_CARE : 0x1100, >+FASTEST : 0x1101, >+NICEST : 0x1102, >+GENERATE_MIPMAP_HINT : 0x8192, >+BYTE : 0x1400, >+UNSIGNED_BYTE : 0x1401, >+SHORT : 0x1402, >+UNSIGNED_SHORT : 0x1403, >+INT : 0x1404, >+UNSIGNED_INT : 0x1405, >+FLOAT : 0x1406, >+//FIXED : 0x140C, >+DEPTH_COMPONENT : 0x1902, >+ALPHA : 0x1906, >+RGB : 0x1907, >+RGBA : 0x1908, >+LUMINANCE : 0x1909, >+LUMINANCE_ALPHA : 0x190A, >+UNSIGNED_SHORT_4_4_4_4 : 0x8033, >+UNSIGNED_SHORT_5_5_5_1 : 0x8034, >+UNSIGNED_SHORT_5_6_5 : 0x8363, >+FRAGMENT_SHADER : 0x8B30, >+VERTEX_SHADER : 0x8B31, >+MAX_VERTEX_ATTRIBS : 0x8869, >+MAX_VERTEX_UNIFORM_VECTORS : 0x8DFB, >+MAX_VARYING_VECTORS : 0x8DFC, >+MAX_COMBINED_TEXTURE_IMAGE_UNITS : 0x8B4D, >+MAX_VERTEX_TEXTURE_IMAGE_UNITS : 0x8B4C, >+MAX_TEXTURE_IMAGE_UNITS : 0x8872, >+MAX_FRAGMENT_UNIFORM_VECTORS : 0x8DFD, >+SHADER_TYPE : 0x8B4F, >+DELETE_STATUS : 0x8B80, >+LINK_STATUS : 0x8B82, >+VALIDATE_STATUS : 0x8B83, >+ATTACHED_SHADERS : 0x8B85, >+ACTIVE_UNIFORMS : 0x8B86, >+ACTIVE_ATTRIBUTES : 0x8B89, >+SHADING_LANGUAGE_VERSION : 0x8B8C, >+CURRENT_PROGRAM : 0x8B8D, >+NEVER : 0x0200, >+LESS : 0x0201, >+EQUAL : 0x0202, >+LEQUAL : 0x0203, >+GREATER : 0x0204, >+NOTEQUAL : 0x0205, >+GEQUAL : 0x0206, >+ALWAYS : 0x0207, >+KEEP : 0x1E00, >+REPLACE : 0x1E01, >+INCR : 0x1E02, >+DECR : 0x1E03, >+INVERT : 0x150A, >+INCR_WRAP : 0x8507, >+DECR_WRAP : 0x8508, >+VENDOR : 0x1F00, >+RENDERER : 0x1F01, >+VERSION : 0x1F02, >+//EXTENSIONS : 0x1F03, >+NEAREST : 0x2600, >+LINEAR : 0x2601, >+NEAREST_MIPMAP_NEAREST : 0x2700, >+LINEAR_MIPMAP_NEAREST : 0x2701, >+NEAREST_MIPMAP_LINEAR : 0x2702, >+LINEAR_MIPMAP_LINEAR : 0x2703, >+TEXTURE_MAG_FILTER : 0x2800, >+TEXTURE_MIN_FILTER : 0x2801, >+TEXTURE_WRAP_S : 0x2802, >+TEXTURE_WRAP_T : 0x2803, >+TEXTURE : 0x1702, >+TEXTURE_CUBE_MAP : 0x8513, >+TEXTURE_BINDING_CUBE_MAP : 0x8514, >+TEXTURE_CUBE_MAP_POSITIVE_X : 0x8515, >+TEXTURE_CUBE_MAP_NEGATIVE_X : 0x8516, >+TEXTURE_CUBE_MAP_POSITIVE_Y : 0x8517, >+TEXTURE_CUBE_MAP_NEGATIVE_Y : 0x8518, >+TEXTURE_CUBE_MAP_POSITIVE_Z : 0x8519, >+TEXTURE_CUBE_MAP_NEGATIVE_Z : 0x851A, >+MAX_CUBE_MAP_TEXTURE_SIZE : 0x851C, >+TEXTURE0 : 0x84C0, >+TEXTURE1 : 0x84C1, >+TEXTURE2 : 0x84C2, >+TEXTURE3 : 0x84C3, >+TEXTURE4 : 0x84C4, >+TEXTURE5 : 0x84C5, >+TEXTURE6 : 0x84C6, >+TEXTURE7 : 0x84C7, >+TEXTURE8 : 0x84C8, >+TEXTURE9 : 0x84C9, >+TEXTURE10 : 0x84CA, >+TEXTURE11 : 0x84CB, >+TEXTURE12 : 0x84CC, >+TEXTURE13 : 0x84CD, >+TEXTURE14 : 0x84CE, >+TEXTURE15 : 0x84CF, >+TEXTURE16 : 0x84D0, >+TEXTURE17 : 0x84D1, >+TEXTURE18 : 0x84D2, >+TEXTURE19 : 0x84D3, >+TEXTURE20 : 0x84D4, >+TEXTURE21 : 0x84D5, >+TEXTURE22 : 0x84D6, >+TEXTURE23 : 0x84D7, >+TEXTURE24 : 0x84D8, >+TEXTURE25 : 0x84D9, >+TEXTURE26 : 0x84DA, >+TEXTURE27 : 0x84DB, >+TEXTURE28 : 0x84DC, >+TEXTURE29 : 0x84DD, >+TEXTURE30 : 0x84DE, >+TEXTURE31 : 0x84DF, >+ACTIVE_TEXTURE : 0x84E0, >+REPEAT : 0x2901, >+CLAMP_TO_EDGE : 0x812F, >+MIRRORED_REPEAT : 0x8370, >+FLOAT_VEC2 : 0x8B50, >+FLOAT_VEC3 : 0x8B51, >+FLOAT_VEC4 : 0x8B52, >+INT_VEC2 : 0x8B53, >+INT_VEC3 : 0x8B54, >+INT_VEC4 : 0x8B55, >+BOOL : 0x8B56, >+BOOL_VEC2 : 0x8B57, >+BOOL_VEC3 : 0x8B58, >+BOOL_VEC4 : 0x8B59, >+FLOAT_MAT2 : 0x8B5A, >+FLOAT_MAT3 : 0x8B5B, >+FLOAT_MAT4 : 0x8B5C, >+SAMPLER_2D : 0x8B5E, >+SAMPLER_CUBE : 0x8B60, >+VERTEX_ATTRIB_ARRAY_ENABLED : 0x8622, >+VERTEX_ATTRIB_ARRAY_SIZE : 0x8623, >+VERTEX_ATTRIB_ARRAY_STRIDE : 0x8624, >+VERTEX_ATTRIB_ARRAY_TYPE : 0x8625, >+VERTEX_ATTRIB_ARRAY_NORMALIZED : 0x886A, >+VERTEX_ATTRIB_ARRAY_POINTER : 0x8645, >+VERTEX_ATTRIB_ARRAY_BUFFER_BINDING : 0x889F, >+//IMPLEMENTATION_COLOR_READ_TYPE : 0x8B9A, >+//IMPLEMENTATION_COLOR_READ_FORMAT : 0x8B9B, >+COMPILE_STATUS : 0x8B81, >+//SHADER_COMPILER : 0x8DFA, >+LOW_FLOAT : 0x8DF0, >+MEDIUM_FLOAT : 0x8DF1, >+HIGH_FLOAT : 0x8DF2, >+LOW_INT : 0x8DF3, >+MEDIUM_INT : 0x8DF4, >+HIGH_INT : 0x8DF5, >+FRAMEBUFFER : 0x8D40, >+RENDERBUFFER : 0x8D41, >+RGBA4 : 0x8056, >+RGB5_A1 : 0x8057, >+RGB565 : 0x8D62, >+DEPTH_COMPONENT16 : 0x81A5, >+STENCIL_INDEX8 : 0x8D48, >+DEPTH_STENCIL : 0x84F9, >+RENDERBUFFER_WIDTH : 0x8D42, >+RENDERBUFFER_HEIGHT : 0x8D43, >+RENDERBUFFER_INTERNAL_FORMAT : 0x8D44, >+RENDERBUFFER_RED_SIZE : 0x8D50, >+RENDERBUFFER_GREEN_SIZE : 0x8D51, >+RENDERBUFFER_BLUE_SIZE : 0x8D52, >+RENDERBUFFER_ALPHA_SIZE : 0x8D53, >+RENDERBUFFER_DEPTH_SIZE : 0x8D54, >+RENDERBUFFER_STENCIL_SIZE : 0x8D55, >+FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE : 0x8CD0, >+FRAMEBUFFER_ATTACHMENT_OBJECT_NAME : 0x8CD1, >+FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL : 0x8CD2, >+FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE : 0x8CD3, >+COLOR_ATTACHMENT0 : 0x8CE0, >+DEPTH_ATTACHMENT : 0x8D00, >+STENCIL_ATTACHMENT : 0x8D20, >+DEPTH_STENCIL_ATTACHMENT : 0x821A, >+NONE : 0, >+FRAMEBUFFER_COMPLETE : 0x8CD5, >+FRAMEBUFFER_INCOMPLETE_ATTACHMENT : 0x8CD6, >+FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT : 0x8CD7, >+FRAMEBUFFER_INCOMPLETE_DIMENSIONS : 0x8CD9, >+FRAMEBUFFER_UNSUPPORTED : 0x8CDD, >+FRAMEBUFFER_BINDING : 0x8CA6, >+RENDERBUFFER_BINDING : 0x8CA7, >+MAX_RENDERBUFFER_SIZE : 0x84E8, >+INVALID_FRAMEBUFFER_OPERATION : 0x0506, >+//FALSE : 0, >+//TRUE : 1, >+UNPACK_FLIP_Y_WEBGL : 0x9240, >+UNPACK_PREMULTIPLY_ALPHA_WEBGL : 0x9241 >+} >+ >+Tests.testOES20Constants = function(gl) { >+ for (var i in constants) { >+ assertProperty(gl, i) && >+ assertEquals(i, gl[i], constants[i]); >+ } >+ var extended = false; >+ for (var i in gl) { >+ if (i.match(/^[A-Z_]+$/) && constants[i] == null) { >+ if (!extended) { >+ extended = true; >+ var h = document.createElement('h3'); >+ h.textContent = "Also found the following extra constants"; >+ __testLog__.appendChild(h); >+ } >+ log(i); >+ } >+ } >+} >+ >+Tests.startUnit = function() { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+ <canvas id="gl" width="1" height="1"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/fuzzTheAPI.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/fuzzTheAPI.html >new file mode 100644 >index 00000000000..a0c14e369a4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/fuzzTheAPI.html >@@ -0,0 +1,137 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+ >+<script type="application/javascript"> >+ >+Tests.autorun = false; >+Tests.message = "This will fuzz the API with random inputs for a [long] while." >+ >+ >+function randomCall(testProgress, gl, m, arities) { >+ doTestNotify(m); >+ var argcs = {}; >+ var foundArity = false; >+ if (arities == null) { >+ testProgress.textContent += " 500 random arity calls on " + m + "\n"; >+ for (var i=0; i<50; i++) { >+ for (var j=0; j<10; j++) { >+ var args = generateRandomArgs(j); >+// doTestNotify(m + ": " + args.toSource()); >+ try { >+ gl[m].apply(gl, args); >+ argcs[j] = true; >+ foundArity = true; >+ } catch (e) { >+ } >+ } >+ } >+ for (var j in argcs) { >+ testProgress.textContent += "200 arity " + j + " calls on " + m + "\n"; >+ for (var i=0; i<200; i++) { >+ var args = generateRandomArgs(j); >+// doTestNotify(m + ": " + args.toSource()); >+ try { >+ gl[m].apply(gl, args); >+ argcs[j] = true; >+ } catch (e) { >+ } >+ } >+ } >+ } else { >+ for (var k=0; k<arities.length; k++) { >+ var j = arities[k]; >+ testProgress.textContent += "500 arity " + j + " calls on " + m + "\n"; >+ for (var i=0; i<500; i++) { >+ var args = generateRandomArgs(j); >+// doTestNotify(m + ": " + args.toSource()); >+ try { >+ gl[m].apply(gl, args); >+ } catch (e) { >+ } >+ } >+ } >+ } >+// doTestNotify(m+"--OK"); >+} >+ >+Tests.testGetGLWeb20 = function() { >+ var testProgress = document.getElementById('testProgress'); >+ var funcnames = document.getElementById('funcnames').value.split(","); >+ var canvas = document.getElementById('glweb20'); >+ var gl; >+ assertOk(function(){gl = getGLContext(canvas);}); >+ var funcs = []; >+ for (var i=0; i<funcnames.length; i++) { >+ var fn = funcnames[i]; >+ fn = fn.replace(/^\s+|\s+$/g, ''); >+ if (fn.length > 0) >+ funcs.push(fn); >+ } >+ if (funcs.length == 0) { >+ for (var m in gl) >+ try{if (typeof gl[m] == 'function') >+ funcs.push(m);}catch(e){} >+ } >+ var idx = 0; >+ var count = 0; >+ var limit = 1000; >+ var iv1; >+ var iv2; >+ iv1 = setInterval(function(){ >+ if (idx >= funcs.length) { >+ iv2 = setInterval(function(){ >+ if (count >= limit) { >+ clearInterval(iv2); >+ return false; >+ } >+ count++; >+ var f = Math.floor(Math.random() * funcs.length); >+ randomCall(testProgress, gl, funcs[f]); >+ }, 50); >+ clearInterval(iv1); >+ return false; >+ } >+ randomCall(testProgress, gl, funcs[idx]); >+ idx++; >+ }, 50); >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+ <canvas id="glweb20" width="16" height="16"></canvas> >+ <p>Optional: Enter a comma-separated list of functions to fuzz (leave blank for full API)</p> >+ <input type="text" size="40" id="funcnames" value=""> >+ <pre id="testProgress"></pre> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/getContext.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/getContext.html >new file mode 100644 >index 00000000000..42f38808037 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/getContext.html >@@ -0,0 +1,59 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+ >+<script type="application/javascript"> >+ >+Tests.testGetWebGL = function() { >+ var canvas = document.getElementById('webgl'); >+ var gl; >+ assertOk(function(){gl = getGLContext(canvas)}); >+ assertEquals("ctx.canvas === canvas", gl.canvas, canvas); >+ assertOk(function(){g2d = canvas.getContext('2d')}); >+ assert("Should get a null 2d context after getting webgl context", g2d === null); >+} >+ >+Tests.testGet2D = function() { >+ var canvas = document.getElementById('2d'); >+ var g2d; >+ var gl; >+ assertOk(function(){g2d = canvas.getContext('2d')}); >+ assertOk(function(){gl = getGLContext(canvas)}); >+ assert("Should get a null WebGL context after getting 2D context", gl === null); >+} >+</script> >+<style>canvas{position:absolute;}</style> >+</head><body> >+ <canvas id="2d" width="1" height="1"></canvas> >+ <canvas id="webgl" width="1" height="1"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/methods.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/methods.html >new file mode 100644 >index 00000000000..b47b9dce236 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/methods.html >@@ -0,0 +1,201 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+/* >+ The following tests are generated from >+ http://www.khronos.org/registry/gles/api/2.0/gl2.h >+ and api_modifications.txt >+*/ >+var methods = ['canvas', >+"activeTexture", >+"attachShader", >+"bindAttribLocation", >+"bindBuffer", >+"bindFramebuffer", >+"bindRenderbuffer", >+"bindTexture", >+"blendColor", >+"blendEquation", >+"blendEquationSeparate", >+"blendFunc", >+"blendFuncSeparate", >+"bufferData", >+"bufferSubData", >+"checkFramebufferStatus", >+"clear", >+"clearColor", >+"clearDepth", >+"clearStencil", >+"colorMask", >+"compileShader", >+"copyTexImage2D", >+"copyTexSubImage2D", >+"createProgram", >+"createShader", >+"cullFace", >+"deleteBuffer", >+"deleteFramebuffer", >+"deleteProgram", >+"deleteRenderbuffer", >+"deleteShader", >+"deleteTexture", >+"depthFunc", >+"depthMask", >+"depthRange", >+"detachShader", >+"disable", >+"disableVertexAttribArray", >+"drawArrays", >+"drawElements", >+"enable", >+"enableVertexAttribArray", >+"finish", >+"flush", >+"framebufferRenderbuffer", >+"framebufferTexture2D", >+"frontFace", >+"createBuffer", >+"generateMipmap", >+"createFramebuffer", >+"createRenderbuffer", >+"createTexture", >+"getActiveAttrib", >+"getActiveUniform", >+"getAttachedShaders", >+"getAttribLocation", >+"getBufferParameter", >+"getError", >+"getExtension", >+"getSupportedExtensions", >+"getFramebufferAttachmentParameter", >+"getProgramInfoLog", >+"getRenderbufferParameter", >+"getShaderInfoLog", >+"getShaderSource", >+"getUniformLocation", >+"hint", >+"isBuffer", >+"isContextLost", >+"isEnabled", >+"isFramebuffer", >+"isProgram", >+"isRenderbuffer", >+"isShader", >+"isTexture", >+"lineWidth", >+"linkProgram", >+"polygonOffset", >+"readPixels", >+"renderbufferStorage", >+"sampleCoverage", >+"scissor", >+"shaderSource", >+"stencilFunc", >+"stencilFuncSeparate", >+"stencilMask", >+"stencilMaskSeparate", >+"stencilOp", >+"stencilOpSeparate", >+"texImage2D", >+"texParameteri", >+"texSubImage2D", >+"uniform1f", >+"uniform1fv", >+"uniform1i", >+"uniform1iv", >+"uniform2f", >+"uniform2fv", >+"uniform2i", >+"uniform2iv", >+"uniform3f", >+"uniform3fv", >+"uniform3i", >+"uniform3iv", >+"uniform4f", >+"uniform4fv", >+"uniform4i", >+"uniform4iv", >+"uniformMatrix2fv", >+"uniformMatrix3fv", >+"uniformMatrix4fv", >+"useProgram", >+"validateProgram", >+"vertexAttrib1f", >+"vertexAttrib1fv", >+"vertexAttrib2f", >+"vertexAttrib2fv", >+"vertexAttrib3f", >+"vertexAttrib3fv", >+"vertexAttrib4f", >+"vertexAttrib4fv", >+"vertexAttribPointer", >+"viewport", >+"getParameter", >+"getProgramParameter", >+"getShaderParameter", >+"getTexParameter", >+"getUniform", >+"getVertexAttrib" >+] >+ >+Tests.testOES20Methods = function(gl) { >+ for (var i=0; i<methods.length; i++) { >+ assertProperty(gl, methods[i]); >+ } >+ var extended = false; >+ for (var i in gl) { >+ if (i.match(/^[a-z_]+$/) && methods.indexOf(i) == -1) { >+ if (!extended) { >+ extended = true; >+ var h = document.createElement('h3'); >+ h.textContent = "Also found the following extra properties"; >+ __testLog__.appendChild(h); >+ } >+ log(i); >+ } >+ } >+} >+ >+Tests.startUnit = function() { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+ <canvas id="gl" width="1" height="1"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-A.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-A.html >new file mode 100644 >index 00000000000..532518ee87c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-A.html >@@ -0,0 +1,84 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript" src="quickCheckAPI.js"></script> >+<script type="application/javascript" src="argGenerators-A.js"></script> >+ >+<script type="application/javascript"> >+ >+// Test that all GL functions specified in ArgGenerators work >+// when called with randomly generated valid arguments >+Tests.testValidArgs = function() { >+ var randomTestCount = 100; >+ for (var name in ArgGenerators) { >+ try { >+ if (!GL[name]) >+ throw (new Error(name + " is missing from the WebGL context")); >+ var argGen = ArgGenerators[name]; >+ var alreadyTriedArgs = {}; >+ if (!argGen.generate) continue; >+ // test each GL function with randomTestCount randomly generated valid args >+ argGeneratorTestRunner(argGen, function(args, gen, setupVars) { >+ if (!gen.noAlreadyTriedCheck) { >+ var src = Object.toSource(args); >+ if (alreadyTriedArgs[src]) >+ return true; >+ >+ alreadyTriedArgs[src] = true; >+ } >+ var ok = false; >+ // if we have an validity checker, assert that the generated args are valid >+ if (gen.checkArgValidity) >+ assert("Valid args: "+name+"("+argsToString(args)+")", >+ gen.checkArgValidity.apply(gen, args)); >+ var rv; >+ // assert that GL function works when called with valid args >+ assertOk("This should work: "+name+"("+argsToString(args)+")", >+ function(){rv = GL[name].apply(GL, args); ok = true;}); >+ // if we need to cleanup the return value, do it here >+ // e.g. calling gl.deleteBuffer(rv) after testing gl.createBuffer() above >+ if (gen.returnValueCleanup) >+ assertOk("Cleaning up return value after "+name+"("+argsToString(args)+")", >+ function() { gen.returnValueCleanup(rv); }); >+ return ok; >+ }, argGen.testCount || randomTestCount); >+ } catch(e) { >+ testFailed(name, e.name, formatError(e)); >+ } >+ } >+} >+ >+</script> >+<style>canvas{position:absolute;}</style> >+</head><body> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B1.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B1.html >new file mode 100644 >index 00000000000..4d096246a74 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B1.html >@@ -0,0 +1,84 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript" src="quickCheckAPI.js"></script> >+<script type="application/javascript" src="argGenerators-B1.js"></script> >+ >+<script type="application/javascript"> >+ >+// Test that all GL functions specified in ArgGenerators work >+// when called with randomly generated valid arguments >+Tests.testValidArgs = function() { >+ var randomTestCount = 100; >+ for (var name in ArgGenerators) { >+ try { >+ if (!GL[name]) >+ throw (new Error(name + " is missing from the WebGL context")); >+ var argGen = ArgGenerators[name]; >+ var alreadyTriedArgs = {}; >+ if (!argGen.generate) continue; >+ // test each GL function with randomTestCount randomly generated valid args >+ argGeneratorTestRunner(argGen, function(args, gen, setupVars) { >+ if (!gen.noAlreadyTriedCheck) { >+ var src = Object.toSource(args); >+ if (alreadyTriedArgs[src]) >+ return true; >+ >+ alreadyTriedArgs[src] = true; >+ } >+ var ok = false; >+ // if we have an validity checker, assert that the generated args are valid >+ if (gen.checkArgValidity) >+ assert("Valid args: "+name+"("+argsToString(args)+")", >+ gen.checkArgValidity.apply(gen, args)); >+ var rv; >+ // assert that GL function works when called with valid args >+ assertOk("This should work: "+name+"("+argsToString(args)+")", >+ function(){rv = GL[name].apply(GL, args); ok = true;}); >+ // if we need to cleanup the return value, do it here >+ // e.g. calling gl.deleteBuffer(rv) after testing gl.createBuffer() above >+ if (gen.returnValueCleanup) >+ assertOk("Cleaning up return value after "+name+"("+argsToString(args)+")", >+ function() { gen.returnValueCleanup(rv); }); >+ return ok; >+ }, argGen.testCount || randomTestCount); >+ } catch(e) { >+ testFailed(name, e.name, formatError(e)); >+ } >+ } >+} >+ >+</script> >+<style>canvas{position:absolute;}</style> >+</head><body> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B2.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B2.html >new file mode 100644 >index 00000000000..1b7d2cc998f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B2.html >@@ -0,0 +1,84 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript" src="quickCheckAPI.js"></script> >+<script type="application/javascript" src="argGenerators-B2.js"></script> >+ >+<script type="application/javascript"> >+ >+// Test that all GL functions specified in ArgGenerators work >+// when called with randomly generated valid arguments >+Tests.testValidArgs = function() { >+ var randomTestCount = 100; >+ for (var name in ArgGenerators) { >+ try { >+ if (!GL[name]) >+ throw (new Error(name + " is missing from the WebGL context")); >+ var argGen = ArgGenerators[name]; >+ var alreadyTriedArgs = {}; >+ if (!argGen.generate) continue; >+ // test each GL function with randomTestCount randomly generated valid args >+ argGeneratorTestRunner(argGen, function(args, gen, setupVars) { >+ if (!gen.noAlreadyTriedCheck) { >+ var src = Object.toSource(args); >+ if (alreadyTriedArgs[src]) >+ return true; >+ >+ alreadyTriedArgs[src] = true; >+ } >+ var ok = false; >+ // if we have an validity checker, assert that the generated args are valid >+ if (gen.checkArgValidity) >+ assert("Valid args: "+name+"("+argsToString(args)+")", >+ gen.checkArgValidity.apply(gen, args)); >+ var rv; >+ // assert that GL function works when called with valid args >+ assertOk("This should work: "+name+"("+argsToString(args)+")", >+ function(){rv = GL[name].apply(GL, args); ok = true;}); >+ // if we need to cleanup the return value, do it here >+ // e.g. calling gl.deleteBuffer(rv) after testing gl.createBuffer() above >+ if (gen.returnValueCleanup) >+ assertOk("Cleaning up return value after "+name+"("+argsToString(args)+")", >+ function() { gen.returnValueCleanup(rv); }); >+ return ok; >+ }, argGen.testCount || randomTestCount); >+ } catch(e) { >+ testFailed(name, e.name, formatError(e)); >+ } >+ } >+} >+ >+</script> >+<style>canvas{position:absolute;}</style> >+</head><body> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B3.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B3.html >new file mode 100644 >index 00000000000..6f0f5b2f4eb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B3.html >@@ -0,0 +1,84 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript" src="quickCheckAPI.js"></script> >+<script type="application/javascript" src="argGenerators-B3.js"></script> >+ >+<script type="application/javascript"> >+ >+// Test that all GL functions specified in ArgGenerators work >+// when called with randomly generated valid arguments >+Tests.testValidArgs = function() { >+ var randomTestCount = 100; >+ for (var name in ArgGenerators) { >+ try { >+ if (!GL[name]) >+ throw (new Error(name + " is missing from the WebGL context")); >+ var argGen = ArgGenerators[name]; >+ var alreadyTriedArgs = {}; >+ if (!argGen.generate) continue; >+ // test each GL function with randomTestCount randomly generated valid args >+ argGeneratorTestRunner(argGen, function(args, gen, setupVars) { >+ if (!gen.noAlreadyTriedCheck) { >+ var src = Object.toSource(args); >+ if (alreadyTriedArgs[src]) >+ return true; >+ >+ alreadyTriedArgs[src] = true; >+ } >+ var ok = false; >+ // if we have an validity checker, assert that the generated args are valid >+ if (gen.checkArgValidity) >+ assert("Valid args: "+name+"("+argsToString(args)+")", >+ gen.checkArgValidity.apply(gen, args)); >+ var rv; >+ // assert that GL function works when called with valid args >+ assertOk("This should work: "+name+"("+argsToString(args)+")", >+ function(){rv = GL[name].apply(GL, args); ok = true;}); >+ // if we need to cleanup the return value, do it here >+ // e.g. calling gl.deleteBuffer(rv) after testing gl.createBuffer() above >+ if (gen.returnValueCleanup) >+ assertOk("Cleaning up return value after "+name+"("+argsToString(args)+")", >+ function() { gen.returnValueCleanup(rv); }); >+ return ok; >+ }, argGen.testCount || randomTestCount); >+ } catch(e) { >+ testFailed(name, e.name, formatError(e)); >+ } >+ } >+} >+ >+</script> >+<style>canvas{position:absolute;}</style> >+</head><body> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B4.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B4.html >new file mode 100644 >index 00000000000..348a8756b63 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-B4.html >@@ -0,0 +1,84 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript" src="quickCheckAPI.js"></script> >+<script type="application/javascript" src="argGenerators-B4.js"></script> >+ >+<script type="application/javascript"> >+ >+// Test that all GL functions specified in ArgGenerators work >+// when called with randomly generated valid arguments >+Tests.testValidArgs = function() { >+ var randomTestCount = 100; >+ for (var name in ArgGenerators) { >+ try { >+ if (!GL[name]) >+ throw (new Error(name + " is missing from the WebGL context")); >+ var argGen = ArgGenerators[name]; >+ var alreadyTriedArgs = {}; >+ if (!argGen.generate) continue; >+ // test each GL function with randomTestCount randomly generated valid args >+ argGeneratorTestRunner(argGen, function(args, gen, setupVars) { >+ if (!gen.noAlreadyTriedCheck) { >+ var src = Object.toSource(args); >+ if (alreadyTriedArgs[src]) >+ return true; >+ >+ alreadyTriedArgs[src] = true; >+ } >+ var ok = false; >+ // if we have an validity checker, assert that the generated args are valid >+ if (gen.checkArgValidity) >+ assert("Valid args: "+name+"("+argsToString(args)+")", >+ gen.checkArgValidity.apply(gen, args)); >+ var rv; >+ // assert that GL function works when called with valid args >+ assertOk("This should work: "+name+"("+argsToString(args)+")", >+ function(){rv = GL[name].apply(GL, args); ok = true;}); >+ // if we need to cleanup the return value, do it here >+ // e.g. calling gl.deleteBuffer(rv) after testing gl.createBuffer() above >+ if (gen.returnValueCleanup) >+ assertOk("Cleaning up return value after "+name+"("+argsToString(args)+")", >+ function() { gen.returnValueCleanup(rv); }); >+ return ok; >+ }, argGen.testCount || randomTestCount); >+ } catch(e) { >+ testFailed(name, e.name, formatError(e)); >+ } >+ } >+} >+ >+</script> >+<style>canvas{position:absolute;}</style> >+</head><body> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-C.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-C.html >new file mode 100644 >index 00000000000..fccf07fdd97 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-C.html >@@ -0,0 +1,84 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript" src="quickCheckAPI.js"></script> >+<script type="application/javascript" src="argGenerators-C.js"></script> >+ >+<script type="application/javascript"> >+ >+// Test that all GL functions specified in ArgGenerators work >+// when called with randomly generated valid arguments >+Tests.testValidArgs = function() { >+ var randomTestCount = 100; >+ for (var name in ArgGenerators) { >+ try { >+ if (!GL[name]) >+ throw (new Error(name + " is missing from the WebGL context")); >+ var argGen = ArgGenerators[name]; >+ var alreadyTriedArgs = {}; >+ if (!argGen.generate) continue; >+ // test each GL function with randomTestCount randomly generated valid args >+ argGeneratorTestRunner(argGen, function(args, gen, setupVars) { >+ if (!gen.noAlreadyTriedCheck) { >+ var src = Object.toSource(args); >+ if (alreadyTriedArgs[src]) >+ return true; >+ >+ alreadyTriedArgs[src] = true; >+ } >+ var ok = false; >+ // if we have an validity checker, assert that the generated args are valid >+ if (gen.checkArgValidity) >+ assert("Valid args: "+name+"("+argsToString(args)+")", >+ gen.checkArgValidity.apply(gen, args)); >+ var rv; >+ // assert that GL function works when called with valid args >+ assertOk("This should work: "+name+"("+argsToString(args)+")", >+ function(){rv = GL[name].apply(GL, args); ok = true;}); >+ // if we need to cleanup the return value, do it here >+ // e.g. calling gl.deleteBuffer(rv) after testing gl.createBuffer() above >+ if (gen.returnValueCleanup) >+ assertOk("Cleaning up return value after "+name+"("+argsToString(args)+")", >+ function() { gen.returnValueCleanup(rv); }); >+ return ok; >+ }, argGen.testCount || randomTestCount); >+ } catch(e) { >+ testFailed(name, e.name, formatError(e)); >+ } >+ } >+} >+ >+</script> >+<style>canvas{position:absolute;}</style> >+</head><body> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-D_G.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-D_G.html >new file mode 100644 >index 00000000000..1a43b98a9ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-D_G.html >@@ -0,0 +1,84 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript" src="quickCheckAPI.js"></script> >+<script type="application/javascript" src="argGenerators-D_G.js"></script> >+ >+<script type="application/javascript"> >+ >+// Test that all GL functions specified in ArgGenerators work >+// when called with randomly generated valid arguments >+Tests.testValidArgs = function() { >+ var randomTestCount = 100; >+ for (var name in ArgGenerators) { >+ try { >+ if (!GL[name]) >+ throw (new Error(name + " is missing from the WebGL context")); >+ var argGen = ArgGenerators[name]; >+ var alreadyTriedArgs = {}; >+ if (!argGen.generate) continue; >+ // test each GL function with randomTestCount randomly generated valid args >+ argGeneratorTestRunner(argGen, function(args, gen, setupVars) { >+ if (!gen.noAlreadyTriedCheck) { >+ var src = Object.toSource(args); >+ if (alreadyTriedArgs[src]) >+ return true; >+ >+ alreadyTriedArgs[src] = true; >+ } >+ var ok = false; >+ // if we have an validity checker, assert that the generated args are valid >+ if (gen.checkArgValidity) >+ assert("Valid args: "+name+"("+argsToString(args)+")", >+ gen.checkArgValidity.apply(gen, args)); >+ var rv; >+ // assert that GL function works when called with valid args >+ assertOk("This should work: "+name+"("+argsToString(args)+")", >+ function(){rv = GL[name].apply(GL, args); ok = true;}); >+ // if we need to cleanup the return value, do it here >+ // e.g. calling gl.deleteBuffer(rv) after testing gl.createBuffer() above >+ if (gen.returnValueCleanup) >+ assertOk("Cleaning up return value after "+name+"("+argsToString(args)+")", >+ function() { gen.returnValueCleanup(rv); }); >+ return ok; >+ }, argGen.testCount || randomTestCount); >+ } catch(e) { >+ testFailed(name, e.name, formatError(e)); >+ } >+ } >+} >+ >+</script> >+<style>canvas{position:absolute;}</style> >+</head><body> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-G_I.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-G_I.html >new file mode 100644 >index 00000000000..cbf6f4be4a4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-G_I.html >@@ -0,0 +1,84 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript" src="quickCheckAPI.js"></script> >+<script type="application/javascript" src="argGenerators-G_I.js"></script> >+ >+<script type="application/javascript"> >+ >+// Test that all GL functions specified in ArgGenerators work >+// when called with randomly generated valid arguments >+Tests.testValidArgs = function() { >+ var randomTestCount = 100; >+ for (var name in ArgGenerators) { >+ try { >+ if (!GL[name]) >+ throw (new Error(name + " is missing from the WebGL context")); >+ var argGen = ArgGenerators[name]; >+ var alreadyTriedArgs = {}; >+ if (!argGen.generate) continue; >+ // test each GL function with randomTestCount randomly generated valid args >+ argGeneratorTestRunner(argGen, function(args, gen, setupVars) { >+ if (!gen.noAlreadyTriedCheck) { >+ var src = Object.toSource(args); >+ if (alreadyTriedArgs[src]) >+ return true; >+ >+ alreadyTriedArgs[src] = true; >+ } >+ var ok = false; >+ // if we have an validity checker, assert that the generated args are valid >+ if (gen.checkArgValidity) >+ assert("Valid args: "+name+"("+argsToString(args)+")", >+ gen.checkArgValidity.apply(gen, args)); >+ var rv; >+ // assert that GL function works when called with valid args >+ assertOk("This should work: "+name+"("+argsToString(args)+")", >+ function(){rv = GL[name].apply(GL, args); ok = true;}); >+ // if we need to cleanup the return value, do it here >+ // e.g. calling gl.deleteBuffer(rv) after testing gl.createBuffer() above >+ if (gen.returnValueCleanup) >+ assertOk("Cleaning up return value after "+name+"("+argsToString(args)+")", >+ function() { gen.returnValueCleanup(rv); }); >+ return ok; >+ }, argGen.testCount || randomTestCount); >+ } catch(e) { >+ testFailed(name, e.name, formatError(e)); >+ } >+ } >+} >+ >+</script> >+<style>canvas{position:absolute;}</style> >+</head><body> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-L_S.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-L_S.html >new file mode 100644 >index 00000000000..f0d62cd20c8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-L_S.html >@@ -0,0 +1,84 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript" src="quickCheckAPI.js"></script> >+<script type="application/javascript" src="argGenerators-L_S.js"></script> >+ >+<script type="application/javascript"> >+ >+// Test that all GL functions specified in ArgGenerators work >+// when called with randomly generated valid arguments >+Tests.testValidArgs = function() { >+ var randomTestCount = 100; >+ for (var name in ArgGenerators) { >+ try { >+ if (!GL[name]) >+ throw (new Error(name + " is missing from the WebGL context")); >+ var argGen = ArgGenerators[name]; >+ var alreadyTriedArgs = {}; >+ if (!argGen.generate) continue; >+ // test each GL function with randomTestCount randomly generated valid args >+ argGeneratorTestRunner(argGen, function(args, gen, setupVars) { >+ if (!gen.noAlreadyTriedCheck) { >+ var src = Object.toSource(args); >+ if (alreadyTriedArgs[src]) >+ return true; >+ >+ alreadyTriedArgs[src] = true; >+ } >+ var ok = false; >+ // if we have an validity checker, assert that the generated args are valid >+ if (gen.checkArgValidity) >+ assert("Valid args: "+name+"("+argsToString(args)+")", >+ gen.checkArgValidity.apply(gen, args)); >+ var rv; >+ // assert that GL function works when called with valid args >+ assertOk("This should work: "+name+"("+argsToString(args)+")", >+ function(){rv = GL[name].apply(GL, args); ok = true;}); >+ // if we need to cleanup the return value, do it here >+ // e.g. calling gl.deleteBuffer(rv) after testing gl.createBuffer() above >+ if (gen.returnValueCleanup) >+ assertOk("Cleaning up return value after "+name+"("+argsToString(args)+")", >+ function() { gen.returnValueCleanup(rv); }); >+ return ok; >+ }, argGen.testCount || randomTestCount); >+ } catch(e) { >+ testFailed(name, e.name, formatError(e)); >+ } >+ } >+} >+ >+</script> >+<style>canvas{position:absolute;}</style> >+</head><body> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-S_V.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-S_V.html >new file mode 100644 >index 00000000000..39c89e8edd9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-S_V.html >@@ -0,0 +1,84 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript" src="quickCheckAPI.js"></script> >+<script type="application/javascript" src="argGenerators-S_V.js"></script> >+ >+<script type="application/javascript"> >+ >+// Test that all GL functions specified in ArgGenerators work >+// when called with randomly generated valid arguments >+Tests.testValidArgs = function() { >+ var randomTestCount = 100; >+ for (var name in ArgGenerators) { >+ try { >+ if (!GL[name]) >+ throw (new Error(name + " is missing from the WebGL context")); >+ var argGen = ArgGenerators[name]; >+ var alreadyTriedArgs = {}; >+ if (!argGen.generate) continue; >+ // test each GL function with randomTestCount randomly generated valid args >+ argGeneratorTestRunner(argGen, function(args, gen, setupVars) { >+ if (!gen.noAlreadyTriedCheck) { >+ var src = Object.toSource(args); >+ if (alreadyTriedArgs[src]) >+ return true; >+ >+ alreadyTriedArgs[src] = true; >+ } >+ var ok = false; >+ // if we have an validity checker, assert that the generated args are valid >+ if (gen.checkArgValidity) >+ assert("Valid args: "+name+"("+argsToString(args)+")", >+ gen.checkArgValidity.apply(gen, args)); >+ var rv; >+ // assert that GL function works when called with valid args >+ assertOk("This should work: "+name+"("+argsToString(args)+")", >+ function(){rv = GL[name].apply(GL, args); ok = true;}); >+ // if we need to cleanup the return value, do it here >+ // e.g. calling gl.deleteBuffer(rv) after testing gl.createBuffer() above >+ if (gen.returnValueCleanup) >+ assertOk("Cleaning up return value after "+name+"("+argsToString(args)+")", >+ function() { gen.returnValueCleanup(rv); }); >+ return ok; >+ }, argGen.testCount || randomTestCount); >+ } catch(e) { >+ testFailed(name, e.name, formatError(e)); >+ } >+ } >+} >+ >+</script> >+<style>canvas{position:absolute;}</style> >+</head><body> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI.js >new file mode 100644 >index 00000000000..b39feca144c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI.js >@@ -0,0 +1,430 @@ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+/* >+ QuickCheck tests for WebGL: >+ >+ 1. Write a valid arg generator for each function >+ 1.1. Write valid arg predicates to use with random generator: >+ if value passes generator, accept it as valid. >+ 1.2. Often needs initializing and cleanup: >+ setup - generate - cleanup >+ gl.createBuffer - test(bindBufferGenerator) - gl.deleteBuffer >+ >+ 2. Write an invalid arg generator >+ 2.1. Take valid args, modify an arg until the args no longer pass >+ checkArgValidity. >+ 2.2. Repeat for all args. >+ >+ 3. Test functions using the generators >+ 3.1. Args generated with the valid arg generator should pass >+ assertOk(f(args)) >+ 3.2. Args generated with the invalid arg generator should pass >+ assertFail(f(args)) >+*/ >+var GLcanvas = document.createElement('canvas'); >+var canvas2D = document.createElement('canvas'); >+GLcanvas.width = GLcanvas.height = 256; >+GL = getGLContext(GLcanvas); >+Array.from = function(o) { >+ var a = []; >+ for (var i=0; i<o.length; i++) >+ a.push(o[i]); >+ return a; >+} >+Array.prototype.has = function(v) { return this.indexOf(v) != -1; } >+Array.prototype.random = function() { return this[randomInt(this.length)]; } >+ >+castToInt = function(o) { >+ if (typeof o == 'number') >+ return isNaN(o) ? 0 : Math.floor(o); >+ if (o == true) return 1; >+ return 0; >+}; >+ >+// Creates a constant checker / generator from its arguments. >+// >+// E.g. if you want a constant checker for the constants 1, 2, and 3, you >+// would do the following: >+// >+// var cc = constCheck(1,2,3); >+// var randomConst = cc.random(); >+// if (cc.has(randomConst)) >+// console.log("randomConst is included in cc's constants"); >+// >+constCheck = function() { >+ var a = Array.from(arguments); >+ a.has = function(v) { return this.indexOf(castToInt(v)) != -1; }; >+ return a; >+} >+ >+bindTextureTarget = constCheck(GL.TEXTURE_2D, GL.TEXTURE_CUBE_MAP); >+blendEquationMode = constCheck(GL.FUNC_ADD, GL.FUNC_SUBTRACT, GL.FUNC_REVERSE_SUBTRACT); >+blendFuncSfactor = constCheck( >+ GL.ZERO, GL.ONE, GL.SRC_COLOR, GL.ONE_MINUS_SRC_COLOR, GL.DST_COLOR, >+ GL.ONE_MINUS_DST_COLOR, GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA, GL.DST_ALPHA, >+ GL.ONE_MINUS_DST_ALPHA, GL.CONSTANT_COLOR, GL.ONE_MINUS_CONSTANT_COLOR, >+ GL.CONSTANT_ALPHA, GL.ONE_MINUS_CONSTANT_ALPHA, GL.SRC_ALPHA_SATURATE >+); >+blendFuncDfactor = constCheck( >+ GL.ZERO, GL.ONE, GL.SRC_COLOR, GL.ONE_MINUS_SRC_COLOR, GL.DST_COLOR, >+ GL.ONE_MINUS_DST_COLOR, GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA, GL.DST_ALPHA, >+ GL.ONE_MINUS_DST_ALPHA, GL.CONSTANT_COLOR, GL.ONE_MINUS_CONSTANT_COLOR, >+ GL.CONSTANT_ALPHA, GL.ONE_MINUS_CONSTANT_ALPHA >+); >+bufferTarget = constCheck(GL.ARRAY_BUFFER, GL.ELEMENT_ARRAY_BUFFER); >+bufferMode = constCheck(GL.STREAM_DRAW, GL.STATIC_DRAW, GL.DYNAMIC_DRAW); >+clearMask = constCheck( >+ GL.COLOR_BUFFER_BIT | GL.DEPTH_BUFFER_BIT | GL.STENCIL_BUFFER_BIT, >+ GL.COLOR_BUFFER_BIT | GL.DEPTH_BUFFER_BIT, >+ GL.COLOR_BUFFER_BIT | GL.STENCIL_BUFFER_BIT, >+ GL.DEPTH_BUFFER_BIT | GL.STENCIL_BUFFER_BIT, >+ GL.COLOR_BUFFER_BIT, GL.DEPTH_BUFFER_BIT, GL.STENCIL_BUFFER_BIT, 0 >+); >+cullFace = constCheck(GL.FRONT, GL.BACK, GL.FRONT_AND_BACK); >+depthFuncFunc = constCheck( >+ GL.NEVER, GL.LESS, GL.EQUAL, GL.LEQUAL, GL.GREATER, GL.NOTEQUAL, >+ GL.GEQUAL, GL.ALWAYS >+); >+stencilFuncFunc = depthFuncFunc; >+enableCap = constCheck( >+ GL.BLEND, GL.CULL_FACE, GL.DEPTH_TEST, GL.DITHER, GL.POLYGON_OFFSET_FILL, >+ GL.SAMPLE_ALPHA_TO_COVERAGE, GL.SAMPLE_COVERAGE, GL.SCISSOR_TEST, >+ GL.STENCIL_TEST >+); >+frontFaceMode = constCheck(GL.CCW, GL.CW); >+getParameterPname = constCheck( >+ GL.ACTIVE_TEXTURE || "GL.ACTIVE_TEXTURE", >+ GL.ALIASED_LINE_WIDTH_RANGE || "GL.ALIASED_LINE_WIDTH_RANGE", >+ GL.ALIASED_POINT_SIZE_RANGE || "GL.ALIASED_POINT_SIZE_RANGE", >+ GL.ALPHA_BITS || "GL.ALPHA_BITS", >+ GL.ARRAY_BUFFER_BINDING || "GL.ARRAY_BUFFER_BINDING", >+ GL.BLEND || "GL.BLEND", >+ GL.BLEND_COLOR || "GL.BLEND_COLOR", >+ GL.BLEND_DST_ALPHA || "GL.BLEND_DST_ALPHA", >+ GL.BLEND_DST_RGB || "GL.BLEND_DST_RGB", >+ GL.BLEND_EQUATION_ALPHA || "GL.BLEND_EQUATION_ALPHA", >+ GL.BLEND_EQUATION_RGB || "GL.BLEND_EQUATION_RGB", >+ GL.BLEND_SRC_ALPHA || "GL.BLEND_SRC_ALPHA", >+ GL.BLEND_SRC_RGB || "GL.BLEND_SRC_RGB", >+ GL.BLUE_BITS || "GL.BLUE_BITS", >+ GL.COLOR_CLEAR_VALUE || "GL.COLOR_CLEAR_VALUE", >+ GL.COLOR_WRITEMASK || "GL.COLOR_WRITEMASK", >+ GL.COMPRESSED_TEXTURE_FORMATS || "GL.COMPRESSED_TEXTURE_FORMATS", >+ GL.CULL_FACE || "GL.CULL_FACE", >+ GL.CULL_FACE_MODE || "GL.CULL_FACE_MODE", >+ GL.CURRENT_PROGRAM || "GL.CURRENT_PROGRAM", >+ GL.DEPTH_BITS || "GL.DEPTH_BITS", >+ GL.DEPTH_CLEAR_VALUE || "GL.DEPTH_CLEAR_VALUE", >+ GL.DEPTH_FUNC || "GL.DEPTH_FUNC", >+ GL.DEPTH_RANGE || "GL.DEPTH_RANGE", >+ GL.DEPTH_TEST || "GL.DEPTH_TEST", >+ GL.DEPTH_WRITEMASK || "GL.DEPTH_WRITEMASK", >+ GL.DITHER || "GL.DITHER", >+ GL.ELEMENT_ARRAY_BUFFER_BINDING || "GL.ELEMENT_ARRAY_BUFFER_BINDING", >+ GL.FRAMEBUFFER_BINDING || "GL.FRAMEBUFFER_BINDING", >+ GL.FRONT_FACE || "GL.FRONT_FACE", >+ GL.GENERATE_MIPMAP_HINT || "GL.GENERATE_MIPMAP_HINT", >+ GL.GREEN_BITS || "GL.GREEN_BITS", >+ GL.LINE_WIDTH || "GL.LINE_WIDTH", >+ GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS || "GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS", >+ GL.MAX_CUBE_MAP_TEXTURE_SIZE || "GL.MAX_CUBE_MAP_TEXTURE_SIZE", >+ GL.MAX_FRAGMENT_UNIFORM_VECTORS || "GL.MAX_FRAGMENT_UNIFORM_VECTORS", >+ GL.MAX_RENDERBUFFER_SIZE || "GL.MAX_RENDERBUFFER_SIZE", >+ GL.MAX_TEXTURE_IMAGE_UNITS || "GL.MAX_TEXTURE_IMAGE_UNITS", >+ GL.MAX_TEXTURE_SIZE || "GL.MAX_TEXTURE_SIZE", >+ GL.MAX_VARYING_VECTORS || "GL.MAX_VARYING_VECTORS", >+ GL.MAX_VERTEX_ATTRIBS || "GL.MAX_VERTEX_ATTRIBS", >+ GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS || "GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS", >+ GL.MAX_VERTEX_UNIFORM_VECTORS || "GL.MAX_VERTEX_UNIFORM_VECTORS", >+ GL.MAX_VIEWPORT_DIMS || "GL.MAX_VIEWPORT_DIMS", >+ GL.PACK_ALIGNMENT || "GL.PACK_ALIGNMENT", >+ GL.POLYGON_OFFSET_FACTOR || "GL.POLYGON_OFFSET_FACTOR", >+ GL.POLYGON_OFFSET_FILL || "GL.POLYGON_OFFSET_FILL", >+ GL.POLYGON_OFFSET_UNITS || "GL.POLYGON_OFFSET_UNITS", >+ GL.RED_BITS || "GL.RED_BITS", >+ GL.RENDERBUFFER_BINDING || "GL.RENDERBUFFER_BINDING", >+ GL.SAMPLE_BUFFERS || "GL.SAMPLE_BUFFERS", >+ GL.SAMPLE_COVERAGE_INVERT || "GL.SAMPLE_COVERAGE_INVERT", >+ GL.SAMPLE_COVERAGE_VALUE || "GL.SAMPLE_COVERAGE_VALUE", >+ GL.SAMPLES || "GL.SAMPLES", >+ GL.SCISSOR_BOX || "GL.SCISSOR_BOX", >+ GL.SCISSOR_TEST || "GL.SCISSOR_TEST", >+ GL.STENCIL_BACK_FAIL || "GL.STENCIL_BACK_FAIL", >+ GL.STENCIL_BACK_FUNC || "GL.STENCIL_BACK_FUNC", >+ GL.STENCIL_BACK_PASS_DEPTH_FAIL || "GL.STENCIL_BACK_PASS_DEPTH_FAIL", >+ GL.STENCIL_BACK_PASS_DEPTH_PASS || "GL.STENCIL_BACK_PASS_DEPTH_PASS", >+ GL.STENCIL_BACK_REF || "GL.STENCIL_BACK_REF", >+ GL.STENCIL_BACK_VALUE_MASK || "GL.STENCIL_BACK_VALUE_MASK", >+ GL.STENCIL_BACK_WRITEMASK || "GL.STENCIL_BACK_WRITEMASK", >+ GL.STENCIL_BITS || "GL.STENCIL_BITS", >+ GL.STENCIL_CLEAR_VALUE || "GL.STENCIL_CLEAR_VALUE", >+ GL.STENCIL_FAIL || "GL.STENCIL_FAIL", >+ GL.STENCIL_FUNC || "GL.STENCIL_FUNC", >+ GL.STENCIL_PASS_DEPTH_FAIL || "GL.STENCIL_PASS_DEPTH_FAIL", >+ GL.STENCIL_PASS_DEPTH_PASS || "GL.STENCIL_PASS_DEPTH_PASS", >+ GL.STENCIL_REF || "GL.STENCIL_REF", >+ GL.STENCIL_TEST || "GL.STENCIL_TEST", >+ GL.STENCIL_VALUE_MASK || "GL.STENCIL_VALUE_MASK", >+ GL.STENCIL_WRITEMASK || "GL.STENCIL_WRITEMASK", >+ GL.SUBPIXEL_BITS || "GL.SUBPIXEL_BITS", >+ GL.TEXTURE_BINDING_2D || "GL.TEXTURE_BINDING_2D", >+ GL.TEXTURE_BINDING_CUBE_MAP || "GL.TEXTURE_BINDING_CUBE_MAP", >+ GL.UNPACK_ALIGNMENT || "GL.UNPACK_ALIGNMENT", >+ GL.VIEWPORT || "GL.VIEWPORT" >+); >+mipmapHint = constCheck(GL.FASTEST, GL.NICEST, GL.DONT_CARE); >+pixelStoreiPname = constCheck(GL.PACK_ALIGNMENT, GL.UNPACK_ALIGNMENT); >+pixelStoreiParam = constCheck(1,2,4,8); >+shaderType = constCheck(GL.VERTEX_SHADER, GL.FRAGMENT_SHADER); >+stencilOp = constCheck(GL.KEEP, GL.ZERO, GL.REPLACE, GL.INCR, GL.INCR_WRAP, >+ GL.DECR, GL.DECR_WRAP, GL.INVERT); >+texImageTarget = constCheck( >+ GL.TEXTURE_2D, >+ GL.TEXTURE_CUBE_MAP_POSITIVE_X, >+ GL.TEXTURE_CUBE_MAP_NEGATIVE_X, >+ GL.TEXTURE_CUBE_MAP_POSITIVE_Y, >+ GL.TEXTURE_CUBE_MAP_NEGATIVE_Y, >+ GL.TEXTURE_CUBE_MAP_POSITIVE_Z, >+ GL.TEXTURE_CUBE_MAP_NEGATIVE_Z >+); >+texImageInternalFormat = constCheck( >+ GL.ALPHA, >+ GL.LUMINANCE, >+ GL.LUMINANCE_ALPHA, >+ GL.RGB, >+ GL.RGBA >+); >+texImageFormat = constCheck( >+ GL.ALPHA, >+ GL.LUMINANCE, >+ GL.LUMINANCE_ALPHA, >+ GL.RGB, >+ GL.RGBA >+); >+texImageType = constCheck(GL.UNSIGNED_BYTE); >+texParameterPname = constCheck( >+ GL.TEXTURE_MIN_FILTER, GL.TEXTURE_MAG_FILTER, >+ GL.TEXTURE_WRAP_S, GL.TEXTURE_WRAP_T); >+texParameterParam = {}; >+texParameterParam[GL.TEXTURE_MIN_FILTER] = constCheck( >+ GL.NEAREST, GL.LINEAR, GL.NEAREST_MIPMAP_NEAREST, GL.LINEAR_MIPMAP_NEAREST, >+ GL.NEAREST_MIPMAP_LINEAR, GL.LINEAR_MIPMAP_LINEAR); >+texParameterParam[GL.TEXTURE_MAG_FILTER] = constCheck(GL.NEAREST, GL.LINEAR); >+texParameterParam[GL.TEXTURE_WRAP_S] = constCheck( >+ GL.CLAMP_TO_EDGE, GL.MIRRORED_REPEAT, GL.REPEAT); >+texParameterParam[GL.TEXTURE_WRAP_T] = texParameterParam[GL.TEXTURE_WRAP_S]; >+textureUnit = constCheck.apply(this, (function(){ >+ var textureUnits = []; >+ var texUnits = GL.getParameter(GL.MAX_TEXTURE_IMAGE_UNITS); >+ for (var i=0; i<texUnits; i++) textureUnits.push(GL['TEXTURE'+i]); >+ return textureUnits; >+})()); >+ >+var StencilBits = GL.getParameter(GL.STENCIL_BITS); >+var MaxStencilValue = 1 << StencilBits; >+ >+var MaxVertexAttribs = GL.getParameter(GL.MAX_VERTEX_ATTRIBS); >+var LineWidthRange = GL.getParameter(GL.ALIASED_LINE_WIDTH_RANGE); >+ >+// Returns true if bufData can be passed to GL.bufferData >+isBufferData = function(bufData) { >+ if (typeof bufData == 'number') >+ return bufData >= 0; >+ if (bufData instanceof ArrayBuffer) >+ return true; >+ return WebGLArrayTypes.some(function(t) { >+ return bufData instanceof t; >+ }); >+}; >+ >+isVertexAttribute = function(idx) { >+ if (typeof idx != 'number') return false; >+ return idx >= 0 && idx < MaxVertexAttribs; >+}; >+ >+isValidName = function(name) { >+ if (typeof name != 'string') return false; >+ for (var i=0; i<name.length; i++) { >+ var c = name.charCodeAt(i); >+ if (c & 0x00FF == 0 || c & 0xFF00 == 0) { >+ return false; >+ } >+ } >+ return true; >+}; >+ >+WebGLArrayTypes = [ >+ Float32Array, >+ Int32Array, >+ Int16Array, >+ Int8Array, >+ Uint32Array, >+ Uint16Array, >+ Uint8Array >+]; >+webGLArrayContentGenerators = [randomLength, randomSmallIntArray]; >+randomWebGLArray = function() { >+ var t = WebGLArrayTypes.random(); >+ return new t(webGLArrayContentGenerators.random()()); >+}; >+ >+randomArrayBuffer = function(buflen) { >+ if (buflen == null) buflen = 256; >+ var len = randomInt(buflen)+1; >+ var rv; >+ try { >+ rv = new ArrayBuffer(len); >+ } catch(e) { >+ log("Error creating ArrayBuffer with length " + len); >+ throw(e); >+ } >+ return rv; >+}; >+ >+bufferDataGenerators = [randomLength, randomWebGLArray, randomArrayBuffer]; >+randomBufferData = function() { >+ return bufferDataGenerators.random()(); >+}; >+ >+randomSmallWebGLArray = function(buflen) { >+ var t = WebGLArrayTypes.random(); >+ return new t(randomInt(buflen/4)+1); >+}; >+ >+bufferSubDataGenerators = [randomSmallWebGLArray, randomArrayBuffer]; >+randomBufferSubData = function(buflen) { >+ var data = bufferSubDataGenerators.random()(buflen); >+ var offset = randomInt(buflen - data.byteLength); >+ return {data:data, offset:offset}; >+}; >+ >+randomColor = function() { >+ return [Math.random(), Math.random(), Math.random(), Math.random()]; >+}; >+ >+randomName = function() { >+ var arr = []; >+ var len = randomLength()+1; >+ for (var i=0; i<len; i++) { >+ var l = randomInt(255)+1; >+ var h = randomInt(255)+1; >+ var c = (h << 8) | l; >+ arr.push(String.fromCharCode(c)); >+ } >+ return arr.join(''); >+}; >+randomVertexAttribute = function() { >+ return randomInt(MaxVertexAttribs); >+}; >+ >+randomBool = function() { return Math.random() > 0.5; }; >+ >+randomStencil = function() { >+ return randomInt(MaxStencilValue); >+}; >+ >+randomLineWidth = function() { >+ var lo = LineWidthRange[0], >+ hi = LineWidthRange[1]; >+ return randomFloatFromRange(lo, hi); >+}; >+ >+randomImage = function(w,h) { >+ var img; >+ var r = Math.random(); >+ if (r < 0.25) { >+ img = document.createElement('canvas'); >+ img.width = w; img.height = h; >+ img.getContext('2d').fillRect(0,0,w,h); >+ } else if (r < 0.5) { >+ img = document.createElement('video'); >+ img.width = w; img.height = h; >+ } else if (r < 0.75) { >+ img = document.createElement('img'); >+ img.width = w; img.height = h; >+ } else { >+ img = canvas2D.getContext('2d').createImageData(w,h); >+ } >+ return img >+}; >+ >+mutateArgs = function(args) { >+ var mutateCount = randomIntFromRange(1, args.length); >+ var newArgs = Array.from(args); >+ for (var i=0; i<mutateCount; i++) { >+ var idx = randomInt(args.length); >+ newArgs[idx] = generateRandomArg(idx, args.length); >+ } >+ return newArgs; >+}; >+ >+// Calls testFunction numberOfTests times with arguments generated by >+// argGen.generate() (or empty arguments if no generate present). >+// >+// The arguments testFunction is called with are the generated args, >+// the argGen, and what argGen.setup() returned or [] if argGen has not setup >+// method. I.e. testFunction(generatedArgs, argGen, setupVars). >+// >+argGeneratorTestRunner = function(argGen, testFunction, numberOfTests) { >+ // do argument generator setup if needed >+ var setupVars = argGen.setup ? argGen.setup() : []; >+ var error; >+ for (var i=0; i<numberOfTests; i++) { >+ var failed = false; >+ // generate arguments if argGen has a generate method >+ var generatedArgs = argGen.generate ? argGen.generate.apply(argGen, setupVars) : []; >+ try { >+ // call testFunction with the generated args >+ testFunction.call(this, generatedArgs, argGen, setupVars); >+ } catch (e) { >+ failed = true; >+ error = e; >+ } >+ // if argGen needs cleanup for generated args, do it here >+ if (argGen.cleanup) >+ argGen.cleanup.apply(argGen, generatedArgs); >+ if (failed) break; >+ } >+ // if argGen needs to do a final cleanup for setupVars, do it here >+ if (argGen.teardown) >+ argGen.teardown.apply(argGen, setupVars); >+ if (error) throw(error); >+}; >+ >+// TODO: Remove this >+// WebKit or at least Chrome is really slow at laying out strings with >+// unprintable characters. Without this tests can take 30-90 seconds. >+// With this they're instant. >+sanitize = function(str) { >+ var newStr = []; >+ for (var ii = 0; ii < str.length; ++ii) { >+ var c = str.charCodeAt(ii); >+ newStr.push((c > 31 && c < 128) ? str[ii] : "?"); >+ } >+ return newStr.join(''); >+}; >+ >+argsToString = function(args) { >+ return sanitize(args.map(function(a){return Object.toSource(a)}).join(",")); >+}; >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPIBadArgs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPIBadArgs.html >new file mode 100644 >index 00000000000..06327fa620f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/quickCheckAPIBadArgs.html >@@ -0,0 +1,103 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript" src="quickCheckAPI.js"></script> >+ >+<script type="application/javascript"> >+ >+// Test that all GL functions specified in ArgGenerators fail >+// when called with randomly generated invalid arguments >+// Works only on tests with checkArgValidity defined >+Tests.testInvalidArgs = function() { >+ var randomTestCount = 100; >+ for (var name in ArgGenerators) { >+ try { >+ if (!GL[name]) >+ throw (new Error(name + " is missing from the WebGL context")); >+ var argGen = ArgGenerators[name]; >+ var alreadyTriedArgs = {}; >+ if (!argGen.generate || !argGen.checkArgValidity) continue; >+ // test each GL function with randomTestCount randomly generated valid args >+ argGeneratorTestRunner(argGen, function(args, gen, setupVars) { >+ var mutatedArgs; >+ var foundArgs = false; >+ for (var j=0; j<100; j++) { >+ mutatedArgs = mutateArgs(args); >+ var validArgs = false; >+ try { >+ validArgs = gen.checkArgValidity.apply(gen, mutatedArgs); >+ } catch(e) {} >+ if (!validArgs) { >+ if (gen.noAlreadyTriedCheck) { >+ foundArgs = true; >+ break; // found new invalid args >+ } >+ var src = Object.toSource(mutatedArgs); >+ if (!alreadyTriedArgs[src]) { >+ alreadyTriedArgs[src] = true; >+ foundArgs = true; >+ break; // found new invalid args >+ } >+ } >+ } >+ if (!foundArgs) >+ return true; >+ var ok = false; >+ var rv; >+ // assert that GL function fails when called with invalid args >+ assertFail("This should fail: "+name+"("+argsToString(mutatedArgs)+")", >+ function(){ >+ GL.getError(); // clear off existing error >+ rv = GL[name].apply(GL, mutatedArgs); >+ throwError(GL, name); >+ ok = true; >+ }); >+ // if we need to cleanup the return value, do it here >+ // e.g. calling gl.deleteBuffer(rv) after testing gl.createBuffer() above >+ if (gen.returnValueCleanup && rv != null) { >+ assertOk("Cleaning up return value after "+name+"("+argsToString(mutatedArgs)+")", >+ function() { gen.returnValueCleanup(rv); }); >+ } >+ GL.getError(); >+ return !ok; >+ }, argGen.testCount || randomTestCount); >+ } catch(e) { >+ testFailed(name, e.name, formatError(e)); >+ } >+ } >+} >+ >+</script> >+<style>canvas{position:absolute;}</style> >+</head><body> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/webGLArrays.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/webGLArrays.html >new file mode 100644 >index 00000000000..3dad83efcdd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/conformance/webGLArrays.html >@@ -0,0 +1,186 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+ >+<script type="application/javascript"> >+ >+function assertIdxs(name, arr, length) { >+// assertOk(name+": Read with negative idx should work", function(){ return arr[-1] }); >+// assertOk(name+": Read with too large idx should work", function(){ return arr[length] }); >+// assertOk(name+": Write with negative idx should work", function(){ arr[-1] = 0 }); >+// assertOk(name+": Write with too large idx should work", function(){ arr[length] = 0 }); >+// arr[0] = 2; >+// assertEquals(name+": Test that write worked", 2, arr[0]); >+// assertOk(name+": Write with bad value should work", function(){ arr[0] = {x:"foo"} }); >+// assertEquals(name+": Test that bad write didn't work", 2, arr[0]); >+ assertOk(name+": Read and writes with OK idxs should work", function(){ >+ for (var i=0; i<length; i++) arr[i] = i + 1; >+ for (var i=0; i<length; i++) arr[i] = arr[i] + 1; >+ for (var i=0; i<length; i++) assertEquals(name+": Test that reads and writes work", i+2, arr[i]); >+ }); >+} >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ prog = new Shader(gl, 'vert', 'frag'); >+ prog.use(); >+ prog.uniform4f('c', 255, 0, 0, 255); >+ va = prog.attrib('Vertex'); >+ buffer = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buffer); >+ return [gl]; >+} >+ >+Tests.endUnit = function() { >+ prog.destroy(); >+} >+ >+Tests.testCreateFromArray = function() { >+ var a = new Float32Array([1,2,3,4,5,6]); >+ assertIdxs('Float', a, 6); >+ var a = new Int32Array([1,2,3,4,5,6]); >+ assertIdxs('Int', a, 6); >+ var a = new Int16Array([1,2,3,4,5,6]); >+ assertIdxs('Short', a, 6); >+ var a = new Int8Array([1,2,3,4,5,6]); >+ assertIdxs('Byte', a, 6); >+ var a = new Uint32Array([1,2,3,4,5,6]); >+ assertIdxs('UInt', a, 6); >+ var a = new Uint16Array([1,2,3,4,5,6]); >+ assertIdxs('UShort', a, 6); >+ var a = new Uint8Array([1,2,3,4,5,6]); >+ assertIdxs('UByte', a, 6); >+} >+Tests.testCreateFromCount = function() { >+ var a = new Float32Array(6); >+ assertIdxs('Float', a, 6); >+ var a = new Int32Array(6); >+ assertIdxs('Int', a, 6); >+ var a = new Int16Array(6); >+ assertIdxs('Short', a, 6); >+ var a = new Int8Array(6); >+ assertIdxs('Byte', a, 6); >+ var a = new Uint32Array(6); >+ assertIdxs('UInt', a, 6); >+ var a = new Uint16Array(6); >+ assertIdxs('UShort', a, 6); >+ var a = new Uint8Array(6); >+ assertIdxs('UByte', a, 6); >+} >+Tests.testCreateFromBuffer = function() { >+ var sz = 24; >+ var b = new ArrayBuffer(sz); >+ var a = new Float32Array(b); >+ assertIdxs('Float', a, sz/4); >+ var a = new Int32Array(b); >+ assertIdxs('Int', a, sz/4); >+ var a = new Int16Array(b); >+ assertIdxs('Short', a, sz/2); >+ var a = new Int8Array(b); >+ assertIdxs('Byte', a, sz/1); >+ var a = new Uint32Array(b); >+ assertIdxs('UInt', a, sz/4); >+ var a = new Uint16Array(b); >+ assertIdxs('UShort', a, sz/2); >+ var a = new Uint8Array(b); >+ assertIdxs('UByte', a, sz/1); >+} >+ >+Tests.testThatWritesChangeDrawing = function(gl) { >+ var verts = [ >+ 0,0, >+ 1,0, >+ 1,1, >+ >+ 0,0, >+ 1,1, >+ 0,1 >+ ]; >+ var a = new Float32Array(verts); >+ var arr = []; >+ for (var i=0; i<12; i++) >+ arr[i] = a[i]; >+ assertEquals("Test that reads work from an array-initialized Float32Array", arr, verts); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ gl.bufferData(gl.ARRAY_BUFFER, a, gl.STATIC_DRAW); >+ gl.vertexAttribPointer(va, 2, gl.FLOAT, false, 0, 0); >+ gl.enableVertexAttribArray(va); >+ >+ var id = new Uint8Array(4); >+ gl.readPixels(8,8,1,1,gl.RGBA, gl.UNSIGNED_BYTE, id); >+ assertEquals([0, 0, 0, 0], [id[0], id[1], id[2], id[3]]); >+ >+ gl.drawArrays(gl.TRIANGLES, 0, 6); >+ >+ gl.readPixels(8,8,1,1,gl.RGBA, gl.UNSIGNED_BYTE, id); >+ assertEquals([255, 0, 0, 255], [id[0], id[1], id[2], id[3]]); >+ gl.readPixels(0,8,1,1,gl.RGBA, gl.UNSIGNED_BYTE, id); >+ assertEquals([0, 0, 0, 0], [id[0], id[1], id[2], id[3]]); >+ >+ a[0] = a[6] = a[10] = -1; >+ gl.bufferData(gl.ARRAY_BUFFER, a, gl.STATIC_DRAW); >+ gl.vertexAttribPointer(va, 2, gl.FLOAT, false, 0, 0); >+ >+ gl.drawArrays(gl.TRIANGLES, 0, 6); >+ >+ gl.readPixels(8,8,1,1,gl.RGBA, gl.UNSIGNED_BYTE, id); >+ assertEquals([255, 0, 0, 255], [id[0], id[1], id[2], id[3]]); >+ gl.readPixels(0,8,1,1,gl.RGBA, gl.UNSIGNED_BYTE, id); >+ assertEquals("Test that Float32Array#[]= worked and drawArrays drew a full-width rectangle", >+ [255, 0, 0, 255], [id[0], id[1], id[2], id[3]]); >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, id); >+ assertEquals([0, 0, 0, 0], [id[0], id[1], id[2], id[3]]); >+} >+ >+</script> >+<script id="vert" type="x-shader/x-vertex"> >+ attribute vec2 Vertex; >+ void main() >+ { >+ gl_Position = vec4(Vertex, 0.0, 1.0); >+ } >+</script> >+<script id="frag" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ uniform vec4 c; >+ void main() >+ { >+ gl_FragColor = c; >+ } >+</script> >+<style>canvas{border: 1px solid black}</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/demos/opengl_web.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/demos/opengl_web.html >new file mode 100644 >index 00000000000..665c05c4b87 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/demos/opengl_web.html >@@ -0,0 +1,607 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<title>OpenGL for the web</title> >+ >+<script type="application/javascript" src="../util.js"></script> >+ >+ <script type="application/javascript"> >+ >+function log(msg) { >+ document.getElementById('note').textContent += "\n"+msg; >+} >+ >+ >+ >+ >+function init(ev) { >+ var canvas = document.getElementById('canvas'); >+ var gl = getGLContext(canvas); >+ >+ var shader = new Shader(gl, "ppix-vert", "ppix-frag"); >+ shader.compile(); >+ var fbo = new FBO(gl, canvas.width, canvas.height); >+ var fbo2 = new FBO(gl, canvas.width, canvas.height); >+ var fbo3 = new FBO(gl, canvas.width, canvas.height); >+ var depth = new Shader(gl, "depth-vert", "depth-frag"); >+ var identity = new Filter(gl, "identity-vert", "identity-frag"); >+ var unpremult = new Filter(gl, "identity-vert", "unpremult-frag"); >+ var hblur = new Filter(gl, "identity-vert", "hblur-frag"); >+ var vblur = new Filter(gl, "identity-vert", "vblur-frag"); >+ var hdof = new Filter(gl, "identity-vert", "hdof-frag"); >+ var vdof = new Filter(gl, "identity-vert", "vdof-frag"); >+ >+ redraw(canvas, gl, shader, fbo, fbo2, fbo3, depth, identity, unpremult, hblur, vblur, hdof, vdof); >+ >+ setInterval(function(){ >+ redraw(canvas, gl, shader, fbo, fbo2, fbo3, depth, identity, unpremult, hblur, vblur, hdof, vdof); >+ }, 33); >+} >+ >+function drawCube (gl, shader, angle, axis, x,y,z, s, va, na, ta) { >+ Matrix.copyMatrix(look, vmat); >+ Matrix.translate3InPlace(x,y,z,vmat); >+ Matrix.scale1InPlace(s,vmat); >+ Matrix.rotateInPlace(angle, axis, vmat); >+ >+ // Note: we could just use mat3(MVMatrix) as the normal matrix >+ // as MVMatrix has only rotations, translations and uniform scaling >+ // <=> MVMatrix is a scaled orthonormal matrix >+ // hence normalize(mat3(MVMatrix)*v) == normalize(mat3(transpose(inverse(MVMatrix))*v) >+ // >+ // But let's do it the hard way to see if Matrix.inverse3x3 works... >+ Matrix.inverseTo3x3InPlace(vmat, nmat); >+ Matrix.transpose3x3InPlace(nmat); >+ >+ shader.uniformMatrix4fv("MVMatrix", vmat); >+ shader.uniformMatrix3fv("NMatrix", nmat); >+ >+ var cube = Cube.getCachedVBO(gl); >+ cube.draw(va, na, ta); >+} >+ >+var carr = []; >+for (var i=0; i<25; i++) { >+ carr.push([Math.random(), Math.random(), Math.random()]); >+} >+ >+function drawScene (gl, shader, va, na, ta) { >+ var ot = new Date().getTime(); >+ var t = ot; >+ >+ shader.uniformMatrix4fv("PMatrix", pmat); >+ for (var i=0; i<carr.length; i++){ >+ var c = carr[i]; >+ var f = c[1] < 0.5 ? 1 : -1; >+ var t = ot; >+ drawCube(gl, shader, >+ (t/(f*400*(c[0]+0.5))) % (2*Math.PI), c, >+ >+ 0.45+0.8*c[2], >+ -0.4+Math.cos((i/carr.length*Math.PI*2)+t/1000), >+ 0.8+Math.sin((i/carr.length*Math.PI*2)+t/1000)*3.2, >+ >+ 0.05 + Math.pow((c[0]+c[1]+c[2])*0.33, 2)*0.3, >+ va, na, ta); >+ } >+} >+ >+var nmat = Matrix.newIdentity3x3(); >+var vmat = Matrix.newIdentity(); >+var vmat2 = Matrix.newIdentity(); >+var pmat = null; >+var look = Matrix.lookAt([4,-1,8], [-0.2,0,0], [0,1,0]); >+var useDoF = false; >+ >+var firstFrame = true; >+ >+function redraw(canvas, gl, shader, fbo, fbo2, fbo3, depth, identity, unpremult, hblur, vblur, hdof, vdof) { >+ >+ var doDoF = useDoF; >+ gl.viewport(0, 0, canvas.width, canvas.height); >+ gl.clearColor(0.0, 0.0, 0.0, 0.0); >+ gl.enable(gl.DEPTH_TEST); >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ >+ fbo.use(); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ >+ shader.use(); >+ >+ var va = shader.attrib("Vertex"); >+ var na = shader.attrib("Normal"); >+ var ta = shader.attrib("Tex"); >+ >+ if (pmat == null) >+ pmat = Matrix.perspective(30, canvas.width/canvas.height, 1, 100); >+ >+ shader.uniform4f("MaterialSpecular", 0.95, 0.9, 0.6, 1); >+ shader.uniform4f("MaterialDiffuse", 0.50, 0.35, 0.35, 1); >+ shader.uniform4f("MaterialAmbient", 0.0, 0.1, 0.2, 1); >+ shader.uniform1f("MaterialShininess", 1.5); >+ >+ shader.uniform4f("GlobalAmbient", 0.1, 0.1, 0.1, 1); >+ >+ shader.uniform4f("LightPos", 1, 5, 3, 1.0); >+ >+ shader.uniform4f("LightSpecular", 0.9, 0.9, 0.9, 1); >+ shader.uniform4f("LightDiffuse", 0.8, 0.8, 0.8, 1); >+ shader.uniform4f("LightAmbient", 0.0, 0.06, 0.2, 1); >+ shader.uniform1f("LightConstantAtt", 0.0); >+ shader.uniform1f("LightLinearAtt", 0.1); >+ shader.uniform1f("LightQuadraticAtt", 0.0); >+ >+ drawScene(gl, shader, va, na); >+ >+ if (doDoF || firstFrame) { >+ >+ fbo3.use(); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ depth.use(); >+ var dva = depth.attrib("Vertex"); >+ >+ drawScene(gl, depth, dva); >+ >+ gl.disable(gl.DEPTH_TEST); >+ gl.activeTexture(gl.TEXTURE1); >+ gl.bindTexture(gl.TEXTURE_2D, fbo3.texture); >+ gl.activeTexture(gl.TEXTURE0); >+ >+ >+ for (var i=0; i<3; i++) { >+ fbo2.use(); >+ gl.bindTexture(gl.TEXTURE_2D, fbo.texture); >+ >+ hdof.apply(function(f){ >+ f.uniform1i("Texture", 0); >+ f.uniform1i("Depth", 1); >+ f.uniform1f("iter", i); >+ f.uniform1f("step", 1.0/canvas.width); >+ }); >+ >+ fbo.use(); >+ gl.bindTexture(gl.TEXTURE_2D, fbo2.texture); >+ >+ vdof.apply(function(f){ >+ f.uniform1i("Texture", 0); >+ f.uniform1i("Depth", 1); >+ f.uniform1f("iter", i); >+ f.uniform1f("step", 1.0/canvas.width); >+ }); >+ } >+ >+ } >+ firstFrame = false; >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ >+ gl.activeTexture(gl.TEXTURE1); >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ gl.activeTexture(gl.TEXTURE0); >+ gl.bindTexture(gl.TEXTURE_2D, fbo.texture); >+ >+ // The DoF blur blurs the color from the transparent black background with >+ // the cubes. To get rid of the border, we can treat it as premultiplied alpha. >+ // To see the problem, try replacing unpremult with identity. >+ unpremult.apply(function(f){ >+ f.uniform1i("Texture", 0); >+ }); >+ >+} >+ >+window.addEventListener("load", init, false); >+ </script> >+ >+ <script id="ppix-vert" type="x-shader/x-vertex"> >+ attribute vec3 Vertex; >+ attribute vec3 Normal; >+ attribute vec2 Tex; >+ >+ uniform mat4 PMatrix; >+ uniform mat4 MVMatrix; >+ uniform mat3 NMatrix; >+ >+ uniform vec4 MaterialAmbient; >+ uniform vec4 MaterialDiffuse; >+ >+ uniform vec4 LightAmbient; >+ uniform vec4 LightDiffuse; >+ >+ uniform vec4 GlobalAmbient; >+ >+ uniform vec4 LightPos; >+ >+ varying vec4 diffuse, ambientGlobal, ambient; >+ varying vec3 normal, lightDir, halfVector; >+ varying float dist; >+ >+ void main() >+ { >+ vec4 worldPos; >+ vec3 lightVector; >+ vec4 v = vec4(Vertex, 1.0); >+ >+ /* transform vertex normal into world space and normalize */ >+ normal = normalize(NMatrix * Normal); >+ >+ /* transform vertex into world space and compute the vector >+ from it to the light */ >+ worldPos = MVMatrix * v; >+ lightVector = vec3(LightPos - worldPos); >+ lightDir = normalize(lightVector); >+ dist = length(lightVector); >+ >+ /* Half-vector used in Blinn-Phong shading due to computational efficiency */ >+ halfVector = normalize(lightVector - vec3(worldPos)); >+ >+ diffuse = MaterialDiffuse * LightDiffuse; >+ >+ /* The ambient terms have been separated since one of them */ >+ /* suffers attenuation */ >+ ambient = MaterialAmbient * LightAmbient; >+ ambientGlobal = GlobalAmbient * MaterialAmbient; >+ >+ gl_Position = PMatrix * worldPos; >+ } >+ </script> >+ >+ <script id="ppix-frag" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ uniform vec4 LightSpecular; >+ uniform vec4 MaterialSpecular; >+ uniform float MaterialShininess; >+ >+ uniform float LightConstantAtt; >+ uniform float LightLinearAtt; >+ uniform float LightQuadraticAtt; >+ >+ varying vec4 diffuse,ambientGlobal, ambient; >+ varying vec3 normal, lightDir, halfVector; >+ varying float dist; >+ >+ void main() >+ { >+ vec3 n, halfV, viewV, ldir; >+ float NdotL, NdotHV; >+ vec4 color = ambientGlobal; >+ float att; >+ >+ n = normalize(normal); >+ >+ NdotL = max(dot(n, normalize(lightDir)), 0.0); >+ >+ if (NdotL > 0.0) { >+ >+ att = 1.0 / (LightConstantAtt + LightLinearAtt * dist + LightQuadraticAtt * dist * dist); >+ >+ color += att * (diffuse * NdotL + ambient); >+ >+ halfV = normalize(halfVector); >+ NdotHV = max( dot(normal, halfV), 0.0 ); >+ >+ color += att * MaterialSpecular * LightSpecular * pow(NdotHV, MaterialShininess); >+ } >+ >+ gl_FragColor = color; >+ } >+ </script> >+ <script id="depth-vert" type="x-shader/x-vertex"> >+ attribute vec3 Vertex; >+ uniform mat4 PMatrix; >+ uniform mat4 MVMatrix; >+ varying float depth; >+ void main() >+ { >+ gl_Position = PMatrix * (MVMatrix * vec4(Vertex, 1.0)); >+ depth = 1.0-(gl_Position.z / gl_Position.w); >+ } >+ </script> >+ <script id="depth-frag" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ varying float depth; >+ void main() >+ { >+ vec4 c = vec4(depth, 0.0, 0.0, 1.0); >+ gl_FragColor = c; >+ } >+ </script> >+ >+ <script id="identity-vert" type="x-shader/x-vertex"> >+ attribute vec3 Vertex; >+ attribute vec2 Tex; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ texCoord0 = vec4(Tex,0.0,0.0); >+ gl_Position = vec4(Vertex, 1.0); >+ } >+ </script> >+ <script id="identity-frag" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ uniform sampler2D Texture; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ vec4 c = texture2D(Texture, texCoord0.st); >+ gl_FragColor = c; >+ } >+ </script> >+ <script id="premult-frag" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ uniform sampler2D Texture; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ vec4 c = texture2D(Texture, texCoord0.st); >+ float a = c.a; >+ c *= a; >+ c.a = a; >+ gl_FragColor = c; >+ } >+ </script> >+ <script id="unpremult-frag" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ uniform sampler2D Texture; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ vec4 c = texture2D(Texture, texCoord0.st); >+ float a = c.a; >+ c /= a; >+ c.a = a; >+ gl_FragColor = c; >+ } >+ </script> >+ >+ <script id="hblur-frag" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ uniform sampler2D Texture; >+ uniform float step; >+ float kernel[7] = float[](0.046, 0.111, 0.202, 0.283, 0.202, 0.111, 0.046); >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ int i=0; >+ if (texture2D(Texture, texCoord0.st).a > 0.0) { >+ vec4 sum = vec4(0.0); >+ for (i=0; i<7; i++) { >+ vec4 tmp = texture2D(Texture, texCoord0.st + vec2(i*step,0)); >+ sum += tmp * kernel[i]; >+ } >+ gl_FragColor = sum; >+ } else { >+ gl_FragColor = texture2D(Texture, texCoord0.st); >+ } >+ } >+ </script> >+ <script id="vblur-frag" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ uniform sampler2D Texture; >+ uniform float step; >+ float kernel[7] = float[](0.046, 0.111, 0.202, 0.283, 0.202, 0.111, 0.046); >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ int i=0; >+ if (texture2D(Texture, texCoord0.st).a > 0.0) { >+ vec4 sum = vec4(0.0); >+ for (i=0; i<7; i++) { >+ vec4 tmp = texture2D(Texture, texCoord0.st + vec2(0,i*step)); >+ sum += tmp * kernel[i]; >+ } >+ gl_FragColor = sum; >+ } else { >+ gl_FragColor = texture2D(Texture, texCoord0.st); >+ } >+ } >+ </script> >+ <script id="hdof-frag" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ uniform sampler2D Texture; >+ uniform sampler2D Depth; >+ uniform float step; >+ uniform float iter; >+ float kernel[7] = { 0.046, 0.111, 0.202, 0.283, 0.202, 0.111, 0.046 }; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ vec4 tmp; >+ vec4 sum = vec4(0.0); >+ bool b = (iter < -26.0+36.0*(1.0-texture2D(Depth, texCoord0.st).r) && texture2D(Texture, texCoord0.st).a > 0.0); >+ tmp = texture2D(Texture, texCoord0.st + vec2(float(0-3)*step,0)); >+ sum += tmp * kernel[0]; >+ tmp = texture2D(Texture, texCoord0.st + vec2(float(1-3)*step,0)); >+ sum += tmp * kernel[1]; >+ tmp = texture2D(Texture, texCoord0.st + vec2(float(2-3)*step,0)); >+ sum += tmp * kernel[2]; >+ tmp = texture2D(Texture, texCoord0.st + vec2(float(3-3)*step,0)); >+ sum += tmp * kernel[3]; >+ tmp = texture2D(Texture, texCoord0.st + vec2(float(4-3)*step,0)); >+ sum += tmp * kernel[4]; >+ tmp = texture2D(Texture, texCoord0.st + vec2(float(5-3)*step,0)); >+ sum += tmp * kernel[5]; >+ tmp = texture2D(Texture, texCoord0.st + vec2(float(6-3)*step,0)); >+ sum += tmp * kernel[6]; >+ gl_FragColor = mix(texture2D(Texture, texCoord0.st), sum, b ? 1.0 : 0.0); >+ } >+ </script> >+ <script id="vdof-frag" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ uniform sampler2D Texture; >+ uniform sampler2D Depth; >+ uniform float step; >+ uniform float iter; >+ float kernel[7] = float[7](0.046, 0.111, 0.202, 0.283, 0.202, 0.111, 0.046); >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ vec4 tmp; >+ vec4 sum = vec4(0.0); >+ bool b = (iter < -26.0+36.0*(1.0-texture2D(Depth, texCoord0.st).r) && texture2D(Texture, texCoord0.st).a > 0.0); >+ tmp = texture2D(Texture, texCoord0.st + vec2(0,float(0-3)*step)); >+ sum += tmp * kernel[0]; >+ tmp = texture2D(Texture, texCoord0.st + vec2(0,float(1-3)*step)); >+ sum += tmp * kernel[1]; >+ tmp = texture2D(Texture, texCoord0.st + vec2(0,float(2-3)*step)); >+ sum += tmp * kernel[2]; >+ tmp = texture2D(Texture, texCoord0.st + vec2(0,float(3-3)*step)); >+ sum += tmp * kernel[3]; >+ tmp = texture2D(Texture, texCoord0.st + vec2(0,float(4-3)*step)); >+ sum += tmp * kernel[4]; >+ tmp = texture2D(Texture, texCoord0.st + vec2(0,float(5-3)*step)); >+ sum += tmp * kernel[5]; >+ tmp = texture2D(Texture, texCoord0.st + vec2(0,float(6-3)*step)); >+ sum += tmp * kernel[6]; >+ gl_FragColor = mix(texture2D(Texture, texCoord0.st), sum, b ? 1.0 : 0.0); >+ } >+ </script> >+ >+ <style> >+ * { margin: 0px; padding: 0px; } >+ html { >+ background-color: #707888; >+ color: #222222; >+ } >+ #canvas { >+ position: absolute; >+ cursor: pointer; >+ top: 115px; left: 550px; >+ } >+ #note { >+ position: absolute; >+ top: 4px; >+ left: 4px; >+ } >+ #content { >+ margin-left: 99px; >+ padding-left: 8px; >+ padding-right: 8px; >+ padding-bottom: 16px; >+ width: 600px; >+ background-color: rgba(255,255,255,1.0); >+ text-align: center; >+ border-left: 1px solid rgba(0,0,0,0.5); >+ border-right: 2px solid rgba(0,0,0,0.75); >+ } >+ h1 { >+ padding-top: 24px; >+ padding-bottom: 16px; >+ margin-bottom: 24px; >+ border-bottom: 1px solid black; >+ font-family: Times New Roman, Serif; >+ font-weight: bold; >+ font-size: 40px; >+ } >+ #content p { >+ text-indent: 24px; >+ margin-left: 24px; >+ margin-right: 32px; >+ text-align: justify; >+ font-family: Serif; >+ padding-bottom: 16px; >+ } >+ #above { >+ position: absolute; >+ top: 300px; >+ left: 716px; >+ padding: 10px 20px; >+ background-color: rgba(0,225,0,0.5); >+ border-left: 2px solid rgba(0,64,0,0.75); >+ color: white; >+ font-size: small; >+ font-family: sans-serif; >+ } >+ #above p { >+ text-align: center; >+ } >+ </style> >+ >+</head><body> >+ <canvas id="canvas" width="400" height="400" title="Click to toggle DOF shader" onclick="useDoF = !useDoF"></canvas> >+ <pre id="note"></pre> >+ >+ <div id="content"> >+ <h1>OpenGL for the web</h1> >+ <p> >+The WebGL specification gives web developers access to an >+OpenGL ES 2.0 drawing context for the canvas tag. What that means is >+that you can finally harness the power of the GPU for awesome visuals >+and heavy-duty number crunching in your web apps. </p><p> OpenGL ES 2.0 is a subset of OpenGL 2.0 aimed at embedded >+devices and game consoles. As such, it's a very minimalistic low-level >+API, even more so than desktop OpenGL. In fact, if you took desktop >+OpenGL and stripped out everything but shaders, vertex arrays and >+textures, you'd get something quite like OpenGL ES 2.0. </p> >+ <p> >+ As there is no fixed-function pipeline, you need to write GLSL shaders to draw <i>anything</i>. >+And you need to do your own transformation math, including keeping >+track of the transformation matrix stack. So the raw API is really not >+for the faint of heart; you do need to know your 3D math and shading >+equations. </p> >+ <p> For example, to draw the spinning cubes on the >+right - around 200 lines of application code, 250 lines of shaders and >+800 lines of library code - I had to scrounge the internet for <a href="http://www.lighthouse3d.com/opengl/glsl/index.php?pointlight">GLSL shaders</a> >+to do the transformation and lighting, write a small matrix math >+library in JavaScript and a DOF blur shader. While highly educational, >+it was also a rather steep hill to climb. </p> >+ <p> So, the intended audience of the raw context >+interface are not really end-users, but library developers who can >+write easy-to-use interfaces to the functionality, and 3D developers >+who require a high level of control over the rendering pipeline. </p> >+ <p> The really cool thing about the OpenGL Canvas is >+that it doesn't make policy decisions. There's no single set-in-stone >+use case for it: In addition to 3D graphics, you can also use it for >+filtering images, visualizing fluid dynamics, doing real-time video >+effects, or just crunching a whole lot of FP math. If you can do it on >+the GPU, you're in luck! </p> >+ </div> >+ <div id="above"> >+ <p>You can also place content above the canvas</p> >+ </div> >+ </body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/demos/video.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/demos/video.html >new file mode 100644 >index 00000000000..7007633f620 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/demos/video.html >@@ -0,0 +1,163 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<script type="application/javascript" src="../util.js"></script> >+<script> >+"use strict"; >+var processor = { >+ lastTime : new Date, >+ timerCallback: function() { >+ if (this.video.paused || this.video.ended) { >+ return; >+ } >+ this.computeFrame(); >+ var t = new Date; >+ var elapsed = t - this.lastTime; >+ this.lastTime = t; >+ var self = this; >+ setTimeout(function () { >+ self.timerCallback(); >+ }, Math.max(0, 33-elapsed)); >+ }, >+ >+ init: function() { >+ if (this.initDone) return; >+ this.c2 = document.getElementById("c2"); >+ this.ctx2 = getGLContext(this.c2); >+ this.greenScreen = new Filter(this.ctx2, 'identity-flip-vert', 'greenScreen'); >+ this.ctx2.activeTexture(this.ctx2.TEXTURE0); >+ this.tex = loadTexture(this.ctx2, this.c1, false); >+ this.ctx2.activeTexture(this.ctx2.TEXTURE1); >+ this.tex2 = loadTexture(this.ctx2, document.getElementById('i'), false); >+ this.ctx2.activeTexture(this.ctx2.TEXTURE0); >+ this.initDone = true; >+ }, >+ >+ doLoad: function() { >+ this.video = document.getElementById("video"); >+ this.c1 = document.getElementById("c1"); >+ this.ctx1 = this.c1.getContext("2d"); >+ this.ctx1.globalCompositeOperation = 'copy'; >+ this.ctx1.fillRect(0,0,this.c1.width, this.c1.height); >+ var self = this; >+ this.video.addEventListener("play", function() { >+ self.init(); >+ self.width = self.video.videoWidth; >+ self.height = self.video.videoHeight; >+ self.lastTime = new Date; >+ self.timerCallback(); >+ }, false); >+ }, >+ >+ computeFrame: function() { >+// this.ctx1.drawImage(this.video, 0, 0, this.width, this.height); >+ this.ctx2.texImage2D(this.ctx2.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this.video); >+ this.greenScreen.apply(function(s) { >+ s.uniform1i('Texture', 0); >+ s.uniform1i('Texture2', 1); >+ }); >+ >+ return; >+ } >+}; >+ >+</script> >+<script id="identity-flip-vert" type="x-shader/x-vertex"> >+ attribute vec3 Vertex; >+ attribute vec2 Tex; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ texCoord0 = vec4(Tex.s,1.0-Tex.t,0.0,0.0); >+ gl_Position = vec4(Vertex, 1.0); >+ } >+</script> >+<script id="greenScreen" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ uniform sampler2D Texture; >+ uniform sampler2D Texture2; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ vec4 c = texture2D(Texture, texCoord0.st); >+ float r = c.r * 0.5; >+ float a = c.g * 6.28; >+ float x = cos(a) * r; >+ float y = sin(a) * r; >+ vec4 c2 = texture2D(Texture2, vec2(0.7+x, 0.5+y)); >+ // Shaders with branches are not allowed when dealing with non-SOP content >+ // so instead of "if (b) c2.a = 0;", we use mix() >+ bool b = (c.g > 120.0/255.0 && c.r > 120.0/255.0 && c.b < 50.0/255.0); >+ c2.a = mix(c2.a, 0.0, float(b)); >+ gl_FragColor = c2; >+ } >+</script> >+ <style> >+ body { >+ background: black; >+ color:#CCCCCC; >+ } >+ a { >+ color: white; >+ } >+ #c2 { >+ background-image: url(http://www.mozbox.org/pub/green/foo.png); >+ background-repeat: repeat; >+ } >+ div { >+ float: left; >+ border :1px solid #444444; >+ padding:10px; >+ margin: 10px; >+ background:#3B3B3B; >+ } >+ img { display: none; } >+ </style> >+ </head> >+ <body onload="processor.doLoad()"> >+ <div> >+ This is a port of Paul Rouget's <a href="http://blog.mozbox.org/post/2009/02/25/video-canvas%3A-special-effects">Canvas+Video green screen demo</a>, plus a texture lookup from the Firefox logo based on the values of the green and red color channels. >+ </div> >+ <div> >+ <video id="video" controls="true"> >+ <source src="http://www.mozbox.org/pub/green/video.ogv"></source> >+ <source src="http://cs.helsinki.fi/u/ilmarihe/c3d/demos/video.mp4"></source> >+ </video> >+ <canvas id="c1" width="320" height="192"></canvas> >+ </div> >+ <div> >+ <canvas id="c2" width="640" height="384"></canvas> >+ </div> >+ <img id="i" src="http://www.mozbox.org/pub/green/foo.png"> >+ </body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bindBuffer.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bindBuffer.html >new file mode 100644 >index 00000000000..9018746e193 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bindBuffer.html >@@ -0,0 +1,69 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.testBindBufferARRAY_BUFFER = function(gl) { >+ var b = gl.createBuffer(); >+ assert(gl.NO_ERROR == checkError(gl, "genBuffers")); >+ gl.bindBuffer(gl.ARRAY_BUFFER, b); >+ assert(gl.NO_ERROR == checkError(gl, "bindBuffer")); >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+ assert(gl.NO_ERROR == checkError(gl, "bindBuffer 0")); >+ gl.deleteBuffer(b); >+ assert(gl.NO_ERROR == checkError(gl, "deleteBuffers")); >+} >+ >+Tests.testBindBufferELEMENT_ARRAY_BUFFER = function(gl) { >+ var b = gl.createBuffer(); >+ assert(gl.NO_ERROR == checkError(gl, "genBuffers")); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, b); >+ assert(gl.NO_ERROR == checkError(gl, "bindBuffer")); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); >+ assert(gl.NO_ERROR == checkError(gl, "bindBuffer 0")); >+ gl.deleteBuffer(b); >+ assert(gl.NO_ERROR == checkError(gl, "deleteBuffers")); >+} >+ >+</script> >+ >+<style>canvas{ position:absolute; }</style> >+</head><body> >+ <canvas id="gl" width="1" height="1"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bindBufferBadArgs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bindBufferBadArgs.html >new file mode 100644 >index 00000000000..0939b59577f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bindBufferBadArgs.html >@@ -0,0 +1,94 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.testBindBufferARRAY_BUFFER = function(gl) { >+ var b = gl.createBuffer(); >+ assertOk("bind buffer", function(){gl.bindBuffer(gl.ARRAY_BUFFER, b)}); >+ assertFail("bufferData to null buffer", function() { >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([10]), gl.STATIC_DRAW); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, new Float32Array([10])); >+ }); >+ assertFail("bind to number", function(){ >+ gl.bindBuffer(gl.ARRAY_BUFFER, 1000000000); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([10]), gl.STATIC_DRAW); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, new Float32Array([10])); >+ }); >+ assertOk("bind to null", function(){gl.bindBuffer(gl.ARRAY_BUFFER, null)}); >+ gl.deleteBuffer(b); >+} >+ >+Tests.testBindBufferELEMENT_ARRAY_BUFFER = function(gl) { >+ var b = gl.createBuffer(); >+ assertOk("bind buffer", function(){gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, b)}); >+ assertFail("bufferData to null buffer", function() { >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Float32Array([10]), gl.STATIC_DRAW); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, new Float32Array([10])); >+ }); >+ assertFail("bind to number", function(){ >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, 1000000000); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Float32Array([10]), gl.STATIC_DRAW); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, new Float32Array([10])); >+ }); >+ assertOk("bind to null", >+ function(){gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null)}); >+ gl.deleteBuffer(b); >+} >+Tests.testBindBuffer = function(gl) { >+ assertFail("bind ARRAY_BUFFER to number", >+ function(){gl.bindBuffer(gl.ARRAY_BUFFER, 1);}); >+ assertFail("bind ELEMENT_ARRAY_BUFFER to number", >+ function(){gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, 1);}); >+ assertFail("bind bad target", >+ function(){gl.bindBuffer(gl.FLOAT, 0);}); >+ assertFail("bind ARRAY_BUFFER to string", >+ function(){gl.bindBuffer(gl.ARRAY_BUFFER, "foo");}); >+ assertFail("bind ELEMENT_ARRAY_BUFFER to string", >+ function(){gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, "foo");}); >+} >+ >+</script> >+ >+<style>canvas{ position:absolute; }</style> >+</head><body> >+ <canvas id="gl" width="1" height="1"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bindFramebufferLeaveNonZero.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bindFramebufferLeaveNonZero.html >new file mode 100644 >index 00000000000..de642f51be9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bindFramebufferLeaveNonZero.html >@@ -0,0 +1,50 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<title>OpenGL for the web</title> >+ >+<script type="application/javascript" src="../util.js"></script> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+ >+ <script type="application/javascript"> >+Tests.message = "This was segfaulting when the GL context got GC'd (in glXDestroyContext)"; >+Tests.testSeg = function () { >+ var canvas = document.getElementById('canvas'); >+ var gl = getGLContext(canvas); >+ >+ var fbo = gl.createFramebuffer(); >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); >+} >+</script> >+ >+</head><body> >+ <canvas id="canvas" width="400" height="400"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bufferData.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bufferData.html >new file mode 100644 >index 00000000000..eb3626a716c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bufferData.html >@@ -0,0 +1,87 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ var buf = gl.createBuffer(); >+ var ebuf = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buf); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ebuf); >+ return [gl, buf, ebuf]; >+} >+ >+Tests.testBufferData = function(gl, buf, ebuf) { >+ var data = [0,0,0,0, 1,0,0,0, 0,1,0,0]; >+ gl.bufferData(gl.ARRAY_BUFFER, 12, gl.STATIC_DRAW); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([]), gl.STATIC_DRAW); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(data), gl.STATIC_DRAW); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE), 12*4); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_USAGE), gl.STATIC_DRAW); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(data), gl.STREAM_DRAW); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE), 12*4); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_USAGE), gl.STREAM_DRAW); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(data), gl.DYNAMIC_DRAW); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE), 12*4); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_USAGE), gl.DYNAMIC_DRAW); >+ >+ gl.bufferData(gl.ARRAY_BUFFER, new Uint16Array(data), gl.STATIC_DRAW); >+ gl.bufferData(gl.ARRAY_BUFFER, new Uint16Array(data), gl.STREAM_DRAW); >+ gl.bufferData(gl.ARRAY_BUFFER, new Uint16Array(data), gl.DYNAMIC_DRAW); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE), 12*2); >+ throwError(gl, "array bufferSubData"); >+} >+Tests.testBufferDataElement = function(gl, buf, ebuf) { >+ var data = [0,0,0,0, 1,0,0,0, 0,1,0,0]; >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(data), gl.STATIC_DRAW); >+ assertEquals(gl.getBufferParameter(gl.ELEMENT_ARRAY_BUFFER, gl.BUFFER_USAGE), gl.STATIC_DRAW); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(data), gl.STREAM_DRAW); >+ assertEquals(gl.getBufferParameter(gl.ELEMENT_ARRAY_BUFFER, gl.BUFFER_USAGE), gl.STREAM_DRAW); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(data), gl.DYNAMIC_DRAW); >+ assertEquals(gl.getBufferParameter(gl.ELEMENT_ARRAY_BUFFER, gl.BUFFER_USAGE), gl.DYNAMIC_DRAW); >+ assertEquals(gl.getBufferParameter(gl.ELEMENT_ARRAY_BUFFER, gl.BUFFER_SIZE), 12*2); >+ throwError(gl, "element array bufferSubData"); >+} >+ >+Tests.endUnit = function(gl, buf, ebuf) { >+ gl.deleteBuffer(buf); >+ gl.deleteBuffer(ebuf); >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bufferDataBadArgs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bufferDataBadArgs.html >new file mode 100644 >index 00000000000..d722b97b1b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bufferDataBadArgs.html >@@ -0,0 +1,79 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ var buf = gl.createBuffer(); >+ var ebuf = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buf); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ebuf); >+ return [gl, buf, ebuf]; >+} >+ >+Tests.testBufferData = function(gl) { >+ assertOk("zero size data", >+ function(){gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(0), gl.STATIC_DRAW);}); >+ assertFail("bad target", >+ function(){gl.bufferData(gl.TEXTURE_2D, new Float32Array([1,2,3]), gl.STATIC_DRAW);}); >+// assertFail("array for data", >+// function(){gl.bufferData(gl.ARRAY_BUFFER, [1,2,3], gl.STATIC_DRAW);}); >+ assertFail("bad usage", >+ function(){gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([1,2,3]), gl.TEXTURE_2D);}); >+ assertFail("null data", >+ function(){gl.bufferData(gl.ARRAY_BUFFER, null, gl.STATIC_DRAW);}); >+ assertFail("undefined data", >+ function(){gl.bufferData(gl.ARRAY_BUFFER, undefined, gl.STATIC_DRAW);}); >+ assertOk(function(){gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Float32Array([1,2,3]), gl.STATIC_DRAW);}); >+ throwError(gl, 'bufferData'); >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+ assertFail(function(){gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([1,2,3]), gl.STATIC_DRAW);}); >+ throwError(gl, 'bufferData'); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); >+ assertFail(function(){gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array([1,2,3]), gl.STATIC_DRAW);}); >+ throwError(gl, 'bufferData'); >+} >+ >+Tests.endUnit = function(gl, buf, ebuf) { >+ gl.deleteBuffer(buf); >+ gl.deleteBuffer(ebuf); >+} >+ >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bufferSubData.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bufferSubData.html >new file mode 100644 >index 00000000000..dc9aae7e393 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bufferSubData.html >@@ -0,0 +1,138 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = getGLContext(canvas); >+ var buf = gl.createBuffer(); >+ var ebuf = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buf); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ebuf); >+ return [gl, buf, ebuf]; >+} >+ >+Tests.testBufferSubData = function(gl, buf, ebuf) { >+ var data = [0,0,0,0, 1,0,0,0, 0,1,0,0]; >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(data), gl.STATIC_DRAW); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, new Float32Array([1,2,3,4])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Float32Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 32, new Float32Array([1,1,1,1])); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE), 12*4); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_USAGE), gl.STATIC_DRAW); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(data), gl.STREAM_DRAW); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Float32Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, new Float32Array([1,2,3,4])); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE), 12*4); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_USAGE), gl.STREAM_DRAW); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(data), gl.DYNAMIC_DRAW); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Float32Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, new Float32Array([1,2,3,4])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Uint32Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Int32Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Int16Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Uint16Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Int8Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Uint8Array([1,1,1,1])); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE), 12*4); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_USAGE), gl.DYNAMIC_DRAW); >+ >+ gl.bufferData(gl.ARRAY_BUFFER, 12, gl.STATIC_DRAW); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE), 12); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_USAGE), gl.STATIC_DRAW); >+ >+ gl.bufferData(gl.ARRAY_BUFFER, 12*4, gl.STATIC_DRAW); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, new Float32Array([1,2,3,4])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Float32Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 32, new Float32Array([1,1,1,1])); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE), 12*4); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_USAGE), gl.STATIC_DRAW); >+ gl.bufferData(gl.ARRAY_BUFFER, 12*4, gl.STREAM_DRAW); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Float32Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, new Float32Array([1,2,3,4])); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE), 12*4); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_USAGE), gl.STREAM_DRAW); >+ gl.bufferData(gl.ARRAY_BUFFER, 12*4, gl.DYNAMIC_DRAW); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Float32Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, new Float32Array([1,2,3,4])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Uint32Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Int32Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Int16Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Uint16Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Int8Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Uint8Array([1,1,1,1])); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE), 12*4); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_USAGE), gl.DYNAMIC_DRAW); >+ >+ gl.bufferData(gl.ARRAY_BUFFER, new Uint16Array(data), gl.STATIC_DRAW); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Uint16Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, new Uint16Array([1,2,3,4])); >+ gl.bufferData(gl.ARRAY_BUFFER, new Uint16Array(data), gl.STREAM_DRAW); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Uint16Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, new Uint16Array([1,2,3,4])); >+ gl.bufferData(gl.ARRAY_BUFFER, new Uint16Array(data), gl.DYNAMIC_DRAW); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 16, new Uint16Array([1,1,1,1])); >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, new Uint16Array([1,2,3,4])); >+ assertEquals(gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE), 12*2); >+ throwError(gl, "array bufferSubData"); >+} >+Tests.testBufferSubDataElement = function(gl, buf, ebuf) { >+ var data = [0,0,0,0, 1,0,0,0, 0,1,0,0]; >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(data), gl.STATIC_DRAW); >+ gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 16, new Uint16Array([1,1,1,1])); >+ gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 0, new Uint16Array([1,2,3,4])); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(data), gl.STREAM_DRAW); >+ gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 16, new Uint16Array([1,1,1,1])); >+ gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 0, new Uint16Array([1,2,3,4])); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(data), gl.DYNAMIC_DRAW); >+ gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 16, new Uint16Array([1,1,1,1])); >+ gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 0, new Uint16Array([1,2,3,4])); >+ assertEquals(gl.getBufferParameter(gl.ELEMENT_ARRAY_BUFFER, gl.BUFFER_SIZE), 12*2); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint8Array(data), gl.DYNAMIC_DRAW); >+ gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 4, new Uint8Array([1,1,1,1])); >+ gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 0, new Uint8Array([1,2,3,4])); >+ assertEquals(gl.getBufferParameter(gl.ELEMENT_ARRAY_BUFFER, gl.BUFFER_SIZE), 12); >+ throwError(gl, "element array bufferSubData"); >+} >+ >+Tests.endUnit = function(gl, buf, ebuf) { >+ gl.deleteBuffer(buf); >+ gl.deleteBuffer(ebuf); >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bufferSubDataBadArgs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bufferSubDataBadArgs.html >new file mode 100644 >index 00000000000..a883b3ae2f1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/bufferSubDataBadArgs.html >@@ -0,0 +1,94 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ var buf = gl.createBuffer(); >+ var ebuf = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buf); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ebuf); >+ return [gl, buf, ebuf]; >+} >+ >+Tests.testBufferData = function(gl) { >+ var data = [0,0,0,0, 1,0,0,0, 0,1,0,0]; >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(data), gl.STREAM_DRAW); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(data), gl.STREAM_DRAW); >+ assertOk("zero length data", >+ function(){gl.bufferSubData(gl.ARRAY_BUFFER, 0, new Float32Array(0));}); >+ assertFail("number for data", >+ function(){gl.bufferSubData(gl.ARRAY_BUFFER, 0, 12);}); >+ assertFail("bad target", >+ function(){gl.bufferSubData(gl.TEXTURE_2D, 0, new Float32Array([1,2,3]));}); >+ assertFail("array for data", >+ function(){gl.bufferSubData(gl.ARRAY_BUFFER, 0, [1,2,3]);}); >+ assertOk("floats in element buffer", >+ function(){gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 0, new Float32Array([1,2,3]));}); >+ assertFail("negative offset", >+ function(){gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, -1, new Uint16Array([1,2,3]));}); >+ assertFail("offset out of range", >+ function(){gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 24, new Uint16Array([1,2,3]));}); >+ assertFail("offset out of range", >+ function(){gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 2400000, new Uint16Array([1,2,3]));}); >+ assertFail("offset out of range", >+ function(){gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 19, new Uint16Array([1,2,3]));}); >+ assertFail("data too large", >+ function(){gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 0, new Uint16Array(data.concat([1])));}); >+ assertOk("offset + data too large", >+ function(){gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 18, new Uint16Array([1,2,3]));}); >+ assertOk("good args", >+ function(){gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 0, new Uint16Array([1,2,3]));}); >+ throwError(gl, 'bufferData0'); >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+ assertFail("setting buffer 0", >+ function(){gl.bufferSubData(gl.ARRAY_BUFFER, 0, new Float32Array([1,2,3]));}); >+ throwError(gl, 'bufferData1'); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); >+ assertFail("setting buffer 0", >+ function(){gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 0, new Uint16Array([1,2,3]));}); >+ throwError(gl, 'bufferData2'); >+} >+ >+Tests.endUnit = function(gl, buf, ebuf) { >+ gl.deleteBuffer(buf); >+ gl.deleteBuffer(ebuf); >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/copyTexImage2D.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/copyTexImage2D.html >new file mode 100644 >index 00000000000..fff36758344 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/copyTexImage2D.html >@@ -0,0 +1,130 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.setup = function(gl) { >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ var texCubeMap = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_CUBE_MAP, texCubeMap); >+ return [gl] >+} >+ >+Tests.teardown = function(gl,tex, texCubeMap) { >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ gl.bindTexture(gl.TEXTURE_CUBE_MAP, null); >+ gl.deleteTexture(tex); >+ gl.deleteTexture(texCubeMap); >+} >+ >+Tests.testTexImage2D = function(gl) { >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,0,1,1,0); >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,0,2,1,0); >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,0,1,2,0); >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,0,16,16,0); >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 15,15,1,1,0); >+ var valid_targets = [ >+ gl.TEXTURE_2D, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_X, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_X, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_Y, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_Y, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_Z, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_Z >+ ]; >+ valid_targets.forEach(function(t) { >+ assertOk(function(){gl.copyTexImage2D(t, 0, gl.RGBA, 0,0,1,1,0);}); >+ }); >+} >+Tests.testRoundtrip = function(gl) { >+ var sh = new Filter(gl, 'identity-flip-vert', 'identity-frag'); >+ gl.clearColor(1.0, 0.0, 0.0, 1.0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ var buf = new Uint8Array(4); >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, buf); >+ assertEquals([255,0,0,255], [buf[0], buf[1], buf[2], buf[3]]); >+ // red texture >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,0,16,16,0); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+ gl.clearColor(0.0, 0.0, 1.0, 1.0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ // blue framebuffer >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, buf); >+ assertEquals([0,0,255,255], [buf[0], buf[1], buf[2], buf[3]]); >+ sh.apply(); // paint it with texture >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, buf); >+ assertEquals([255,0,0,255], [buf[0], buf[1], buf[2], buf[3]]); >+ sh.destroy(); >+} >+ >+Tests.endUnit = function(gl) { >+} >+ >+</script> >+<script id="identity-flip-vert" type="x-shader/x-vertex"> >+attribute vec3 Vertex; >+attribute vec2 Tex; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ texCoord0 = vec4(Tex.s, 1.0-Tex.t, 0.0, 0.0); >+ gl_Position = vec4(Vertex, 1.0); >+} >+</script> >+<script id="identity-frag" type="x-shader/x-fragment"> >+precision mediump float; >+ >+uniform sampler2D Texture; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ vec4 c = texture2D(Texture, texCoord0.st); >+ gl_FragColor = c; >+} >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/copyTexImage2DBadArgs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/copyTexImage2DBadArgs.html >new file mode 100644 >index 00000000000..3124e2d8987 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/copyTexImage2DBadArgs.html >@@ -0,0 +1,109 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.setup = function(gl) { >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ return [gl] >+} >+ >+Tests.teardown = function(gl,tex) { >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ gl.deleteTexture(tex); >+} >+ >+Tests.testTexImage2D = function(gl) { >+ assertOk("height > backHeight", function(){ >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,0, 17,1,0); >+ }); >+ assertOk("width > backWidth", function(){ >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,0, 1,17,0); >+ }); >+ assertOk("x + width > backWidth", function(){ >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 16,0, 1,1,0); >+ }); >+ assertOk("y + height > backHeight", function(){ >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,16, 1,1,0); >+ }); >+ assertOk("Negative X", function(){ >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, -1,0, 1,1,0); >+ }); >+ assertOk("Negative Y", function(){ >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,-1, 1,1,0); >+ }); >+ assertFail("Negative height", function(){ >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,0, -1,1,0); >+ }); >+ assertFail("Negative width", function(){ >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,0, 1,-1,0); >+ }); >+ assertFail("Non 0 border", function(){ >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,0, 1,1,1); >+ }); >+ assertFail("Negative border",function(){ >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,0, 1,1,-1); >+ }); >+ assertOk("Good Args", function(){ >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,0, 16,16,0); >+ }); >+ assertFail("NPOT texture to > level 0", function(){ >+ gl.copyTexImage2D(gl.TEXTURE_2D, 1, gl.RGBA, 0,0, 15,16,0); >+ }); >+ assertFail("Bad target", function(){ >+ gl.copyTexImage2D(gl.FLOAT, 0, gl.RGBA, 0,0, 16,16,0); >+ }); >+ assertFail("Bad internal format", function(){ >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.FLOAT, 0,0, 16,16,0); >+ }); >+ assertFail("Negative level", function(){ >+ gl.copyTexImage2D(gl.TEXTURE_2D, -1, gl.RGBA, 0,0, 16,16,0); >+ }); >+} >+ >+ >+Tests.endUnit = function(gl) { >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/copyTexSubImage2D.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/copyTexSubImage2D.html >new file mode 100644 >index 00000000000..206ab4e3c4f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/copyTexSubImage2D.html >@@ -0,0 +1,142 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.setup = function(gl) { >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ var texCubeMap = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_CUBE_MAP, texCubeMap); >+ return [gl] >+} >+ >+Tests.teardown = function(gl,tex,texCubeMap) { >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ gl.bindTexture(gl.TEXTURE_CUBE_MAP, null); >+ gl.deleteTexture(tex); >+ gl.deleteTexture(texCubeMap); >+} >+ >+ >+Tests.testTexImage2D = function(gl) { >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,0,16,16,0); >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0,1,1); >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0,2,1); >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0,1,2); >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0,16,16); >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 15,15,1,1); >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 1,1, 0,0,15,15); >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 15,15, 0,0,1,1); >+ var valid_targets = [ >+ gl.TEXTURE_2D, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_X, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_X, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_Y, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_Y, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_Z, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_Z >+ ]; >+ valid_targets.forEach(function(t) { >+ assertOk(function(){ >+ gl.copyTexImage2D(t, 0, gl.RGBA, 0,0,1,1,0); >+ gl.copyTexSubImage2D(t, 0, 0,0,0,0,1,1); >+ }); >+ }); >+} >+Tests.testRoundtrip = function(gl) { >+ var sh = new Filter(gl, 'identity-flip-vert', 'identity-frag'); >+ gl.clearColor(1.0, 0.0, 0.0, 1.0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ var buf = new Uint8Array(4); >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, buf); >+ assertEquals([255,0,0,255], [buf[0], buf[1], buf[2], buf[3]]); >+ // red texture >+ gl.clearColor(0.0, 0.0, 0.0, 0.0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, document.getElementById('gl')); >+ gl.clearColor(1.0, 0.0, 0.0, 1.0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0,0,0,16,16); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+ gl.clearColor(0.0, 0.0, 1.0, 1.0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ // blue framebuffer >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, buf); >+ assertEquals([0,0,255,255], [buf[0], buf[1], buf[2], buf[3]]); >+ sh.apply(); // paint with texture >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, buf); >+ assertEquals([255,0,0,255], [buf[0], buf[1], buf[2], buf[3]]); >+ sh.destroy(); >+} >+ >+Tests.endUnit = function(gl) { >+} >+ >+</script> >+<script id="identity-flip-vert" type="x-shader/x-vertex"> >+attribute vec3 Vertex; >+attribute vec2 Tex; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ texCoord0 = vec4(Tex.s, 1.0-Tex.t, 0.0, 0.0); >+ gl_Position = vec4(Vertex, 1.0); >+} >+</script> >+<script id="identity-frag" type="x-shader/x-fragment"> >+precision mediump float; >+ >+uniform sampler2D Texture; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ vec4 c = texture2D(Texture, texCoord0.st); >+ gl_FragColor = c; >+} >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/copyTexSubImage2DBadArgs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/copyTexSubImage2DBadArgs.html >new file mode 100644 >index 00000000000..a212c6850d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/copyTexSubImage2DBadArgs.html >@@ -0,0 +1,117 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.setup = function(gl) { >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ return [gl] >+} >+ >+Tests.teardown = function(gl,tex) { >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ gl.deleteTexture(tex); >+} >+ >+Tests.testTexImage2D = function(gl) { >+ gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,0, 16,16, 0); >+ assertGLError(gl, gl.INVALID_VALUE, "width > dst tex width", function(){ >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0, 17,1); >+ }); >+ assertGLError(gl, gl.INVALID_VALUE, "height > dst tex height", function(){ >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0, 1,17); >+ }); >+ // The spec says the source image dimensions can be out of range. >+ assertOk("x > dst tex width", function(){ >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 16,0, 1,1); >+ }); >+ assertOk("y > dst tex width", function(){ >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,16, 1,1); >+ }); >+ assertOk("x < 0", function(){ >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, -1,0, 1,1); >+ }); >+ assertOk("y < 0", function(){ >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,-1, 1,1); >+ }); >+ assertGLError(gl, gl.INVALID_VALUE, "width < 0", function(){ >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0, -1,1); >+ }); >+ assertGLError(gl, gl.INVALID_VALUE, "height < 0", function(){ >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0, 1,-1); >+ }); >+ assertGLError(gl, gl.INVALID_VALUE, "xoffset < 0", function(){ >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, -1,0, 0,0, 16,16); >+ }); >+ assertGLError(gl, gl.INVALID_VALUE, "yoffset < 0", function(){ >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,-1, 0,0, 16,16); >+ }); >+ assertGLError(gl, gl.INVALID_VALUE, "dimension out of range", function(){ >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 4,0, 0,0, 16,16); >+ }); >+ assertGLError(gl, gl.INVALID_VALUE, "dimension out of range", function(){ >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,4, 0,0, 16,16); >+ }); >+ assertOk("x < 0 full width", function(){ >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, -1,0, 16,16); >+ }); >+ assertOk("y < 0 full height", function(){ >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,-1, 16,16); >+ }); >+ assertOk(function(){ >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0, 16,16); >+ }); >+ assertGLError(gl, gl.INVALID_ENUM, "bad target", function(){ >+ gl.copyTexSubImage2D(gl.FLOAT, 0, 0,0, 0,0, 16,16); >+ }); >+ assertGLError(gl, gl.INVALID_VALUE, "", function(){ >+ gl.copyTexSubImage2D(gl.TEXTURE_2D, -1, 0,0, 0,0, 16,16); >+ }); >+} >+ >+ >+Tests.endUnit = function(gl) { >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/deleteBufferBadArgs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/deleteBufferBadArgs.html >new file mode 100644 >index 00000000000..62a262bcfce >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/deleteBufferBadArgs.html >@@ -0,0 +1,65 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = getGLContext(canvas); >+ return [gl]; >+} >+ >+Tests.testDeleteBuffer = function(gl) { >+ assertThrowNoGLError(gl, "number ", function(){ gl.deleteBuffer(1); }); >+ assertGLError(gl, gl.NO_ERROR, "null", function(){ gl.deleteBuffer(null); }); >+ assertThrowNoGLError(gl, "0", function(){ gl.deleteBuffer(0); }); >+ assertThrowNoGLError(gl, "false", function(){ gl.deleteBuffer(false); }); >+ assertThrowNoGLError(gl, "true", function(){ gl.deleteBuffer(true); }); >+ assertThrowNoGLError(gl, "{}", function(){ gl.deleteBuffer({}); }); >+ var tex = gl.createTexture(); >+ assertThrowNoGLError(gl, "tex as buf", function(){ gl.deleteBuffer(tex); }); >+ var buf = gl.createBuffer(); >+ assertOk(function(){ gl.deleteBuffer(buf); }); >+ assertOk(function(){ gl.deleteBuffer(buf); }); >+ assertOk(function(){ gl.deleteBuffer(buf); }); >+ assertOk(function(){ gl.deleteTexture(tex); }); >+} >+ >+Tests.endUnit = function(gl) { >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/drawArrays.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/drawArrays.html >new file mode 100644 >index 00000000000..0db7721960d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/drawArrays.html >@@ -0,0 +1,135 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+var verts = [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0]; >+var normals = [0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0]; >+var texcoords = [0.0,0.0, 1.0,0.0, 0.0,1.0]; >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ var prog = new Shader(gl, 'vert', 'frag'); >+ prog.use(); >+ var sh = prog.shader.program; >+// log(gl.getShaderInfoLog(prog.shaders[1])); >+ var v = gl.getAttribLocation(sh, 'Vertex'); >+ var n = gl.getAttribLocation(sh, 'Normal'); >+ var t = gl.getAttribLocation(sh, 'Tex'); >+ return [gl,prog,v,n,t]; >+} >+ >+Tests.setup = function(gl, prog, v,n,t) { >+ assert(0 == gl.getError()); >+ return [gl, prog, v,n,t]; >+} >+Tests.teardown = function(gl, prog, v,n,t) { >+ gl.disableVertexAttribArray(v); >+ gl.disableVertexAttribArray(n); >+ gl.disableVertexAttribArray(t); >+} >+ >+Tests.endUnit = function(gl, prog, v,n,t) { >+ prog.destroy(); >+} >+ >+Tests.testDrawArraysVBO = function(gl, prog, v,n,t) { >+ var vbo = new VBO(gl, {size:3, data:Quad.vertices}); >+ vbo.draw(v); >+ assert(0 == checkError(gl, "vbo.draw")); >+ assertOk(function(){gl.drawArrays(gl.TRIANGLES, 5, 1);}); >+ assertOk(function(){gl.drawArrays(gl.TRIANGLES, 0, 2);}); >+ assertOk(function(){gl.drawArrays(gl.TRIANGLES, 0, 6);}); >+ assertOk(function(){gl.drawArrays(gl.TRIANGLES, 1, 5);}); >+ vbo.destroy(); >+ assert(0 == checkError(gl, "vbo.destroy")); >+} >+ >+Tests.testDrawArraysVBOMulti = function(gl, prog, v,n,t) { >+ // creates VBOs for the quad arrays, binds them with >+ // vertexAttribPointer and calls drawArrays >+ var vbo = new VBO(gl, >+ {size:3, data:Quad.vertices}, >+ {size:3, data:Quad.normals}, >+ {size:2, data:Quad.texcoords}); >+ vbo.draw(v, n, t); >+ assert(0 == checkError(gl, "vbo.draw")); >+ assertOk(function(){gl.drawArrays(gl.TRIANGLES, 5, 1);}); >+ assertOk(function(){gl.drawArrays(gl.TRIANGLES, 0, 2);}); >+ assertOk(function(){gl.drawArrays(gl.TRIANGLES, 0, 6);}); >+ assertOk(function(){gl.drawArrays(gl.TRIANGLES, 1, 5);}); >+ assertFail(function(){gl.drawArrays(gl.TRIANGLES, 1, 6);}); >+ assertFail(function(){gl.drawArrays(gl.TRIANGLES, 6, 1);}); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vbo.vbos[1]); >+ gl.vertexAttribPointer(n, 3, gl.FLOAT, false, 0, 0); >+ assertOk(function(){gl.drawArrays(gl.TRIANGLES, 5, 1);}); >+ assertOk(function(){gl.drawArrays(gl.TRIANGLES, 0, 2);}); >+ assertOk(function(){gl.drawArrays(gl.TRIANGLES, 0, 6);}); >+ assertOk(function(){gl.drawArrays(gl.TRIANGLES, 1, 5);}); >+ assertFail(function(){gl.drawArrays(gl.TRIANGLES, 1, 6);}); >+ assertFail(function(){gl.drawArrays(gl.TRIANGLES, 6, 1);}); >+ vbo.destroy(); >+ assert(0 == checkError(gl, "vbo.destroy")); >+} >+ >+ >+</script> >+<script id="vert" type="x-shader/x-vertex"> >+ attribute vec3 Vertex; >+ attribute vec3 Normal; >+ attribute vec2 Tex; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ gl_Position = vec4(Vertex * Normal, 1.0); >+ texCoord0 = vec4(Tex,0.0,0.0) + gl_Position; >+ } >+</script> >+<script id="frag" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ vec4 c = texCoord0; >+ gl_FragColor = c; >+ } >+</script> >+ >+ >+<style>canvas{ position:absolute; }</style> >+</head><body> >+ <canvas id="gl" width="1" height="1"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/drawArraysOutOfBounds.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/drawArraysOutOfBounds.html >new file mode 100644 >index 00000000000..ff6dc84533e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/drawArraysOutOfBounds.html >@@ -0,0 +1,305 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+var verts = [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0]; >+var normals = [0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0]; >+var texcoords = [0.0,0.0, 1.0,0.0, 0.0,1.0]; >+ >+var vertsA = new Float32Array(verts); >+var normalsA = new Float32Array(normals); >+var texcoordsA = new Float32Array(texcoords); >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ var prog = new Shader(gl, 'vert', 'frag'); >+ prog.use(); >+ var v = prog.attrib('Vertex'); >+ var n = prog.attrib('Normal'); >+ var t = prog.attrib('Tex'); >+ return [gl,prog,v,n,t]; >+} >+ >+Tests.setup = function(gl, prog, v,n,t) { >+ return [gl, prog, v,n,t]; >+} >+Tests.teardown = function(gl, prog, v,n,t) { >+ gl.disableVertexAttribArray(v); >+ gl.disableVertexAttribArray(n); >+ gl.disableVertexAttribArray(t); >+} >+ >+Tests.endUnit = function(gl, prog, v,n,t) { >+ prog.destroy(); >+} >+ >+Tests.testDrawArraysEmpty = function(gl, prog, v,n,t) { >+ var b = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, b); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([]), gl.STATIC_DRAW); >+ assertOk(function(){gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 0);}) >+ gl.enableVertexAttribArray(v); >+ assertGLError(gl, gl.INVALID_OPERATION, "zero size array", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, 1);}); >+ gl.deleteBuffer(b); >+} >+ >+Tests.testDrawArraysOutOfBounds = function(gl, prog, v,n,t) { >+ var b = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, b); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([]), gl.STATIC_DRAW); >+ assertOk(function(){gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 0);}); >+ gl.enableVertexAttribArray(v); >+ assertGLError(gl, gl.INVALID_OPERATION, "zero size array", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, 1);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "zero size array 10000", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, 10000);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "zero size array 10000000000000", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, 10000000000000);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "zero size array fraction", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, 1.6);}); >+ assertGLError(gl, gl.INVALID_VALUE, "negative offset", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, -1);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "count out of range", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, 1);}); >+ assertGLError(gl, gl.INVALID_VALUE, "negative count", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, -1);}); >+ assertGLError(gl, gl.INVALID_VALUE, "positive count, negative offset", >+ function(){gl.drawArrays(gl.TRIANGLES, -1, 1);}); >+ assertGLError(gl, gl.INVALID_VALUE, "negative count, positive offset", >+ function(){gl.drawArrays(gl.TRIANGLES, 1, -1);}); >+ gl.deleteBuffer(b); >+} >+ >+ >+Tests.testDrawArraysWithDataOutOfBounds = function(gl, prog, v,n,t) { >+ var b = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, b); >+ gl.bufferData(gl.ARRAY_BUFFER, vertsA, gl.STATIC_DRAW); >+ gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 0); >+ gl.enableVertexAttribArray(v); >+ assertGLError(gl, gl.INVALID_OPERATION, "3 element array", >+ function(){gl.drawArrays(gl.TRIANGLES, 3, 2);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "3 element array 10000", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, 10000);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "3 element array 10000000000000", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, 10000000000000);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "fractional count", >+ function(){gl.drawArrays(gl.TRIANGLES, 3, 1.6);}); >+ assertGLError(gl, gl.INVALID_VALUE, "negative offset", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, -1);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "count out of range", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, 4);}); >+ assertGLError(gl, gl.INVALID_VALUE, "negative count", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, -1);}); >+ assertGLError(gl, gl.INVALID_VALUE, "positive count, negative offset", >+ function(){gl.drawArrays(gl.TRIANGLES, -1, 2);}); >+ assertGLError(gl, gl.INVALID_VALUE, "negative count, positive offset", >+ function(){gl.drawArrays(gl.TRIANGLES, 1, -1);}); >+ gl.deleteBuffer(b); >+} >+ >+Tests.testDrawArraysMultiOutOfBounds = function(gl, prog, v,n,t) { >+ var bs = []; >+ bs.push(gl.createBuffer()); >+ gl.bindBuffer(gl.ARRAY_BUFFER, bs[bs.length-1]); >+ gl.bufferData(gl.ARRAY_BUFFER, vertsA, gl.STATIC_DRAW); >+ gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 0); >+ bs.push(gl.createBuffer()); >+ gl.bindBuffer(gl.ARRAY_BUFFER, bs[bs.length-1]); >+ gl.bufferData(gl.ARRAY_BUFFER, normalsA, gl.STATIC_DRAW); >+ gl.vertexAttribPointer(n, 3, gl.FLOAT, false, 0, 0); >+ bs.push(gl.createBuffer()); >+ gl.bindBuffer(gl.ARRAY_BUFFER, bs[bs.length-1]); >+ gl.bufferData(gl.ARRAY_BUFFER, texcoordsA, gl.STATIC_DRAW); >+ gl.vertexAttribPointer(t, 2, gl.FLOAT, false, 0, 0); >+ gl.enableVertexAttribArray(v); >+ gl.enableVertexAttribArray(n); >+ gl.enableVertexAttribArray(t); >+ assertGLError(gl, gl.INVALID_OPERATION, "multi array 1", >+ function(){gl.drawArrays(gl.TRIANGLES, 3, 2);}); >+ bs.push(gl.createBuffer()); >+ gl.bindBuffer(gl.ARRAY_BUFFER, bs[bs.length-1]); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(verts.concat(verts)), gl.STATIC_DRAW); >+ bs.push(gl.createBuffer()); >+ gl.bindBuffer(gl.ARRAY_BUFFER, bs[bs.length-1]); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(texcoords.concat(texcoords)), gl.STATIC_DRAW); >+ gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 0); >+ gl.bindBuffer(gl.ARRAY_BUFFER, bs[1]); >+ gl.vertexAttribPointer(n, 3, gl.FLOAT, false, 0, 0); >+ gl.bindBuffer(gl.ARRAY_BUFFER, bs[2]); >+ gl.vertexAttribPointer(t, 2, gl.FLOAT, false, 0, 0); >+ gl.enableVertexAttribArray(v); >+ gl.enableVertexAttribArray(n); >+ gl.enableVertexAttribArray(t); >+ assertGLError(gl, gl.INVALID_OPERATION, "multi array 2", >+ function(){gl.drawArrays(gl.TRIANGLES, 3, 2);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "multi array 3", >+ function(){gl.drawArrays(gl.TRIANGLES, 4, 2);}); >+ gl.bindBuffer(gl.ARRAY_BUFFER, bs[0]); >+ gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 0); >+ gl.bindBuffer(gl.ARRAY_BUFFER, bs[3]); >+ gl.vertexAttribPointer(n, 3, gl.FLOAT, false, 0, 0); >+ gl.bindBuffer(gl.ARRAY_BUFFER, bs[2]); >+ gl.vertexAttribPointer(t, 2, gl.FLOAT, false, 0, 0); >+ gl.enableVertexAttribArray(v); >+ gl.enableVertexAttribArray(n); >+ gl.enableVertexAttribArray(t); >+ assertGLError(gl, gl.INVALID_OPERATION, "multi array 4", >+ function(){gl.drawArrays(gl.TRIANGLES, 3, 2);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "multi array 5", >+ function(){gl.drawArrays(gl.TRIANGLES, 4, 2);}); >+ gl.bindBuffer(gl.ARRAY_BUFFER, bs[0]); >+ gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 0); >+ gl.bindBuffer(gl.ARRAY_BUFFER, bs[1]); >+ gl.vertexAttribPointer(n, 3, gl.FLOAT, false, 0, 0); >+ gl.bindBuffer(gl.ARRAY_BUFFER, bs[4]); >+ gl.vertexAttribPointer(t, 2, gl.FLOAT, false, 0, 0); >+ gl.enableVertexAttribArray(v); >+ gl.enableVertexAttribArray(n); >+ gl.enableVertexAttribArray(t); >+ assertGLError(gl, gl.INVALID_OPERATION, "multi array 6", >+ function(){gl.drawArrays(gl.TRIANGLES, 3, 2);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "multi array 7", >+ function(){gl.drawArrays(gl.TRIANGLES, 3, 2);}); >+ gl.bindBuffer(gl.ARRAY_BUFFER, bs[3]); >+ gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 0); >+ gl.bindBuffer(gl.ARRAY_BUFFER, bs[3]); >+ gl.vertexAttribPointer(n, 3, gl.FLOAT, false, 0, 0); >+ gl.bindBuffer(gl.ARRAY_BUFFER, bs[2]); >+ gl.vertexAttribPointer(t, 2, gl.FLOAT, false, 0, 0); >+ gl.enableVertexAttribArray(v); >+ gl.enableVertexAttribArray(n); >+ gl.enableVertexAttribArray(t); >+ assertGLError(gl, gl.INVALID_OPERATION, "multi array 8", >+ function(){gl.drawArrays(gl.TRIANGLES, 4, 1);}); >+ assertGLError(gl, gl.INVALID_VALUE, "negative count", >+ function(){gl.drawArrays(gl.TRIANGLES, -1, 2);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "zero count???", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, 4);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "multi array 9", >+ function(){gl.drawArrays(gl.TRIANGLES, 1, 4);}); >+ bs.forEach(function(b){ gl.deleteBuffer(b) }); >+} >+ >+ >+Tests.testDrawArraysVBOOutOfBounds = function(gl, prog, v,n,t) { >+ var vbo = new VBO(gl, {size:3, data:Quad.vertices}); >+ vbo.use(v); >+ assertGLError(gl, gl.INVALID_OPERATION, "1", >+ function(){gl.drawArrays(gl.TRIANGLES, 6, 1);}); >+ assertGLError(gl, gl.INVALID_VALUE, "negative count", >+ function(){gl.drawArrays(gl.TRIANGLES, 2, -1);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "3", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, 7);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "4", >+ function(){gl.drawArrays(gl.TRIANGLES, 1, 6);}); >+ vbo.destroy(); >+} >+ >+Tests.testDrawArraysVBOMultiOutOfBounds = function(gl, prog, v,n,t) { >+ // creates VBOs for the quad arrays, binds them with >+ // vertexAttribPointer and calls drawArrays >+ var vbo = new VBO(gl, >+ {size:3, data:Quad.vertices}, >+ {size:3, data:Quad.normals}, >+ {size:2, data:Quad.texcoords}); >+ vbo.use(v, n, t); >+ assertGLError(gl, gl.INVALID_OPERATION, "1", >+ function(){gl.drawArrays(gl.TRIANGLES, 6, 1);}); >+ assertGLError(gl, gl.INVALID_VALUE, "negative count", >+ function(){gl.drawArrays(gl.TRIANGLES, 2, -1);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "2", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, 7);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "3", >+ function(){gl.drawArrays(gl.TRIANGLES, 1, 6);}); >+ vbo.destroy(); >+} >+ >+Tests.testDrawArraysOOBShaderJuggle = function(gl, prog, v,n,t) { >+ var vbo = new VBO(gl, >+ {size:3, data:[0,0,0]}, >+ {size:3, data:[0,0,0,0,0,0]}); >+ vbo.init(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vbo.vbos[0]); >+ gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 0); >+ gl.enableVertexAttribArray(v); >+ assertGLError(gl, gl.INVALID_OPERATION, "offset too big", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, 2);}); >+ var sh2 = new Shader(gl, 'vert', 'frag'); >+ sh2.use(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vbo.vbos[1]); >+ gl.vertexAttribPointer(sh2.attrib('Vertex'), 3, gl.FLOAT, false, 0, 0); >+ gl.enableVertexAttribArray(sh2.attrib('Vertex')); >+ assertOk(function(){gl.drawArrays(gl.TRIANGLES, 0, 2);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "offset too big 2", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, 3);}); >+ prog.use(); >+ gl.vertexAttribPointer(prog.attrib('Vertex'), 3, gl.FLOAT, false, 0, 0); >+ gl.enableVertexAttribArray(prog.attrib('Vertex')); >+ assertOk(function(){gl.drawArrays(gl.TRIANGLES, 0, 2);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "offset too big 3", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, 3);}); >+ sh2.destroy(); >+} >+ >+</script> >+<script id="vert" type="x-shader/x-vertex"> >+ attribute vec3 Vertex; >+ attribute vec3 Normal; >+ attribute vec2 Tex; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ gl_Position = vec4(Vertex * Normal, 1.0); >+ texCoord0 = vec4(Tex,0.0,0.0) + gl_Position; >+ } >+</script> >+<script id="frag" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ gl_FragColor = texCoord0; >+ } >+</script> >+ >+ >+<style>canvas{ position:absolute; }</style> >+</head><body> >+ <canvas id="gl" width="1" height="1"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/drawElements.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/drawElements.html >new file mode 100644 >index 00000000000..18df57b97c8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/drawElements.html >@@ -0,0 +1,143 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+var verts = [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0]; >+var normals = [0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0]; >+var texcoords = [0.0,0.0, 1.0,0.0, 0.0,1.0]; >+var indices = [0,1,2] >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ var prog = new Shader(gl, 'vert', 'frag'); >+ prog.use(); >+ var sh = prog.shader.program; >+ var v = gl.getAttribLocation(sh, 'Vertex'); >+ var n = gl.getAttribLocation(sh, 'Normal'); >+ var t = gl.getAttribLocation(sh, 'Tex'); >+ return [gl,prog,v,n,t]; >+} >+ >+Tests.setup = function(gl, prog, v,n,t) { >+ assert(0 == gl.getError()); >+ return [gl, prog, v,n,t]; >+} >+Tests.teardown = function(gl, prog, v,n,t) { >+ gl.disableVertexAttribArray(v); >+ gl.disableVertexAttribArray(n); >+ gl.disableVertexAttribArray(t); >+} >+ >+Tests.endUnit = function(gl, prog, v,n,t) { >+ prog.destroy(); >+} >+ >+Tests.testDrawElementsVBO = function(gl, prog, v,n,t) { >+ var vbo = new VBO(gl, >+ {size:3, data:Quad.vertices}, >+ {elements:true, data:Quad.indices}); >+ vbo.draw(v); >+ assert(gl.NO_ERROR == checkError(gl, "vbo.draw")); >+ assertOk(function(){gl.drawElements(gl.TRIANGLES, 5, gl.UNSIGNED_SHORT, 1*2);}); >+ assertOk(function(){gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0*2);}); >+ assertOk(function(){gl.drawElements(gl.TRIANGLES, 0, gl.UNSIGNED_SHORT, 2*1);}); >+ assertOk(function(){gl.drawElements(gl.TRIANGLES, 1, gl.UNSIGNED_SHORT, 5*2);}); >+ vbo.destroy(); >+ assert(gl.NO_ERROR == checkError(gl, "vbo.destroy")); >+} >+ >+Tests.testDrawElementsVBOMulti = function(gl, prog, v,n,t) { >+ // creates VBOs for the quad arrays, binds them with >+ // vertexAttribPointer and calls drawElements >+ var vbo = new VBO(gl, >+ {size:3, data:Quad.vertices}, >+ {size:3, data:Quad.normals}, >+ {size:2, data:Quad.texcoords}, >+ {elements:true, data:Quad.indices}); >+ vbo.draw(v, n, t); >+ assert(gl.NO_ERROR == checkError(gl, "vbo.draw")); >+ assertOk(function(){gl.drawElements(gl.TRIANGLES, 5, gl.UNSIGNED_SHORT, 1*2);}); >+ assertOk(function(){gl.drawElements(gl.TRIANGLES, 0, gl.UNSIGNED_SHORT, 2*2);}); >+ assertOk(function(){gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0*2);}); >+ assertOk(function(){gl.drawElements(gl.TRIANGLES, 1, gl.UNSIGNED_SHORT, 5*2);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "count + offset out of range", >+ function(){gl.drawElements(gl.TRIANGLES, 1, gl.UNSIGNED_SHORT, 6*2);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "count + offset out of range 2", >+ function(){gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 1*2);}); >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vbo.vbos[1]); >+ gl.vertexAttribPointer(n, 3, gl.FLOAT, false, 0, 0); >+ assertOk(function(){gl.drawElements(gl.TRIANGLES, 5, gl.UNSIGNED_SHORT, 1*2);}); >+ assertOk(function(){gl.drawElements(gl.TRIANGLES, 0, gl.UNSIGNED_SHORT, 2*2);}); >+ assertOk(function(){gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0*2);}); >+ assertOk(function(){gl.drawElements(gl.TRIANGLES, 1, gl.UNSIGNED_SHORT, 5*2);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "count + offset out of range 3", >+ function(){gl.drawElements(gl.TRIANGLES, 1, gl.UNSIGNED_SHORT, 6*2);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "count + offset out of range 4", >+ function(){gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 1*2);}); >+ vbo.destroy(); >+ assert(gl.NO_ERROR == checkError(gl, "vbo.destroy")); >+} >+ >+ >+</script> >+<script id="vert" type="x-shader/x-vertex"> >+ attribute vec3 Vertex; >+ attribute vec3 Normal; >+ attribute vec2 Tex; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ gl_Position = vec4(Vertex * Normal, 1.0); >+ texCoord0 = vec4(Tex,0.0,0.0) + gl_Position; >+ } >+</script> >+<script id="frag" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ vec4 c = texCoord0; >+ gl_FragColor = c; >+ } >+</script> >+ >+ >+<style>canvas{ position:absolute; }</style> >+</head><body> >+ <canvas id="gl" width="1" height="1"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/isTests.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/isTests.html >new file mode 100644 >index 00000000000..288299623bf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/isTests.html >@@ -0,0 +1,82 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.testIs = function(gl) { >+ var tex = loadTexture(gl, document.getElementById('2d')); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ var fbo = new FBO(gl, 1, 1); >+ fbo.use(); >+ var prog = gl.createProgram(); >+ var sh1 = gl.createShader(gl.VERTEX_SHADER); >+ var sh2 = gl.createShader(gl.FRAGMENT_SHADER); >+ var buf = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buf); >+ assert("tex", gl.isTexture(tex)); >+ assert("fbo", gl.isFramebuffer(fbo.fbo)); >+ assert("rbo", gl.isRenderbuffer(fbo.rbo)); >+ assert("prog", gl.isProgram(prog)); >+ assert("sh1", gl.isShader(sh1)); >+ assert("sh2", gl.isShader(sh2)); >+ assert("buf", gl.isBuffer(buf)); >+ gl.deleteTexture(tex); >+ gl.deleteFramebuffer(fbo.fbo); >+ gl.deleteRenderbuffer(fbo.rbo); >+ gl.deleteProgram(prog); >+ gl.deleteShader(sh1); >+ gl.deleteShader(sh2); >+ gl.deleteBuffer(buf); >+ // NOTE: we purposely do not unbind things. >+ assert("tex", !gl.isTexture(tex)); >+ assert("fbo", !gl.isFramebuffer(fbo.fbo)); >+ assert("rbo", !gl.isRenderbuffer(fbo.rbo)); >+ assert("prog", !gl.isProgram(prog)); >+ assert("sh1", !gl.isShader(sh1)); >+ assert("sh2", !gl.isShader(sh2)); >+ assert("buf", !gl.isBuffer(buf)); >+} >+ >+</script> >+ >+<style>canvas{ position:absolute; }</style> >+</head><body> >+ <canvas id="gl" width="1" height="1"></canvas> >+ <canvas id="2d" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/isTestsBadArgs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/isTestsBadArgs.html >new file mode 100644 >index 00000000000..88dd9b7d42d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/isTestsBadArgs.html >@@ -0,0 +1,108 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" href="../../../resources/js-test-style.css"/> >+<script src="../../../js/js-test-pre.js"></script> >+<script src="../../../js/webgl-test-utils.js"></script> >+ >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<canvas id="canvas_element" width="1" height="1"></canvas> >+<script type="application/javascript"> >+ >+function runTest() >+{ >+ shouldThrow("gl.isBuffer(gl.createFramebuffer())"); >+ shouldThrow("gl.isBuffer(gl.createProgram())"); >+ shouldThrow("gl.isBuffer(gl.createRenderbuffer())"); >+ shouldThrow("gl.isBuffer(gl.createShader(gl.VERTEX_SHADER))"); >+ shouldThrow("gl.isBuffer(gl.createTexture())"); >+ >+ shouldThrow("gl.isFramebuffer(gl.createBuffer())"); >+ shouldThrow("gl.isFramebuffer(gl.createProgram())"); >+ shouldThrow("gl.isFramebuffer(gl.createRenderbuffer())"); >+ shouldThrow("gl.isFramebuffer(gl.createShader(gl.VERTEX_SHADER))"); >+ shouldThrow("gl.isFramebuffer(gl.createTexture())"); >+ >+ shouldThrow("gl.isProgram(gl.createBuffer())"); >+ shouldThrow("gl.isProgram(gl.createFramebuffer())"); >+ shouldThrow("gl.isProgram(gl.createRenderbuffer())"); >+ shouldThrow("gl.isProgram(gl.createShader(gl.VERTEX_SHADER))"); >+ shouldThrow("gl.isProgram(gl.createTexture())"); >+ >+ shouldThrow("gl.isRenderbuffer(gl.createBuffer())"); >+ shouldThrow("gl.isRenderbuffer(gl.createFramebuffer())"); >+ shouldThrow("gl.isRenderbuffer(gl.createProgram())"); >+ shouldThrow("gl.isRenderbuffer(gl.createShader(gl.VERTEX_SHADER))"); >+ shouldThrow("gl.isRenderbuffer(gl.createTexture())"); >+ >+ shouldThrow("gl.isShader(gl.createBuffer())"); >+ shouldThrow("gl.isShader(gl.createFramebuffer())"); >+ shouldThrow("gl.isShader(gl.createProgram())"); >+ shouldThrow("gl.isShader(gl.createRenderbuffer())"); >+ shouldThrow("gl.isShader(gl.createTexture())"); >+ >+ shouldThrow("gl.isTexture(gl.createBuffer())"); >+ shouldThrow("gl.isTexture(gl.createFramebuffer())"); >+ shouldThrow("gl.isTexture(gl.createProgram())"); >+ shouldThrow("gl.isTexture(gl.createRenderbuffer())"); >+ shouldThrow("gl.isTexture(gl.createShader(gl.VERTEX_SHADER))"); >+ >+ shouldBe("gl.isBuffer(null)", "false"); >+ shouldBe("gl.isBuffer(undefined)", "false"); >+ >+ shouldBe("gl.isFramebuffer(null)", "false"); >+ shouldBe("gl.isFramebuffer(undefined)", "false"); >+ >+ shouldBe("gl.isProgram(null)", "false"); >+ shouldBe("gl.isProgram(undefined)", "false"); >+ >+ shouldBe("gl.isRenderbuffer(null)", "false"); >+ shouldBe("gl.isRenderbuffer(undefined)", "false"); >+ >+ shouldBe("gl.isShader(null)", "false"); >+ shouldBe("gl.isShader(undefined)", "false"); >+ >+ shouldBe("gl.isTexture(null)", "false"); >+ shouldBe("gl.isTexture(undefined)", "false"); >+} >+ >+description("Tests type checking for isX() functions"); >+var gl = WebGLTestUtils.create3DContext(document.getElementById("canvas_element")); >+runTest(); >+var successfullyParsed = true; >+</script> >+ >+<script src="../../../js/js-test-post.js"></script> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/readPixels.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/readPixels.html >new file mode 100644 >index 00000000000..4f363998052 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/readPixels.html >@@ -0,0 +1,63 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.testReadPixels = function(gl) { >+ var id = new Uint8Array(16 * 16 * 4); >+ assertOk(function(){gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, id);}); >+ assertOk(function(){gl.readPixels(0,0,16,16,gl.RGBA, gl.UNSIGNED_BYTE, id);}); >+ assertOk(function(){gl.readPixels(15,15,1,1,gl.RGBA, gl.UNSIGNED_BYTE, id);}); >+} >+Tests.testReadPixelsRGBA = function(gl) { >+ gl.clearColor(1, 0, 1, 0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ var id = new Uint8Array(4); >+ gl.readPixels(1,2,1,1,gl.RGBA, gl.UNSIGNED_BYTE, id); >+ assertArrayEquals([255, 0, 255, 0], id); >+} >+ >+Tests.endUnit = function(gl) { >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/readPixelsBadArgs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/readPixelsBadArgs.html >new file mode 100644 >index 00000000000..3415c7d9676 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/readPixelsBadArgs.html >@@ -0,0 +1,124 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript" src="../../../js/webgl-test-utils.js"></script> >+<script type="application/javascript"> >+var wtu = WebGLTestUtils; >+var defaultImgUrl = "https://get.webgl.org/conformance-resources/opengl_logo.jpg"; >+var localImgUrl = "../../../resources/opengl_logo.jpg"; >+ >+Tests.autoinit = false; // Prevents the test from running until the image is loaded >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.testReadPixels = function(gl) { >+ // we can't know if this is going to fail because of negative width >+ // or because the buffer size doesn't match the dimensions. >+ assertSomeGLError(gl, "negative width", >+ function(){gl.readPixels(0,0,-1,1, gl.RGBA, gl.UNSIGNED_BYTE, >+ new Uint8Array(4));}); >+ assertSomeGLError(gl, "negative height", >+ function(){gl.readPixels(0,0,1,-1, gl.RGBA, gl.UNSIGNED_BYTE, >+ new Uint8Array(4));}); >+ assertOk("negative x", >+ function(){gl.readPixels(-1,0,1,1, gl.RGBA, gl.UNSIGNED_BYTE, >+ new Uint8Array(4));}); >+ assertOk("negative y", >+ function(){gl.readPixels(0,-1,1,1, gl.RGBA, gl.UNSIGNED_BYTE, >+ new Uint8Array(4));}); >+ assertOk("height > backbuffer height", >+ function(){gl.readPixels(0,0,16,17, gl.RGBA, gl.UNSIGNED_BYTE, >+ new Uint8Array(16*17*4));}); >+ assertOk("width > backbuffer width", >+ function(){gl.readPixels(0,0,17,16, gl.RGBA, gl.UNSIGNED_BYTE, >+ new Uint8Array(17*16*4));}); >+ assertOk("width, height = 0", >+ function(){gl.readPixels(0,0,0,0, gl.RGBA, gl.UNSIGNED_BYTE, >+ new Uint8Array(0));}); >+ // we can't know if this is going to fail because of negative width >+ // or because the buffer size doesn't match the dimensions. >+ assertSomeGLError(gl, "bad format", >+ function(){gl.readPixels(0,0,1,1, gl.FLOAT, gl.UNSIGNED_BYTE, >+ new Uint8Array(4*4));}); >+ // we can't know if this is going to fail because of negative width >+ // or because the buffer size doesn't match the dimensions. >+ assertSomeGLError(gl, "bad type", >+ function(){gl.readPixels(0,0,1,1, gl.ALPHA, gl.FLOAT, >+ new Uint8Array(1*4));}); >+} >+ >+Tests.testReadPixelsSOPIMG = function(gl) { >+ var img = document.getElementById("i"); >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ // SOP failure >+ assertThrowNoGLError(gl, "throw because img is from another domain", >+ function(){gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img);}); >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ assertOk("canvas still origin-clean", >+ function(){gl.readPixels(0,0,1,1, gl.RGBA, gl.UNSIGNED_BYTE, >+ new Uint8Array(4));}); >+ gl.deleteTexture(tex); >+} >+Tests.testReadPixelsSOPCanvas = function(gl) { >+ var img = document.getElementById("i"); >+ var c = document.getElementById("c"); >+ c.getContext("2d").drawImage(img, 0, 0); >+ assertFail("canvas throws because not origin clean", >+ function(){c.getContext("2d").getImageData(0,0,1,1);}); >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ // SOP failure >+ assertThrowNoGLError(gl, "throw because canvas is not origin clean", >+ function(){gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, c);}); >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ assertOk("canvas still origin-clean", >+ function(){gl.readPixels(0,0,1,1, gl.RGBA, gl.UNSIGNED_BYTE, >+ new Uint8Array(4));}); >+ gl.deleteTexture(tex); >+} >+ >+Tests.endUnit = function(gl) { >+} >+ >+wtu.setupImageForCrossOriginTest("#i", defaultImgUrl, localImgUrl, initTests); >+</script> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+<canvas id="c" width="128" height="128"></canvas> >+<img id="i"> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texImage2D.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texImage2D.html >new file mode 100644 >index 00000000000..adebf9612a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texImage2D.html >@@ -0,0 +1,86 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.setup = function(gl) { >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ var texCubeMap = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_CUBE_MAP, texCubeMap); >+ return [gl] >+} >+ >+Tests.teardown = function(gl,tex,texCubeMap) { >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ gl.bindTexture(gl.TEXTURE_CUBE_MAP, null); >+ gl.deleteTexture(tex); >+ gl.deleteTexture(texCubeMap); >+} >+ >+Tests.testTexImage2D = function(gl) { >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1,1,0,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0])); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 2,1,0,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0,0,0,0,0])); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1,2,0,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0,0,0,0,0])); >+ var valid_targets = [ >+ gl.TEXTURE_2D, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_X, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_X, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_Y, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_Y, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_Z, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_Z >+ ]; >+ valid_targets.forEach(function(t) { >+ assertOk(function(){gl.texImage2D(t, 0, gl.RGBA, 1,1,0,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0]));}); >+ }); >+} >+ >+Tests.testTexImage2DNull = function(gl) { >+ assertOk(function(){gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1,1,0,gl.RGBA,gl.UNSIGNED_BYTE, null);}); >+} >+ >+Tests.endUnit = function(gl) { >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texImage2DBadArgs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texImage2DBadArgs.html >new file mode 100644 >index 00000000000..f35ede65d7c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texImage2DBadArgs.html >@@ -0,0 +1,107 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.setup = function(gl) { >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ return [gl] >+} >+ >+Tests.teardown = function(gl,tex) { >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ gl.deleteTexture(tex); >+} >+ >+Tests.testTexImage2D = function(gl) { >+ var data = new Uint8Array(4); >+ assertGLError(gl, gl.INVALID_OPERATION, "not enough data", function(){ >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 2,1,0,gl.RGBA,gl.UNSIGNED_BYTE, data); >+ }); >+ assertGLError(gl, gl.INVALID_OPERATION, "not enough data", function(){ >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1,2,0,gl.RGBA,gl.UNSIGNED_BYTE, data); >+ }); >+ assertGLError(gl, gl.INVALID_ENUM, "bad target", function(){ >+ gl.texImage2D(gl.FLOAT, 0, gl.RGBA, 1,1,0,gl.RGBA,gl.UNSIGNED_BYTE, null); >+ }); >+ assertGLErrorIn(gl, [gl.INVALID_ENUM, gl.INVALID_VALUE], >+ "bad internal format/format", function(){ >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.FLOAT, 1,1,0,gl.FLOAT,gl.UNSIGNED_BYTE, null); >+ }); >+ assertGLError(gl, gl.INVALID_VALUE, "border > 0", function(){ >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1,1,48,gl.RGBA,gl.UNSIGNED_BYTE, null); >+ }); >+ // The spec says zero size is OK. If you disagree please list the section >+ // in the spec that details this issue. >+ assertOk("zero size", function(){ >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,0,0,gl.RGBA,gl.UNSIGNED_BYTE, null); >+ }); >+ assertGLError(gl, gl.INVALID_VALUE, "negative width", function(){ >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, -1,1,0,gl.RGBA,gl.UNSIGNED_BYTE, null); >+ }); >+ assertGLError(gl, gl.INVALID_VALUE, "negative height", function(){ >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1,-1,0,gl.RGBA,gl.UNSIGNED_BYTE, null); >+ }); >+ assertGLErrorIn(gl, [gl.INVALID_ENUM, gl.INVALID_OPERATION], "bad format", function(){ >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1,1,0,gl.FLOAT,gl.UNSIGNED_BYTE, null); >+ }); >+ assertGLErrorIn(gl, [gl.INVALID_ENUM, gl.INVALID_OPERATION], "bad type", function(){ >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1,1,0,gl.RGBA,gl.TEXTURE_2D, null); >+ }); >+ assertGLError(gl, gl.INVALID_OPERATION, "not enough data", function(){ >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1,1,0,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array(3)); >+ }); >+ assertGLError(gl, gl.INVALID_OPERATION, "format and type incompatible",function(){ >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1,1,0,gl.RGBA,gl.UNSIGNED_SHORT_5_6_5, null); >+ }); >+ assertGLError(gl, gl.INVALID_OPERATION, "format and type incompatible",function(){ >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, 1,1,0,gl.RGB,gl.UNSIGNED_SHORT_4_4_4_4, null); >+ }); >+} >+ >+ >+Tests.endUnit = function(gl) { >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texImage2DHTML.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texImage2DHTML.html >new file mode 100644 >index 00000000000..134ee381218 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texImage2DHTML.html >@@ -0,0 +1,159 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript" src="../../../js/webgl-test-utils.js"></script> >+<script type="application/javascript"> >+var wtu = WebGLTestUtils; >+var defaultImgUrl = "https://get.webgl.org/conformance-resources/thunderbird-logo-64x64.png"; >+var localImgUrl = "../../../resources/thunderbird-logo-64x64.png"; >+ >+Tests.autoinit = false; // Prevents the test from running until the image is loaded >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ gl.viewport(0,0,canvas.width,canvas.height); >+ gl.clearColor(0,0,1,1); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ gl.disable(gl.DEPTH_TEST); >+ return [gl]; >+} >+ >+Tests.setup = function(gl) { >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ var texCubeMap = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_CUBE_MAP, texCubeMap); >+ return [gl] >+} >+ >+Tests.teardown = function(gl, tex, texCubeMap) { >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ gl.deleteTexture(tex); >+ gl.bindTexture(gl.TEXTURE_CUBE_MAP, null); >+ gl.deleteTexture(texCubeMap); >+} >+ >+Tests.testTexImage2D = function(gl) { >+ gl.enable(gl.BLEND); >+ var img = document.getElementById('i'); >+ var c = document.getElementById('c'); >+ var ctx = c.getContext('2d'); >+ ctx.drawImage(img,0,0); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+ var f = new Filter(gl, 'identity-flip-vert', 'identity-frag'); >+ gl.blendFunc(gl.ONE, gl.ZERO); >+ f.apply(); >+ f.destroy(); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, c); >+ f = new Filter(gl, 'identity-hflip-vert', 'identity-frag'); >+ gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA); >+ f.apply(); >+ f.destroy(); >+ var valid_targets = [ >+ gl.TEXTURE_2D, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_X, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_X, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_Y, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_Y, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_Z, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_Z >+ ]; >+ valid_targets.forEach(function(t) { >+ assertOk(function(){gl.texImage2D(t, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, c);}); >+ assertOk(function(){gl.texImage2D(t, 1, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, c);}); >+ }); >+} >+ >+Tests.testTexImage2DNonSOP = function(gl) { >+ var img = document.getElementById('i2'); >+ while (!img.complete) {} >+ var c = document.getElementById('c'); >+ var ctx = c.getContext('2d'); >+ ctx.drawImage(img,0,0); >+ assertThrowNoGLError(gl, "texImage2D with cross-origin image should throw exception.", >+ function(){gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img);}); >+ assertThrowNoGLError(gl, "texImage2D with dirty origin canvas should throw exception.", >+ function(){gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, c);}); >+} >+ >+Tests.endUnit = function(gl) { >+} >+ >+wtu.setupImageForCrossOriginTest("#i2", defaultImgUrl, localImgUrl, initTests); >+</script> >+<script id="identity-flip-vert" type="x-shader/x-vertex"> >+attribute vec3 Vertex; >+attribute vec2 Tex; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ texCoord0 = vec4(Tex.s, 1.0-Tex.t, 0.0, 0.0); >+ gl_Position = vec4(Vertex, 1.0); >+} >+</script> >+<script id="identity-hflip-vert" type="x-shader/x-vertex"> >+attribute vec3 Vertex; >+attribute vec2 Tex; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ texCoord0 = vec4(1.0-Tex.s, Tex.t, 0.0, 0.0); >+ gl_Position = vec4(Vertex, 1.0); >+} >+</script> >+<script id="identity-frag" type="x-shader/x-fragment"> >+precision mediump float; >+ >+uniform sampler2D Texture; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ vec4 c = texture2D(Texture, texCoord0.st); >+ gl_FragColor = c; >+} >+</script> >+</head><body> >+<canvas id="gl" width="256" height="256"></canvas> >+<canvas id="c" width="256" height="256"></canvas> >+<img id="i" width="256" height="256" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAATVElEQVR4nO3d+VPUd57Hcf2b9k9Y+z44+qK7OZoGFVA5VfBGzah9cxpNzGEOoRua5lBEue/DK4fZ7MapmSm3Mlshu8xOdCpDJt3v/aEBAUHAOMG4z0fV53fqU/V6fd7fT/e32bEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwOvBkar7l+3+GwBsk8xUrT0rTb8vx2Q45janlu7YsWPnsgXgTeYwak85U3Xv5ZiM3+XbUh/l2dICBc6080WZ1ur92baSHRQB8GayGdUWu1HzoSNFO+ZM1f2cbTLM51lT5woc5rkDObbZ/Vm2SEm23VvsyjhV5nJQBsCbxGZQVtmN6p4Mo/YPdqNGHKlayUrXJ9zWlESh0xIvzsmYL3HZ54pzMm6VuRyRMpfTW+pyUAbAm8BmVNVnGNTTdqP6vzOMGrGnaMSZqpNsk17ybKlS6DTL/ixbotRlj5flOubL3I65MpfjVrnbEalYKINSl335vQGA3wKbUW2xGdWRDKP66wyjWhYLwJGiFWeaTrJNBnFbU2SP3ST7s6xSmmuXcrczUe52xstzHfPlbsdcudt5qyzX3lKWlxkszXGeK8mxnyzJySjeQRkArzebQVllM6p7bUb149UF4EjVSmaaTrLS9eKypMgee7ocyLZJmdshFXmZUpHnXFEGB/OzJsrdjqEyt/NmWa49XJbt9Ja6Mk4Vu7hEBF5LNr2q3mZQz9gM6u9XFEBqsgCcaTrJXJgEci0pstdhkv3ZNinNTZbAofwsOZSfJQfzMqU8z5kodzsSZbmOeIXb+XW52zFa5nLcKnPZI2ULl4jFfKIAvB7MOrXFZlBHbAb11zaj+kmGUbNuAWSm65dKYHdGmhRlWqQ8zyFHCnLk+L5cOV6UK0cKXVK5J1sO5mdKhdspZavKoDTX0VPiciTLIHtFGVAIwK/NYlBW2fTqXptB/dhmSJ7+LyqArHS95JiTJVDgNEllQZZ4KgulrrpU6qtLJXBsv5wt3yMn9rvlaIFLDi8vg1xH4mB+5p+Wl0Fpjr2lJMcRLM6ynyvOzjhxIIt7A+BXY9Gr6q0L4/9SAaRoxL7w/L9WAWSbDJJrTZFid4Z4jxZJU/1xufHhOem+ek6il0/LB74qaTxTJoGj++Vs2R45vj9XjhTkyOHdC48JC2VwaHfmnyrczn+vcDsmynLtQyU5GTeLczLCpTk2T3GW7VhxVsae7d4f4I1l1qktVoM6YjOovrYa1D8sFoB9WQE415kA8u1pcvRAjnwUOiLDLQG5190o9242ylRHnQyG/XLz6nmJXqqWD3yV0nC6VPxH98nZst1yfF+uHC10SdXebDmUnyyDqoLs7w7lZ35b7nb8scxt/7dSl32kJCejqyQn40pJTkbZDiYC4NWzaJVVVr2q12ZQPbYa1H9fuwB0SwWQla6XLFOyAAoyTfLW4T3SfuWM3L3RIA/7L8vD/svyZe8l+ezW23Kvu1EmO2ploNkn3VfPSevb1fK+t1Iaz5RJ7cli8R0pktOl+XKsKFkGBxfKoHJv1l8P5mf+uSLP8fvyXMdMmdsRKXc5qotdGQXbvV/AG8WiV9Vb9aoZq141azOoxWbcXAHkWlOkJC9Dak8Xy61PL8iDnotLBbBUBH2X5Yvbl+RBz0W5e6NBJtprpL/ZJzc/Oi/XP3hLWi6ekvc8h6WuukS8Vc/KYPEC8WhhzpOqguzvKvdmfXV4d2b3wfzM9w/lZTENAK+CWaewWHWqiE2v+tqqV/2w2QLINhkkP2Nh/K89ImNtIfmi99Kz8Pcl15dL65J80XtJPr/1tty/2Sh3uxvkzvV6GY+FpO+aV65/8DuJXDwpVzyHpO7UQhmU5MvRIpdU7c2RQ7uz5MR+9x+OFbnuHi3MiVQVuKoP784u2u79A37TLFpllVWn6rXqVY+tetWPGxbAsgvAvU6TvHVot8SunJY7N+rly761g/9lb3J9sWx9fvuSfH77bXnQc1HudTfITFedjLWFpPeaR7o+eEvCjSflyoVDUlddKsHjB+TC4UI5VZwnVQU5ibcq9nx1ujS/58QB99XqYnf5DqYB4OVYdM/Gf6te9Y/k8//GBeCyGKXEnSE11Qek55Pzcv9m48rQrxP8L25fki9uvy2fr1qf3bqYnAxuNMh0Z52MRINy+1OPXP/wd9J+5Yw015+Qd84flJqTxXLhcIGcLM77+UhBzt8uVBa2nqvce/ZsxZ6y7d5L4Ddlcfy36FVfW/SqH6wGlawugMWvATvTlhWAySB5GalydH+OfFRzREajQfn81tvrh/6FwV9cF+WzWxflwa2Lcr/notzrbpSZ6/Uy1VUnkx21MtwSkJ5PLkjHe2elqf64XD53UEInDiQuHC6Yry7Omz1W5HrY+FbF4R1MA8DmWLTKKsuy8d9qUL+wAJZ/C3CPM13OHtwtbe+elunr9fLFusF/PvSf31o7+A96nq37PRflfk+j3L+Z/Fjx7o0Gme6qk4n2Ghlq8UvPx+el/coZuVZ3XC6fq/i57lTx32pOHngUOlUc/jR4lEtCYCMWnareolfNWPSqWatB9dOaBbDGl4BcFqMUu20SOnVAbn58Tu52N27qtP98g9A/WAz9QvAX173FEuhukLvdDcnJoLNWxmM1Mhjxy82Pzknn+2cSsXdPz4cbT8x+GKh8+FHwSO0OSgBYm1mnsJh1qohFr1wY/5XxZwWw/teAs9KTvwtwZH+2XA1VyXBrUB70XFz/tF9nzN9K8O91N8i9hfAvrjs3GuTOjXqZXnhEGG+vkdFoUAbD/p97Pj7/t56r57/pu+b5pOXd6qPbvdfAa8ei3VVl0al6LXrlY4tO+aNFr0pstgD2ONLlzMHdEn2nWqY66+SzlxzzHywb858L/TrBv3vjWfgX18z15JruqpOpzlqZaA8lxmKhv49Gg3/oD/s+3u69Bl47Fp2i3qJVzVh0ylmrTvmTVZ+8AFz5HsDzBZBjNkpxrk2Cpw5I90fn5M6Nhhee9lsOfvfmg3/n+rPwz1yvk5muOpleWJMdtfHJjprvJjtqKABgueT4r4iYdcqvzbpdP1j0yvjqArCv9SJQul7ctlSp2pctHwYrZaglIPdvNq5/2r/gYm9Twb+x9eBPd9XJVHISmJ/qrP1murOGRwBgOZN2V5VFp+y1aBfGf50ysVQAa3wHYLEAstL1stuRLqcr8qX18imZ7KiVBz0XXxj6jZ/vNxn86xsHP/kIUCdTnXXx6c7av0x11PRs914Drx2TTlFv0ipmzDrlrEWn/MmiV8lmCiDbbJADuTYJntwvN67+Tmau1ydDvmbot36x9yz49S8Z/NrFNT/dVfv7qc66k9u918BrxaxePf4r4hsVgHPh9wBzrSlSVZQtHwQqZTDil7vdjVs77bcY/JmtB1+mOmsTkx21T6a6ake2e6+B145Ju6vKpFP2mrTKx2bts/F/8VuALyqA3fY0OV2eLy2XTspEe43cf8Gz/TYEXyY7amWyoyY+1VHz/VRnXfN27zXw2lka/7XKWYtW+ZNFp5TNFEC2ySD7XVYJnNgnXR++JdNddZs+7X+d4NfKZEeNTHbUzE921Dya5PIPWClNrbCYtcnx36Td9YNZp4hbdKqNC2Bh/K8szJL3/YdlIOyTOzcatvwx3sY3+r8o+DLZEUpMtNc8mehg/AeeY1LvqjJplb0mjeKxWav40axVJlYXwFpvAmam6STfnibVZXkSefukjMVCcrd7EyP+eqf9loJfu2HwJzpqZKK9RsbbQ/HJ9tD3k501jP/AaiaNot6kSY7/Zq3iJ7NOKYsXgC8qgCyTQfblWMV/fJ90fnBWJjtrV4z3Wzntn7vRv/586Lca/GcrND/RHno02c74D6yQplZYTFpFxKRVLI3/Kwvg+ReB7CnJ3wFwWVLkcGGWvOc/LP3NXpm5Xv/LT/tNBn9yE8EfT4Y/MR4LPRlvDzH+A6uZNYpKk3ZXb/rC+G/SKhKbLYC8jDQ5VZYn4YsnZLQtKHdubC70mx3zf0nwx9tDMh4LyVgsFB+PBb8fb2f8B56TrlHUp2sV0yaNYmn830wBZKXrZV+2RXzH90nH+2dloqMmWQCv4LR/+eCHloK/EH4ZjwXnx2PBR2PtQcZ/YDmTRpmarlY0mTS7vkrTKP5q0ip+NuuUYtmgABypWnFZjHKoIFOueA9JX5NHprvqNh36zZ72vyT4C+FPjLYFn4zHgoz/wGomza7d6ZpdMZNG8Y1Jo3hi1i48/2+iAPIyUuVkqVuaGk/ISDQoM9df3Wm/Mvg1Ww7+WCwkY21BGW0Lxkfbgt+PxUKM/8BqaZpdu9PUiiaTRvGVSav4y9InABsUQGa6XoqyLeI9ViTt752R8fbQqsC/4tN+i8EfawvKaDQoI9HA/Ghb8JuxKOM/8ByT5l9T09SKQLpGMWTSKv7TrFU8NeuUieUFYFv1YyCOVK3kmJPj/7veg9J7zSNTnbWv6LR/BcFfWCPRQHwkGvjLSDTAm3/AetLVyjyTRvmOSauYNOsU35p1yn9sVABuW6qcLM2Vaw3HZbg1INNdr+a0X/sz/K0FfzQalNFoIHn6RwO/H2kL8uYf8CImza5Ck27Xe2atcsqiU8bXLYAUjWSm66QwyyzeY4USu3JaxmKhtUP/i0/7mhWhXxH8tvWCH5SRaEBGo4HESKv/yWhrgMs/YDPSdcois1bxvkWnfGrRK+NrFYA9RSvZZoMc3OuUdzwH5fa1CzLRUfNPPe3H1zjt1wv+4hpuDcRHooHvR6IBLv+AzTLrlEVmnfKhRad8al3z58C04ralyImSXLnWcEyGWv0y2VkrU13Ph/6lTvsNgj+6QfBHWgMy3BqQ4Vb//HBr4NFI1M/lH7AVFr0qYNGrHlr1qqc2gyq+/E1AZ5pOCrNM4jlaIG1XTstoW/Cfd9q/VPADMtzqTwy3+J8MM/4DL2XnihIwquI2o1rsKRrJNhmkYq9DLl+okFufnJfx9ppnoV/vc/utnvaxNcb8TQU/IMOtfhlq8ceHW/zfD0cDF7Z7I4Hfqp02vSpg06se2gzqpxlGTdyeopFca4ocL3HJp/VHZTDik4mOzY34L33ab+7EXwz+wvLND7cEbo20BjK3exOB37KdNqM6YDOoH2YY1U+dabp4QaZJLhzZK9F3q2UkGpCJDU/70Ks77TcMvl+GWnyJwYjvyVBL4J3t3jzgTbDTZlQHMoyah9lm/dOKPc74pfPl0vPxORmLhX6d035TwV9YEV98sMU/NRDm8g94VXbaU7UBl8X48ESJ6+kn9Ud+Hgh7EuPtoVdz2rdtJvQvDv5gxLewvH8ciHg7hloClu3eNOBNstNtSw34jxc9bH2nenaoxTc33h6aH4uF4uPtwcR48n/u/RNO+80G3ydDEd//DIR99wbCvsbt3izgTbTzaqgy0PPxufBINBAbbw89Go+FZsdjobnx9tDcaCw4P9oWjI/FgomxWCAx+gpO++G1xvxVwR+M+GQw7P1xMOx7PBj29fZHvFXbvVHAm2rn4prsrKkd6wiFR9tDsfH2mthILPRorC04O9YWmhuNheZG2wLzI9FgfLQtkBiNBhLPhf4XnPaLayDik4GwTwbC3v8daPY+HIj4Pupv9jL+A7+CncvXeHtN7WgsGB6NhWKjsVBsJBp8NBoNzo5EA3MLa364NRAfafUnhpPr5U77lcGXgbD37wNhz5/7m70jA2HPmW3eE+D/rZWF0BasHW4LhkeigdhILBQbbg08Gm4NzA63+OeGW/xzQ63++aEWf3yoxZdIrmWhb3k+9INLoV8KvvQ3e+MDzd4f+ps9/9Ef9rYNRHyObd4DAAtWFMJoW7B2uDUYHooGYkPRQGyoxf9oqMU3OxTxzQ1FfHNDLb75oYgvPhjxJpZWeO3gJ8PvSfQ3eX8aCHtn+5u9M33NXP4Br7MVhTDcGqgdbvWHB1v9scFWf2ww4n80GPHNDoa9c4MR39xg2Ds3EPbOD4S98YGwJzEQ9iT6m73S3+yVvmbPfH+zZ76vyfO0v9n7p75mb29/M5d/wG/Jc4Uw1OIP90f8scGIP9Yf8ccGwr5HA2Hv7ECzd26g2TvXlwx9vK/Z821/s+e/+po83/Y3eT7ra/Y0cfkH/LbtXL2GWny1A2FfuC/sjfWHvbH+Zs+jvrD3Zm+TZ6i3yTPW1+yZ7GvyXO9r9vi3908H8M+wohB6m7xlt695Tw6EfecGw15ff5Pnnb5mT6D32oUD2/x3AvgV7dyxY8fOgSavu7/Jk9V3zave7j8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICV/g9tPJEQu1XvmQAAAABJRU5ErkJggg=="> >+<img id="i2"> >+ >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texImage2DHTMLBadArgs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texImage2DHTMLBadArgs.html >new file mode 100644 >index 00000000000..abd1a7d1c18 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texImage2DHTMLBadArgs.html >@@ -0,0 +1,72 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<meta charset="utf-8"> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ return [gl, tex]; >+} >+ >+Tests.testTexImage2D = function(gl) { >+ var b = document.createElement('b'); >+ var div = document.createElement('div'); >+ var c = document.getElementById('c'); >+ assertFail("bad element b", >+ function() {gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, b); }); >+ assertFail("bad element div", >+ function() {gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, div); }); >+ assertFail("no element", >+ function() {gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, 0); }); >+ assertFail("string as data", >+ function() {gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, "foo"); }); >+ assertOk("canvas as data", >+ function() {gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, c); }); >+ assertFail("bad target", >+ function() {gl.texImage2D(gl.FLOAT, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, c); }); >+} >+ >+Tests.endUnit = function(gl, tex) { >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ gl.deleteTexture(tex); >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+<canvas id="c" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texSubImage2D.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texSubImage2D.html >new file mode 100644 >index 00000000000..a3b57af8546 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texSubImage2D.html >@@ -0,0 +1,91 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.setup = function(gl) { >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ var texCubeMap = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_CUBE_MAP, texCubeMap); >+ return [gl] >+} >+ >+Tests.teardown = function(gl,tex,texCubeMap) { >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ gl.deleteTexture(tex); >+ gl.bindTexture(gl.TEXTURE_CUBE_MAP, null); >+ gl.deleteTexture(texCubeMap); >+} >+ >+Tests.testTexSubImage2D = function(gl) { >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 2,2,0,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])); >+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, 1,1,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0])); >+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, 2,1,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0,0,0,0,0])); >+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, 1,2,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0,0,0,0,0])); >+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 1,0, 1,1,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0])); >+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,1, 1,1,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0])); >+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 1,1, 1,1,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0])); >+ gl.texImage2D(gl.TEXTURE_2D, 1,gl.RGBA, 1,1,0,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0])); >+ gl.texSubImage2D(gl.TEXTURE_2D, 1, 0,0, 1,1,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0])); >+ var valid_targets = [ >+ gl.TEXTURE_2D, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_X, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_X, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_Y, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_Y, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_Z, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_Z >+ ]; >+ valid_targets.forEach(function(t) { >+ assertOk(function(){ >+ gl.texImage2D(t, 0, gl.RGBA, 1,1,0,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0])); >+ gl.texSubImage2D(t, 0, 0,0, 1,1,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0])); >+ }); >+ }); >+} >+ >+Tests.endUnit = function(gl) { >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texSubImage2DBadArgs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texSubImage2DBadArgs.html >new file mode 100644 >index 00000000000..4fc716ab2d1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texSubImage2DBadArgs.html >@@ -0,0 +1,116 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.setup = function(gl) { >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ return [gl] >+} >+ >+Tests.teardown = function(gl,tex) { >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ gl.deleteTexture(tex); >+} >+ >+Tests.testTexImage2D = function(gl) { >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 2,2,0,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])); >+ assertGLError(gl, gl.INVALID_OPERATION, "not enough data", function(){ >+ gl.texSubImage2D(gl.TEXTURE_2D, 0,0, 0, 2,1,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0])); >+ }); >+ assertGLError(gl, gl.INVALID_OPERATION, "not enough data", function(){ >+ gl.texSubImage2D(gl.TEXTURE_2D, 0,0, 0, 1,2,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0])); >+ }); >+ assertGLError(gl, gl.INVALID_ENUM, "bad target", function(){ >+ gl.texSubImage2D(gl.FLOAT, 0, 0,0, 1,1,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0])); >+ }); >+ assertGLError(gl, gl.INVALID_VALUE, "width out of range", function(){ >+ gl.texSubImage2D(gl.TEXTURE_2D, 0,0, 0, 3,1,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0])); >+ }); >+ assertGLError(gl, gl.INVALID_VALUE, "height out of range", function(){ >+ gl.texSubImage2D(gl.TEXTURE_2D, 0,0, 0, 1,3,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0])); >+ }); >+ assertGLError(gl, gl.INVALID_VALUE, "dimension out of range", function(){ >+ gl.texSubImage2D(gl.TEXTURE_2D,0, 1,1, 2,1, gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0])); >+ }); >+ assertGLError(gl, gl.INVALID_VALUE, "dimension out of range", function(){ >+ gl.texSubImage2D(gl.TEXTURE_2D,0, 1,1, 1,2, gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0])); >+ }); >+ assertOk("zero size", function(){ >+ gl.texSubImage2D(gl.TEXTURE_2D, 0,0, 0, 0,0,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0])); >+ }); >+ assertSomeGLError(gl, "negative width", function(){ >+ gl.texSubImage2D(gl.TEXTURE_2D, 0,0, 0, -1,1,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0])); >+ }); >+ assertSomeGLError(gl, "negative height", function(){ >+ gl.texSubImage2D(gl.TEXTURE_2D, 0,0, 0, 1,-1,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0])); >+ }); >+ assertGLError(gl, gl.INVALID_VALUE, "negative x", function(){ >+ gl.texSubImage2D(gl.TEXTURE_2D, 0,-1,1,1,1,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0])); >+ }); >+ assertGLError(gl, gl.INVALID_VALUE, "negative y", function(){ >+ gl.texSubImage2D(gl.TEXTURE_2D, 0,1,-1,1,1,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0])); >+ }); >+ assertGLErrorIn(gl, [gl.INVALID_OPERATION, gl.INVALID_ENUM], "bad format", function(){ >+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, 1,1,gl.FLOAT,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0,0])); >+ }); >+ assertGLErrorIn(gl, [gl.INVALID_OPERATION, gl.INVALID_ENUM], "bad type", function(){ >+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, 1,1,gl.RGBA,gl.TEXTURE_2D, new Uint8Array([0,0,0,0])); >+ }); >+ assertGLError(gl, gl.INVALID_OPERATION, "not enough data", function(){ >+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, 1,1,gl.RGBA,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0])); >+ }); >+ assertGLError(gl, gl.INVALID_OPERATION, "format does not match internal format", function(){ >+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, 1,1,gl.RGB,gl.UNSIGNED_BYTE, new Uint8Array([0,0,0])); >+ }); >+ assertGLError(gl, gl.INVALID_OPERATION, "type does not match original", function(){ >+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, 1,1,gl.RGBA,gl.UNSIGNED_SHORT_4_4_4_4, new Uint16Array([0])); >+ }); >+} >+ >+ >+Tests.endUnit = function(gl) { >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texSubImage2DHTML.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texSubImage2DHTML.html >new file mode 100644 >index 00000000000..232b5da4188 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texSubImage2DHTML.html >@@ -0,0 +1,172 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript" src="../../../js/webgl-test-utils.js"></script> >+<script type="application/javascript"> >+var wtu = WebGLTestUtils; >+var defaultImgUrl = "https://get.webgl.org/conformance-resources/thunderbird-logo-64x64.png"; >+var localImgUrl = "../../../resources/thunderbird-logo-64x64.png"; >+ >+Tests.autoinit = false; // Prevents the test from running until the image is loaded >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ >+ gl.viewport(0,0,canvas.width,canvas.height); >+ gl.clearColor(0,0,1,1); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ gl.disable(gl.DEPTH_TEST); >+ return [gl]; >+} >+ >+Tests.setup = function(gl) { >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ var texCubeMap = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_CUBE_MAP, texCubeMap); >+ return [gl] >+} >+ >+Tests.teardown = function(gl, tex, texCubeMap) { >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ gl.deleteTexture(tex); >+ gl.bindTexture(gl.TEXTURE_CUBE_MAP, null); >+ gl.deleteTexture(texCubeMap); >+} >+ >+Tests.testTexImage2D = function(gl) { >+ gl.enable(gl.BLEND); >+ var img = document.getElementById('i'); >+ var c = document.getElementById('c'); >+ var ctx = c.getContext('2d'); >+ ctx.drawImage(img,0,0); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img); >+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, img); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+ var f = new Filter(gl, 'identity-flip-vert', 'identity-frag'); >+ gl.blendFunc(gl.ONE, gl.ZERO); >+ f.apply(); >+ f.destroy(); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, c); >+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, c); >+ f = new Filter(gl, 'identity-hflip-vert', 'identity-frag'); >+ gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA); >+ f.apply(); >+ f.destroy(); >+ var valid_targets = [ >+ gl.TEXTURE_2D, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_X, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_X, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_Y, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_Y, >+ gl.TEXTURE_CUBE_MAP_POSITIVE_Z, >+ gl.TEXTURE_CUBE_MAP_NEGATIVE_Z >+ ]; >+ valid_targets.forEach(function(t) { >+ assertOk(function(){ >+ gl.texImage2D(t, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, c); >+ gl.texSubImage2D(t, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, c); >+ }); >+ assertOk(function(){ >+ gl.texImage2D(t, 1, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, c); >+ gl.texSubImage2D(t, 1, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, c); >+ }); >+ }); >+} >+ >+Tests.testTexImage2DNonSOP = function(gl) { >+ var img = document.getElementById('i2'); >+ while (!img.complete) {} >+ var c = document.getElementById('c'); >+ var ctx = c.getContext('2d'); >+ ctx.drawImage(img,0,0); >+ assertThrowNoGLError(gl, "texImage2D with cross-origin image should throw exception.", >+ function(){gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img);}); >+ assertThrowNoGLError(gl, "texSubImage2D with cross-origin image should throw exception.", >+ function(){gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGBA, gl.UNSIGNED_BYTE, img);}); >+ assertThrowNoGLError(gl, "texImage2D with dirty origin canvas should throw exception.", >+ function(){gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, c);}); >+ assertThrowNoGLError(gl, "texSubImage2D with dirty origin canvas should throw exception.", >+ function(){gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGBA, gl.UNSIGNED_BYTE, c);}); >+} >+ >+Tests.endUnit = function(gl) { >+} >+ >+wtu.setupImageForCrossOriginTest("#i2", defaultImgUrl, localImgUrl, initTests); >+</script> >+<script id="identity-flip-vert" type="x-shader/x-vertex"> >+attribute vec3 Vertex; >+attribute vec2 Tex; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ texCoord0 = vec4(Tex.s, 1.0-Tex.t, 0.0, 0.0); >+ gl_Position = vec4(Vertex, 1.0); >+} >+</script> >+<script id="identity-hflip-vert" type="x-shader/x-vertex"> >+attribute vec3 Vertex; >+attribute vec2 Tex; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ texCoord0 = vec4(1.0-Tex.s, Tex.t, 0.0, 0.0); >+ gl_Position = vec4(Vertex, 1.0); >+} >+</script> >+<script id="identity-frag" type="x-shader/x-fragment"> >+precision mediump float; >+ >+uniform sampler2D Texture; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ vec4 c = texture2D(Texture, texCoord0.st); >+ gl_FragColor = c; >+} >+</script> >+</head><body> >+<canvas id="gl" width="256" height="256"></canvas> >+<canvas id="c" width="256" height="256"></canvas> >+<img id="i" width="256" height="256" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAATVElEQVR4nO3d+VPUd57Hcf2b9k9Y+z44+qK7OZoGFVA5VfBGzah9cxpNzGEOoRua5lBEue/DK4fZ7MapmSm3Mlshu8xOdCpDJt3v/aEBAUHAOMG4z0fV53fqU/V6fd7fT/e32bEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwOvBkar7l+3+GwBsk8xUrT0rTb8vx2Q45janlu7YsWPnsgXgTeYwak85U3Xv5ZiM3+XbUh/l2dICBc6080WZ1ur92baSHRQB8GayGdUWu1HzoSNFO+ZM1f2cbTLM51lT5woc5rkDObbZ/Vm2SEm23VvsyjhV5nJQBsCbxGZQVtmN6p4Mo/YPdqNGHKlayUrXJ9zWlESh0xIvzsmYL3HZ54pzMm6VuRyRMpfTW+pyUAbAm8BmVNVnGNTTdqP6vzOMGrGnaMSZqpNsk17ybKlS6DTL/ixbotRlj5flOubL3I65MpfjVrnbEalYKINSl335vQGA3wKbUW2xGdWRDKP66wyjWhYLwJGiFWeaTrJNBnFbU2SP3ST7s6xSmmuXcrczUe52xstzHfPlbsdcudt5qyzX3lKWlxkszXGeK8mxnyzJySjeQRkArzebQVllM6p7bUb149UF4EjVSmaaTrLS9eKypMgee7ocyLZJmdshFXmZUpHnXFEGB/OzJsrdjqEyt/NmWa49XJbt9Ja6Mk4Vu7hEBF5LNr2q3mZQz9gM6u9XFEBqsgCcaTrJXJgEci0pstdhkv3ZNinNTZbAofwsOZSfJQfzMqU8z5kodzsSZbmOeIXb+XW52zFa5nLcKnPZI2ULl4jFfKIAvB7MOrXFZlBHbAb11zaj+kmGUbNuAWSm65dKYHdGmhRlWqQ8zyFHCnLk+L5cOV6UK0cKXVK5J1sO5mdKhdspZavKoDTX0VPiciTLIHtFGVAIwK/NYlBW2fTqXptB/dhmSJ7+LyqArHS95JiTJVDgNEllQZZ4KgulrrpU6qtLJXBsv5wt3yMn9rvlaIFLDi8vg1xH4mB+5p+Wl0Fpjr2lJMcRLM6ynyvOzjhxIIt7A+BXY9Gr6q0L4/9SAaRoxL7w/L9WAWSbDJJrTZFid4Z4jxZJU/1xufHhOem+ek6il0/LB74qaTxTJoGj++Vs2R45vj9XjhTkyOHdC48JC2VwaHfmnyrczn+vcDsmynLtQyU5GTeLczLCpTk2T3GW7VhxVsae7d4f4I1l1qktVoM6YjOovrYa1D8sFoB9WQE415kA8u1pcvRAjnwUOiLDLQG5190o9242ylRHnQyG/XLz6nmJXqqWD3yV0nC6VPxH98nZst1yfF+uHC10SdXebDmUnyyDqoLs7w7lZ35b7nb8scxt/7dSl32kJCejqyQn40pJTkbZDiYC4NWzaJVVVr2q12ZQPbYa1H9fuwB0SwWQla6XLFOyAAoyTfLW4T3SfuWM3L3RIA/7L8vD/svyZe8l+ezW23Kvu1EmO2ploNkn3VfPSevb1fK+t1Iaz5RJ7cli8R0pktOl+XKsKFkGBxfKoHJv1l8P5mf+uSLP8fvyXMdMmdsRKXc5qotdGQXbvV/AG8WiV9Vb9aoZq141azOoxWbcXAHkWlOkJC9Dak8Xy61PL8iDnotLBbBUBH2X5Yvbl+RBz0W5e6NBJtprpL/ZJzc/Oi/XP3hLWi6ekvc8h6WuukS8Vc/KYPEC8WhhzpOqguzvKvdmfXV4d2b3wfzM9w/lZTENAK+CWaewWHWqiE2v+tqqV/2w2QLINhkkP2Nh/K89ImNtIfmi99Kz8Pcl15dL65J80XtJPr/1tty/2Sh3uxvkzvV6GY+FpO+aV65/8DuJXDwpVzyHpO7UQhmU5MvRIpdU7c2RQ7uz5MR+9x+OFbnuHi3MiVQVuKoP784u2u79A37TLFpllVWn6rXqVY+tetWPGxbAsgvAvU6TvHVot8SunJY7N+rly761g/9lb3J9sWx9fvuSfH77bXnQc1HudTfITFedjLWFpPeaR7o+eEvCjSflyoVDUlddKsHjB+TC4UI5VZwnVQU5ibcq9nx1ujS/58QB99XqYnf5DqYB4OVYdM/Gf6te9Y/k8//GBeCyGKXEnSE11Qek55Pzcv9m48rQrxP8L25fki9uvy2fr1qf3bqYnAxuNMh0Z52MRINy+1OPXP/wd9J+5Yw015+Qd84flJqTxXLhcIGcLM77+UhBzt8uVBa2nqvce/ZsxZ6y7d5L4Ddlcfy36FVfW/SqH6wGlawugMWvATvTlhWAySB5GalydH+OfFRzREajQfn81tvrh/6FwV9cF+WzWxflwa2Lcr/notzrbpSZ6/Uy1VUnkx21MtwSkJ5PLkjHe2elqf64XD53UEInDiQuHC6Yry7Omz1W5HrY+FbF4R1MA8DmWLTKKsuy8d9qUL+wAJZ/C3CPM13OHtwtbe+elunr9fLFusF/PvSf31o7+A96nq37PRflfk+j3L+Z/Fjx7o0Gme6qk4n2Ghlq8UvPx+el/coZuVZ3XC6fq/i57lTx32pOHngUOlUc/jR4lEtCYCMWnareolfNWPSqWatB9dOaBbDGl4BcFqMUu20SOnVAbn58Tu52N27qtP98g9A/WAz9QvAX173FEuhukLvdDcnJoLNWxmM1Mhjxy82Pzknn+2cSsXdPz4cbT8x+GKh8+FHwSO0OSgBYm1mnsJh1qohFr1wY/5XxZwWw/teAs9KTvwtwZH+2XA1VyXBrUB70XFz/tF9nzN9K8O91N8i9hfAvrjs3GuTOjXqZXnhEGG+vkdFoUAbD/p97Pj7/t56r57/pu+b5pOXd6qPbvdfAa8ei3VVl0al6LXrlY4tO+aNFr0pstgD2ONLlzMHdEn2nWqY66+SzlxzzHywb858L/TrBv3vjWfgX18z15JruqpOpzlqZaA8lxmKhv49Gg3/oD/s+3u69Bl47Fp2i3qJVzVh0ylmrTvmTVZ+8AFz5HsDzBZBjNkpxrk2Cpw5I90fn5M6Nhhee9lsOfvfmg3/n+rPwz1yvk5muOpleWJMdtfHJjprvJjtqKABgueT4r4iYdcqvzbpdP1j0yvjqArCv9SJQul7ctlSp2pctHwYrZaglIPdvNq5/2r/gYm9Twb+x9eBPd9XJVHISmJ/qrP1murOGRwBgOZN2V5VFp+y1aBfGf50ysVQAa3wHYLEAstL1stuRLqcr8qX18imZ7KiVBz0XXxj6jZ/vNxn86xsHP/kIUCdTnXXx6c7av0x11PRs914Drx2TTlFv0ipmzDrlrEWn/MmiV8lmCiDbbJADuTYJntwvN67+Tmau1ydDvmbot36x9yz49S8Z/NrFNT/dVfv7qc66k9u918BrxaxePf4r4hsVgHPh9wBzrSlSVZQtHwQqZTDil7vdjVs77bcY/JmtB1+mOmsTkx21T6a6ake2e6+B145Ju6vKpFP2mrTKx2bts/F/8VuALyqA3fY0OV2eLy2XTspEe43cf8Gz/TYEXyY7amWyoyY+1VHz/VRnXfN27zXw2lka/7XKWYtW+ZNFp5TNFEC2ySD7XVYJnNgnXR++JdNddZs+7X+d4NfKZEeNTHbUzE921Dya5PIPWClNrbCYtcnx36Td9YNZp4hbdKqNC2Bh/K8szJL3/YdlIOyTOzcatvwx3sY3+r8o+DLZEUpMtNc8mehg/AeeY1LvqjJplb0mjeKxWav40axVJlYXwFpvAmam6STfnibVZXkSefukjMVCcrd7EyP+eqf9loJfu2HwJzpqZKK9RsbbQ/HJ9tD3k501jP/AaiaNot6kSY7/Zq3iJ7NOKYsXgC8qgCyTQfblWMV/fJ90fnBWJjtrV4z3Wzntn7vRv/586Lca/GcrND/RHno02c74D6yQplZYTFpFxKRVLI3/Kwvg+ReB7CnJ3wFwWVLkcGGWvOc/LP3NXpm5Xv/LT/tNBn9yE8EfT4Y/MR4LPRlvDzH+A6uZNYpKk3ZXb/rC+G/SKhKbLYC8jDQ5VZYn4YsnZLQtKHdubC70mx3zf0nwx9tDMh4LyVgsFB+PBb8fb2f8B56TrlHUp2sV0yaNYmn830wBZKXrZV+2RXzH90nH+2dloqMmWQCv4LR/+eCHloK/EH4ZjwXnx2PBR2PtQcZ/YDmTRpmarlY0mTS7vkrTKP5q0ip+NuuUYtmgABypWnFZjHKoIFOueA9JX5NHprvqNh36zZ72vyT4C+FPjLYFn4zHgoz/wGomza7d6ZpdMZNG8Y1Jo3hi1i48/2+iAPIyUuVkqVuaGk/ISDQoM9df3Wm/Mvg1Ww7+WCwkY21BGW0Lxkfbgt+PxUKM/8BqaZpdu9PUiiaTRvGVSav4y9InABsUQGa6XoqyLeI9ViTt752R8fbQqsC/4tN+i8EfawvKaDQoI9HA/Ghb8JuxKOM/8ByT5l9T09SKQLpGMWTSKv7TrFU8NeuUieUFYFv1YyCOVK3kmJPj/7veg9J7zSNTnbWv6LR/BcFfWCPRQHwkGvjLSDTAm3/AetLVyjyTRvmOSauYNOsU35p1yn9sVABuW6qcLM2Vaw3HZbg1INNdr+a0X/sz/K0FfzQalNFoIHn6RwO/H2kL8uYf8CImza5Ck27Xe2atcsqiU8bXLYAUjWSm66QwyyzeY4USu3JaxmKhtUP/i0/7mhWhXxH8tvWCH5SRaEBGo4HESKv/yWhrgMs/YDPSdcois1bxvkWnfGrRK+NrFYA9RSvZZoMc3OuUdzwH5fa1CzLRUfNPPe3H1zjt1wv+4hpuDcRHooHvR6IBLv+AzTLrlEVmnfKhRad8al3z58C04ralyImSXLnWcEyGWv0y2VkrU13Ph/6lTvsNgj+6QfBHWgMy3BqQ4Vb//HBr4NFI1M/lH7AVFr0qYNGrHlr1qqc2gyq+/E1AZ5pOCrNM4jlaIG1XTstoW/Cfd9q/VPADMtzqTwy3+J8MM/4DL2XnihIwquI2o1rsKRrJNhmkYq9DLl+okFufnJfx9ppnoV/vc/utnvaxNcb8TQU/IMOtfhlq8ceHW/zfD0cDF7Z7I4Hfqp02vSpg06se2gzqpxlGTdyeopFca4ocL3HJp/VHZTDik4mOzY34L33ab+7EXwz+wvLND7cEbo20BjK3exOB37KdNqM6YDOoH2YY1U+dabp4QaZJLhzZK9F3q2UkGpCJDU/70Ks77TcMvl+GWnyJwYjvyVBL4J3t3jzgTbDTZlQHMoyah9lm/dOKPc74pfPl0vPxORmLhX6d035TwV9YEV98sMU/NRDm8g94VXbaU7UBl8X48ESJ6+kn9Ud+Hgh7EuPtoVdz2rdtJvQvDv5gxLewvH8ciHg7hloClu3eNOBNstNtSw34jxc9bH2nenaoxTc33h6aH4uF4uPtwcR48n/u/RNO+80G3ydDEd//DIR99wbCvsbt3izgTbTzaqgy0PPxufBINBAbbw89Go+FZsdjobnx9tDcaCw4P9oWjI/FgomxWCAx+gpO++G1xvxVwR+M+GQw7P1xMOx7PBj29fZHvFXbvVHAm2rn4prsrKkd6wiFR9tDsfH2mthILPRorC04O9YWmhuNheZG2wLzI9FgfLQtkBiNBhLPhf4XnPaLayDik4GwTwbC3v8daPY+HIj4Pupv9jL+A7+CncvXeHtN7WgsGB6NhWKjsVBsJBp8NBoNzo5EA3MLa364NRAfafUnhpPr5U77lcGXgbD37wNhz5/7m70jA2HPmW3eE+D/rZWF0BasHW4LhkeigdhILBQbbg08Gm4NzA63+OeGW/xzQ63++aEWf3yoxZdIrmWhb3k+9INLoV8KvvQ3e+MDzd4f+ps9/9Ef9rYNRHyObd4DAAtWFMJoW7B2uDUYHooGYkPRQGyoxf9oqMU3OxTxzQ1FfHNDLb75oYgvPhjxJpZWeO3gJ8PvSfQ3eX8aCHtn+5u9M33NXP4Br7MVhTDcGqgdbvWHB1v9scFWf2ww4n80GPHNDoa9c4MR39xg2Ds3EPbOD4S98YGwJzEQ9iT6m73S3+yVvmbPfH+zZ76vyfO0v9n7p75mb29/M5d/wG/Jc4Uw1OIP90f8scGIP9Yf8ccGwr5HA2Hv7ECzd26g2TvXlwx9vK/Z821/s+e/+po83/Y3eT7ra/Y0cfkH/LbtXL2GWny1A2FfuC/sjfWHvbH+Zs+jvrD3Zm+TZ6i3yTPW1+yZ7GvyXO9r9vi3908H8M+wohB6m7xlt695Tw6EfecGw15ff5Pnnb5mT6D32oUD2/x3AvgV7dyxY8fOgSavu7/Jk9V3zave7j8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICV/g9tPJEQu1XvmQAAAABJRU5ErkJggg=="> >+<img id="i2"> >+ >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texSubImage2DHTMLBadArgs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texSubImage2DHTMLBadArgs.html >new file mode 100644 >index 00000000000..6a466b26bc7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texSubImage2DHTMLBadArgs.html >@@ -0,0 +1,104 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ return [gl, tex]; >+} >+ >+Tests.testTexImage2D = function(gl) { >+ var b = document.createElement('b'); >+ var div = document.createElement('div'); >+ var c = document.getElementById('c'); >+ assertOk("make texture", >+ function() {gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, c); }); >+ assertGLError(gl, gl.INVALID_VALUE, "y + height > texture height", >+ function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 1, gl.RGBA, gl.UNSIGNED_BYTE, c); }); >+ assertGLError(gl, gl.INVALID_VALUE, "x + width > texture width", >+ function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, c); }); >+ assertGLError(gl, gl.INVALID_VALUE, "negative x", >+ function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, -1, 0, gl.RGBA, gl.UNSIGNED_BYTE, c); }); >+ assertGLError(gl, gl.INVALID_VALUE, "negative y", >+ function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, -1, gl.RGBA, gl.UNSIGNED_BYTE, c); }); >+ assertGLError(gl, gl.INVALID_VALUE, "negative level", >+ function() {gl.texSubImage2D(gl.TEXTURE_2D, -1, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, c); }); >+ assertThrowNoGLError(gl, "bad element b", >+ function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGBA, gl.UNSIGNED_BYTE, b); }); >+ assertThrowNoGLError(gl, "bad element div", >+ function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGBA, gl.UNSIGNED_BYTE, div); }); >+ assertThrowNoGLError(gl, "no element", >+ function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGBA, gl.UNSIGNED_BYTE, 0); }); >+ assertThrowNoGLError(gl, "string as data", >+ function() {gl.texSubImage2D(gl.TEXTURE_2D, 0,0, 0, gl.RGBA, gl.UNSIGNED_BYTE, "foo"); }); >+ assertGLError(gl, gl.INVALID_ENUM, "bad target", >+ function() {gl.texSubImage2D(gl.FLOAT, 0, 0,0, gl.RGBA, gl.UNSIGNED_BYTE, c); }); >+ assertOk("good args", >+ function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, c); }); >+ assertGLError(gl, gl.INVALID_OPERATION, "format not same as original", >+ function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGB, gl.UNSIGNED_BYTE, c); }); >+ assertGLError(gl, gl.INVALID_OPERATION, "type not same as original", >+ function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGBA, gl.UNSIGNED_SHORT_4_4_4_4, c); }); >+ assertOk("make texture RGB", >+ function() {gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE, c); }); >+ assertOk("format same as original RGB", >+ function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGB, gl.UNSIGNED_BYTE, c); }); >+ assertGLError(gl, gl.INVALID_OPERATION, "format not same as original RGB", >+ function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGBA, gl.UNSIGNED_BYTE, c); }); >+ assertGLError(gl, gl.INVALID_OPERATION, "type not same as original RGB", >+ function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGB, gl.UNSIGNED_SHORT_5_6_5, c); }); >+ assertOk("make texture RGBA 4_4_4_4", >+ function() {gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_SHORT_4_4_4_4, c); }); >+ assertOk("format same as original RGBA 4_4_4_4", >+ function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGBA, gl.UNSIGNED_SHORT_4_4_4_4, c); }); >+ assertGLError(gl, gl.INVALID_OPERATION, "format not same as original RGBA 4_4_4_4", >+ function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGB, gl.UNSIGNED_BYTE, c); }); >+ assertGLError(gl, gl.INVALID_OPERATION, "type not same as original RGBA 4_4_4_4", >+ function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGBA, gl.UNSIGNED_BYTE, c); }); >+} >+ >+Tests.endUnit = function(gl, tex) { >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ gl.deleteTexture(tex); >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+<canvas id="c" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformMatrix.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformMatrix.html >new file mode 100644 >index 00000000000..647c383c909 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformMatrix.html >@@ -0,0 +1,90 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.testUniformf = function(gl) { >+ var sh = new Filter(gl, 'foobar-vert', 'foobar-frag'); >+ sh.apply(function(f){ >+ var foo = f.uniform('foo'); >+ var bar = f.uniform('bar'); >+ var bar3 = f.uniform('bar3'); >+ gl.uniformMatrix4fv(foo, false, [1,0,0,0, 0,2,0,0, 0,0,3,0, 0,0,0,4]); >+ gl.uniformMatrix2fv(bar, false, [2,1, 2,2]); >+ gl.uniformMatrix3fv(bar3, false, [2,2,2, 2,2,2, 2,1,2]); >+ }); >+ var d = new Uint8Array(4); >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, d); >+ assertEquals([1,2,3,8], [d[0], d[1], d[2], d[3]]); >+ sh.destroy(); >+} >+ >+Tests.endUnit = function(gl) { >+} >+ >+</script> >+<script id="foobar-vert" type="x-shader/x-vertex"> >+attribute vec3 Vertex; >+attribute vec2 Tex; >+ >+uniform mat2 bar; >+uniform mat3 bar3; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ texCoord0 = vec4(Tex.s, 1.0-Tex.t, bar[0][1]+bar3[2][1], 0.0); >+ gl_Position = vec4(Vertex, 1.0); >+} >+</script> >+<script id="foobar-frag" type="x-shader/x-fragment"> >+precision mediump float; >+ >+uniform mat4 foo; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ gl_FragColor = vec4(foo[0][0]/256.0, foo[1][1]/256.0, foo[2][2]/256.0, foo[3][3]*texCoord0.z/256.0); >+} >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformMatrixBadArgs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformMatrixBadArgs.html >new file mode 100644 >index 00000000000..df909b1762a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformMatrixBadArgs.html >@@ -0,0 +1,164 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var unwrappedGL = getGLContext(canvas); >+ var gl = wrapGLContext(unwrappedGL); >+ return [gl, unwrappedGL]; >+} >+ >+Tests.testUniformf = function(gl, unwrappedGL) { >+ var sh = new Filter(gl, 'foobar-vert', 'foobar-frag'); >+ sh.apply(function(f){ >+ var fm4 = f.uniform('fm4'); >+ var fm2 = f.uniform('fm2'); >+ var fm3 = f.uniform('fm3'); >+ assertGLError(gl, gl.INVALID_VALUE, "bad transpose 4fv", >+ function(){gl.uniformMatrix4fv(fm4, true, [1,0,0,0, 0,2,0,0, 0,0,3,0, 0,0,0,4]);}); >+ assertGLError(gl, gl.INVALID_VALUE, "bad transpose 3fv", >+ function(){gl.uniformMatrix3fv(fm3, true, [1,0,0, 0,2,0, 0,0,3]);}); >+ assertGLError(gl, gl.INVALID_VALUE, "bad transpose 2fv", >+ function(){gl.uniformMatrix2fv(fm2, true, [1,0, 0,2]);}); >+ assertThrowNoGLError(gl, "bad location", >+ function(){gl.uniformMatrix4fv(588939, false, [1,0,0,0, 0,2,0,0, 0,0,3,0, 0,0,0,4]);}); >+ assertThrowNoGLError(gl, "bad location (negative)", >+ function(){gl.uniformMatrix4fv(-588939, false, [1,0,0,0, 0,2,0,0, 0,0,3,0, 0,0,0,4]);}); >+ assertGLError(gl, gl.INVALID_VALUE, "17 values to 4fv", >+ function(){gl.uniformMatrix4fv(fm4, false, [0,1,0,0,0, 0,2,0,0, 0,0,3,0, 0,0,0,4]);}); >+ assertGLError(gl, gl.INVALID_VALUE, "5 values to 2fv", >+ function(){gl.uniformMatrix2fv(fm2, false, [0,2,1, 2,2]);}); >+ assertGLError(gl, gl.INVALID_VALUE, "10 values to 3fv", >+ function(){gl.uniformMatrix3fv(fm3, false, [0,2,2,2, 2,2,2, 2,1,2]);}); >+ assertGLError(gl, gl.INVALID_VALUE, "too few values to 4fv", >+ function(){gl.uniformMatrix4fv(fm4, false, [0,0,0, 0,2,0,0, 0,0,3,0, 0,0,0,4]);}); >+ assertGLError(gl, gl.INVALID_VALUE, "too few values to 2fv", >+ function(){gl.uniformMatrix2fv(fm2, false, [1, 2,2]);}); >+ assertGLError(gl, gl.INVALID_VALUE, "too few values to 2fv", >+ function(){gl.uniformMatrix2fv(fm2, false, []);}); >+ assertThrowNoGLError(gl, "string for data", >+ function(){gl.uniformMatrix2fv(fm2, false, "fm4");}); >+ assertGLError(gl, gl.INVALID_VALUE, "too few values to 3fv", >+ function(){gl.uniformMatrix3fv(fm3, false, [2,2, 2,2,2, 2,1,2]);}); >+ gl.uniformMatrix4fv(fm4, false, [1,0,0,0, 0,2,0,0, 0,0,3,0, 0,0,0,4]); >+ gl.uniformMatrix2fv(fm2, false, [2,1, 2,2]); >+ gl.uniformMatrix3fv(fm3, false, [2,2,2, 2,2,2, 2,1,2]); >+ assertGLError(gl, gl.INVALID_OPERATION, "3fv on mat4", >+ function(){gl.uniformMatrix3fv(fm4, false, [1,0,0, 0,2,0, 0,0,3]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "3fv on mat2", >+ function(){gl.uniformMatrix3fv(fm2, false, [0,2,1, 0,2,2, 0,0,0]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "2fv om mat3", >+ function(){gl.uniformMatrix2fv(fm3, false, [2,2, 2,2]);}); >+ for (var ii = 2; ii <= 4; ++ii) { >+ var all = []; >+ var mats = [[],[]]; >+ for (var jj = 0; jj < 2; ++jj) { >+ for (var kk = 0; kk < ii * ii; ++kk) { >+ mats[jj].push(jj + 1); >+ all.push(jj + 1); >+ } >+ } >+ var loc0Name = 'am' + ii + '[0]'; >+ var loc1Name = 'am' + ii + '[1]'; >+ var loc0 = f.uniform(loc0Name); >+ var loc1 = f.uniform(loc1Name); >+ var fname = "uniformMatrix" + ii + "fv"; >+ assert(loc0Name, loc0 != null); >+ assert(loc1Name, loc1 != null); >+ assertOk("set array of 2 matrices " + ii + "fv", >+ function(){gl[fname].call(gl,loc0, false, all);}); >+ var actual = unwrappedGL.getUniform(sh.shader.program, loc0); >+ assert("got value for loc0", >+ gl.NO_ERROR == checkError(gl, "getUniform loc0")); >+ assertArrayEquals(mats[0], actual); >+ var actual = unwrappedGL.getUniform(sh.shader.program, loc1); >+ assert("got value for loc1", >+ gl.NO_ERROR == checkError(gl, "getUniform loc1")); >+ assertArrayEquals(mats[1], actual); >+ assertOk("set array of second array of 2 matrixes", >+ function(){gl[fname].call(gl, loc1, false, mats[0]);}); >+ var actual = unwrappedGL.getUniform(sh.shader.program, loc1); >+ assert("got value for loc1", >+ gl.NO_ERROR == checkError(gl, "getUniform loc1")); >+ assertArrayEquals(mats[0], actual); >+ var big = mats[1].concat([3]); >+ assertGLError(gl, gl.INVALID_VALUE, "set array of first array of 2 matrixes plus 1 value", >+ function(){gl[fname].call(gl, loc0, false, big);}); >+ } >+ }); >+ var d = new Uint8Array(4); >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, d); >+ assertArrayEqualsWithEpsilon([1,2,3,8], d, [1,1,1,1]); >+ sh.destroy(); >+} >+ >+Tests.endUnit = function(gl) { >+} >+ >+</script> >+<script id="foobar-vert" type="x-shader/x-vertex"> >+attribute vec3 Vertex; >+attribute vec2 Tex; >+ >+uniform mat2 fm2; >+uniform mat3 fm3; >+uniform mat2 am2[2]; >+uniform mat3 am3[2]; >+uniform mat4 am4[2]; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ texCoord0 = vec4(Tex.s, 1.0-Tex.t, fm2[0][1]+fm3[2][1], 0.0); >+ float d = am2[0][1][1] + am3[0][2][2] + am4[0][3][3] + >+ am2[1][1][1] + am3[1][2][2] + am4[1][3][3]; >+ gl_Position = vec4(Vertex, 1.0 + d * 0.0001); >+} >+</script> >+<script id="foobar-frag" type="x-shader/x-fragment"> >+precision mediump float; >+ >+uniform mat4 fm4; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ gl_FragColor = vec4(fm4[0][0]/256.0, fm4[1][1]/256.0, fm4[2][2]/256.0, fm4[3][3]*texCoord0.z/256.0); >+} >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformf.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformf.html >new file mode 100644 >index 00000000000..11b2958f055 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformf.html >@@ -0,0 +1,95 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.testUniformf = function(gl) { >+ var sh = new Filter(gl, 'foobar-vert', 'foobar-frag'); >+ sh.apply(function(f){ >+ var foo = f.uniform('foo'); >+ var bar = f.uniform('bar'); >+ gl.uniform4fv(foo, [1,2,3,4]); >+ gl.uniform1fv(bar, [2]); >+ }); >+ var d = new Uint8Array(4); >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, d); >+ assertEquals([1,2,3,8], [d[0], d[1], d[2], d[3]]); >+ sh.apply(function(f){ >+ var foo = f.uniform('foo'); >+ var bar = f.uniform('bar'); >+ gl.uniform4f(foo, 2,2,3,4); >+ gl.uniform1f(bar, 3); >+ }); >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, d); >+ assertEquals([2,2,3,12], [d[0], d[1], d[2], d[3]]); >+ sh.destroy(); >+} >+ >+Tests.endUnit = function(gl) { >+} >+ >+</script> >+<script id="foobar-vert" type="x-shader/x-vertex"> >+attribute vec3 Vertex; >+attribute vec2 Tex; >+ >+uniform float bar; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ texCoord0 = vec4(Tex.s, 1.0-Tex.t, bar, 0.0); >+ gl_Position = vec4(Vertex, 1.0); >+} >+</script> >+<script id="foobar-frag" type="x-shader/x-fragment"> >+precision mediump float; >+ >+uniform vec4 foo; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ gl_FragColor = vec4(foo.r/255.0, foo.g/255.0, foo.b/255.0, foo.a*texCoord0.z/255.0); >+} >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformfArrayLen1.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformfArrayLen1.html >new file mode 100644 >index 00000000000..776c3500a5d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformfArrayLen1.html >@@ -0,0 +1,121 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.testUniformArray = function(gl) { >+ var sh = new Filter(gl, 'foobar-vert', 'foobar-frag'); >+ sh.apply(function(f){ >+ var uniV4 = f.uniform('uniV4'); >+ var uniFloat = f.uniform('uniFloat'); >+ assertOk("1fv on 1fv", >+ function(){gl.uniform1fv(uniFloat, [2]);}); >+ assertOk("5 values on 1fv", >+ function(){gl.uniform1fv(uniFloat, [2,3,4,5,6]);}); >+ assertOk("4fv on 4fv", >+ function(){gl.uniform4fv(uniV4, [1, 2, 3, 4]);}); >+ assertOk("8 values on 4fv", >+ function(){gl.uniform4fv(uniV4, [1, 2, 3, 4, 5, 6, 7, 8]);}); >+ >+ var uniformsFound = 0; >+ var numUniforms = gl.getProgramParameter(f.shader.program, gl.ACTIVE_UNIFORMS); >+ for (var i = 0; i < numUniforms; ++i) { >+ var uniformName = gl.getActiveUniform(f.shader.program, i).name; >+ if (uniformName.indexOf('uniV4') == 0 || uniformName.indexOf('uniFloat') == 0) { >+ assert("Uniform array of length 1 ends with [0]", uniformName.indexOf("[0]") != -1); >+ ++uniformsFound; >+ } >+ } >+ assert("Both uniforms found", uniformsFound == 2); >+ >+ uniV4 = f.uniform('uniV4[0]'); >+ uniFloat = f.uniform('uniFloat[0]'); >+ assertOk("1fv on 1fv", >+ function(){gl.uniform1fv(uniFloat, [2]);}); >+ assertOk("5 values on 1fv", >+ function(){gl.uniform1fv(uniFloat, [2,3,4,5,6]);}); >+ assertOk("4fv on 4fv", >+ function(){gl.uniform4fv(uniV4, [1, 2, 3, 4]);}); >+ assertOk("8 values on 4fv", >+ function(){gl.uniform4fv(uniV4, [1, 2, 3, 4, 5, 6, 7, 8]);}); >+ >+ }); >+ var d = new Uint8Array(4); >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, d); >+ assertArrayEquals([1,2,3,8], d); >+ sh.destroy(); >+ throwError(gl); >+} >+ >+Tests.endUnit = function(gl) { >+} >+ >+</script> >+<script id="foobar-vert" type="x-shader/x-vertex"> >+attribute vec3 Vertex; >+attribute vec2 Tex; >+ >+uniform float uniFloat[1]; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ texCoord0 = vec4(Tex.s, 1.0-Tex.t, uniFloat[0], 0.0); >+ gl_Position = vec4(Vertex, 1.0); >+} >+</script> >+<script id="foobar-frag" type="x-shader/x-fragment"> >+precision mediump float; >+ >+uniform vec4 uniV4[1]; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ gl_FragColor = vec4( >+ uniV4[0].r/255.0, >+ uniV4[0].g/255.0, >+ uniV4[0].b/255.0, >+ uniV4[0].a*texCoord0.z/255.0); >+} >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformfBadArgs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformfBadArgs.html >new file mode 100644 >index 00000000000..20e0af0bd71 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformfBadArgs.html >@@ -0,0 +1,126 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.testUniformf = function(gl) { >+ var sh = new Filter(gl, 'foobar-vert', 'foobar-frag'); >+ sh.apply(function(f){ >+ var uniV4 = f.uniform('uniV4'); >+ var uniFloat = f.uniform('uniFloat'); >+ assertThrowNoGLError(gl, "number for location", >+ function(){gl.uniform4fv(58882929, [1,2,3,4]);}); >+ assertThrowNoGLError(gl, "negative number for location", >+ function(){gl.uniform4fv(-58882929, [1,2,3,4]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "1fv on 4fv", >+ function(){gl.uniform1fv(uniV4, [1,2,3,4]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "more than enough values 1fv", >+ function(){gl.uniform1fv(uniFloat, [2,3,4,5,6]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "4fv on float", >+ function(){gl.uniform4fv(uniFloat, [2,3,4,5]);}); >+ assertOk("4fv on 4fv", >+ function(){gl.uniform4fv(uniV4, [1, 2, 3, 4]);}); >+ assertGLError(gl, gl.INVALID_VALUE, "5 values on 4fv", >+ function(){gl.uniform4fv(uniV4, [1, 2, 3, 4, 5]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "8 values on 4fv", >+ function(){gl.uniform4fv(uniV4, [1, 2, 3, 4, 5, 6, 7, 8]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "3fv on float", >+ function(){gl.uniform3fv(uniFloat, [2,3,4]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "2fv on float", >+ function(){gl.uniform2fv(uniFloat, [2,3]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "3fv on 4fv", >+ function(){gl.uniform3fv(uniV4, [4,5,6]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "2fv on 4fv", >+ function(){gl.uniform2fv(uniV4, [5,6]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "1fv on 4fv", >+ function(){gl.uniform1fv(uniV4, [6]);}); >+ assertOk("1fv on 1fv", >+ function(){gl.uniform1fv(uniFloat, [2]);}); >+ assertGLError(gl, gl.INVALID_VALUE, "not enough values on 1fv", >+ function(){gl.uniform1fv(uniFloat, []);}); >+ assertGLError(gl, gl.INVALID_VALUE, "not enough values on 4fv", >+ function(){gl.uniform4fv(uniV4, [3,3,4]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "4iv on 4fv", >+ function(){gl.uniform4iv(uniV4, [1, 2, 3, 4]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "1iv on 1fv", >+ function(){gl.uniform1iv(uniFloat, [2]);}); >+ }); >+ var d = new Uint8Array(4); >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, d); >+ assertArrayEquals([1,2,3,8], d); >+ sh.destroy(); >+ throwError(gl); >+} >+ >+Tests.endUnit = function(gl) { >+} >+ >+</script> >+<script id="foobar-vert" type="x-shader/x-vertex"> >+attribute vec3 Vertex; >+attribute vec2 Tex; >+ >+uniform float uniFloat; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ texCoord0 = vec4(Tex.s, 1.0-Tex.t, uniFloat, 0.0); >+ gl_Position = vec4(Vertex, 1.0); >+} >+</script> >+<script id="foobar-frag" type="x-shader/x-fragment"> >+precision mediump float; >+ >+uniform vec4 uniV4; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ gl_FragColor = vec4( >+ uniV4.r/255.0, >+ uniV4.g/255.0, >+ uniV4.b/255.0, >+ uniV4.a*texCoord0.z/255.0); >+} >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformi.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformi.html >new file mode 100644 >index 00000000000..a206e7439c7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformi.html >@@ -0,0 +1,95 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.testUniformi = function(gl) { >+ var sh = new Filter(gl, 'foobar-vert', 'foobar-frag'); >+ sh.apply(function(f){ >+ var foo = f.uniform('foo'); >+ var bar = f.uniform('bar'); >+ gl.uniform4iv(foo, [1,2,3,4]); >+ gl.uniform1iv(bar, [2]); >+ }); >+ var d = new Uint8Array(4); >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, d); >+ assertEquals([1,2,3,8], [d[0], d[1], d[2], d[3]]); >+ sh.apply(function(f){ >+ var foo = f.uniform('foo'); >+ var bar = f.uniform('bar'); >+ gl.uniform4i(foo, 2,2,3,4); >+ gl.uniform1i(bar, 3); >+ }); >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, d); >+ assertEquals([2,2,3,12], [d[0], d[1], d[2], d[3]]); >+ sh.destroy(); >+} >+ >+Tests.endUnit = function(gl) { >+} >+ >+</script> >+<script id="foobar-vert" type="x-shader/x-vertex"> >+attribute vec3 Vertex; >+attribute vec2 Tex; >+ >+uniform int bar; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ texCoord0 = vec4(Tex.s, 1.0-Tex.t, float(bar), 0.0); >+ gl_Position = vec4(Vertex, 1.0); >+} >+</script> >+<script id="foobar-frag" type="x-shader/x-fragment"> >+precision mediump float; >+ >+uniform ivec4 foo; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ gl_FragColor = vec4(float(foo.r)/256.0, float(foo.g)/256.0, float(foo.b)/256.0, float(foo.a)*texCoord0.z/256.0); >+} >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformiBadArgs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformiBadArgs.html >new file mode 100644 >index 00000000000..ba74649ddf5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/uniformiBadArgs.html >@@ -0,0 +1,122 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.testUniformf = function(gl) { >+ var sh = new Filter(gl, 'foobar-vert', 'foobar-frag'); >+ sh.apply(function(f){ >+ var uniIV4 = f.uniform('uniIV4'); >+ var uniInt = f.uniform('uniInt'); >+ assertThrowNoGLError(gl, "number as location", >+ function(){gl.uniform4iv(58882929, [1,2,3,4]);}); >+ assertThrowNoGLError(gl, "negative number as location", >+ function(){gl.uniform4iv(-58882929, [1,2,3,4]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "more than 1 value to 1iv", >+ function(){gl.uniform1iv(uniInt, [2,3,4,5,6]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "4iv on int", >+ function(){gl.uniform4iv(uniInt, [2,3,4,5]);}); >+ assertOk("4iv on 4iv", >+ function(){gl.uniform4iv(uniIV4, [1, 2, 3, 4]);}); >+ assertGLError(gl, gl.INVALID_VALUE, "5 values on 4iv", >+ function(){gl.uniform4iv(uniIV4, [1, 2, 3, 4, 5]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "8 values on 4iv", >+ function(){gl.uniform4iv(uniIV4, [1, 2, 3, 4, 5, 6, 7, 8]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "3iv on int", >+ function(){gl.uniform3iv(uniInt, [2,3,4]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "2iv on int", >+ function(){gl.uniform2iv(uniInt, [2,3]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "3iv on 4iv", >+ function(){gl.uniform3iv(uniIV4, [4,5,6]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "2iv on 4iv", >+ function(){gl.uniform2iv(uniIV4, [5,6]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "1iv on 4iv", >+ function(){gl.uniform1iv(uniIV4, [6]);}); >+ assertGLError(gl, gl.INVALID_VALUE, "not enough values", >+ function(){gl.uniform1iv(uniInt, []);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "1fv on int", >+ function(){gl.uniform1fv(uniInt, [2]);}); >+ assertGLError(gl, gl.INVALID_OPERATION, "4fv on ivec4", >+ function(){gl.uniform4fv(uniIV4, [2,3,4,5]);}); >+ gl.uniform1iv(uniInt, [2]); >+ gl.uniform4iv(uniIV4, [1, 2, 3, 4]); >+ }); >+ var d = new Uint8Array(4); >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE, d); >+ assertArrayEquals([1,2,3,8], d); >+ sh.destroy(); >+ throwError(gl); >+} >+ >+Tests.endUnit = function(gl) { >+} >+ >+</script> >+<script id="foobar-vert" type="x-shader/x-vertex"> >+attribute vec3 Vertex; >+attribute vec2 Tex; >+ >+uniform int uniInt; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ texCoord0 = vec4(Tex.s, 1.0-Tex.t, float(uniInt), 0.0); >+ gl_Position = vec4(Vertex, 1.0); >+} >+</script> >+<script id="foobar-frag" type="x-shader/x-fragment"> >+precision mediump float; >+ >+uniform ivec4 uniIV4; >+ >+varying vec4 texCoord0; >+void main() >+{ >+ gl_FragColor = vec4( >+ float(uniIV4.x)/256.0, >+ float(uniIV4.y)/256.0, >+ float(uniIV4.z)/256.0, >+ float(uniIV4.a)*texCoord0.z/256.0); >+} >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/vertexAttrib.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/vertexAttrib.html >new file mode 100644 >index 00000000000..292ecdfd6ed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/vertexAttrib.html >@@ -0,0 +1,142 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+var verts = [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0]; >+var normals = [0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0]; >+var texcoords = [0.0,0.0, 1.0,0.0, 0.0,1.0]; >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ var prog = new Shader(gl, 'vert', 'frag'); >+ prog.use(); >+ var sh = prog.shader.program; >+// log(gl.getShaderInfoLog(prog.shaders[1])); >+ var v = gl.getAttribLocation(sh, 'Vertex'); >+ var n = gl.getAttribLocation(sh, 'Normal'); >+ var t = gl.getAttribLocation(sh, 'Tex'); >+ return [gl,prog,v,n,t]; >+} >+ >+Tests.setup = function(gl, prog, v,n,t) { >+ assert(0 == gl.getError()); >+ return [gl, prog, v,n,t]; >+} >+Tests.teardown = function(gl, prog, v,n,t) { >+ gl.disableVertexAttribArray(v); >+ gl.disableVertexAttribArray(n); >+ gl.disableVertexAttribArray(t); >+} >+ >+Tests.endUnit = function(gl, prog, v,n,t) { >+ prog.destroy(); >+} >+ >+Tests.testVertexAttrib = function(gl, prog, v,n,t) { >+ var vbo = gl.createBuffer(); >+ var vertsArr = new Float32Array(verts); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vbo); >+ gl.bufferData(gl.ARRAY_BUFFER, vertsArr, gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(v); >+ gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 0); >+ assertOk(function(){gl.drawArrays(gl.TRIANGLES, 0, 3);}); >+ gl.vertexAttrib1fv(v, [1]); >+ gl.vertexAttrib2fv(v, [1,2]); >+ gl.vertexAttrib3fv(v, [1,2,3]); >+ gl.vertexAttrib4fv(v, [1,2,3,4]); >+ gl.vertexAttrib1f(v, 1); >+ gl.vertexAttrib2f(v, 1,2); >+ gl.vertexAttrib3f(v, 1,2,3); >+ gl.vertexAttrib4f(v, 1,2,3,4); >+ assertOk(function(){gl.drawArrays(gl.TRIANGLES, 0, 3);}); >+ throwError(gl); >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+ gl.deleteBuffer(vbo); >+ throwError(gl); >+} >+Tests.testVertexAttribVBO = function(gl, prog, v,n,t) { >+ var vbo = gl.createBuffer(); >+ var vertsArr = new Float32Array(verts); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vbo); >+ gl.bufferData(gl.ARRAY_BUFFER, vertsArr, gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(v); >+ gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 0); >+ gl.vertexAttrib1fv(v, [1]); >+ gl.vertexAttrib2fv(v, [1,2]); >+ gl.vertexAttrib3fv(v, [1,2,3]); >+ gl.vertexAttrib4fv(v, [1,2,3,4]); >+ gl.vertexAttrib1f(v, 1); >+ gl.vertexAttrib2f(v, 1,2); >+ gl.vertexAttrib3f(v, 1,2,3); >+ gl.vertexAttrib4f(v, 1,2,3,4); >+ assertOk(function(){gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 0);}); >+ assertOk(function(){gl.drawArrays(gl.TRIANGLES, 0, 3);}); >+ gl.vertexAttrib4fv(v, [1,2,3,4]); >+ assertOk(function(){gl.drawArrays(gl.TRIANGLES, 0, 3);}); >+ throwError(gl); >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+ gl.deleteBuffer(vbo); >+ throwError(gl); >+} >+ >+</script> >+<script id="vert" type="x-shader/x-vertex"> >+ attribute vec3 Vertex; >+ attribute vec3 Normal; >+ attribute vec2 Tex; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ gl_Position = vec4(Vertex * Normal, 1.0); >+ texCoord0 = vec4(Tex,0.0,0.0) + gl_Position; >+ } >+</script> >+<script id="frag" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ vec4 c = texCoord0; >+ gl_FragColor = c; >+ } >+</script> >+ >+ >+<style>canvas{ position:absolute; }</style> >+</head><body> >+ <canvas id="gl" width="1" height="1"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/vertexAttribBadArgs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/vertexAttribBadArgs.html >new file mode 100644 >index 00000000000..a9de20c5f79 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/vertexAttribBadArgs.html >@@ -0,0 +1,118 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+var verts = [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0]; >+var normals = [0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0]; >+var texcoords = [0.0,0.0, 1.0,0.0, 0.0,1.0]; >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ var prog = new Shader(gl, 'vert', 'frag'); >+ prog.use(); >+ var sh = prog.shader.program; >+// log(gl.getShaderInfoLog(prog.shaders[1])); >+ var v = gl.getAttribLocation(sh, 'Vertex'); >+ var n = gl.getAttribLocation(sh, 'Normal'); >+ var t = gl.getAttribLocation(sh, 'Tex'); >+ return [gl,prog,v,n,t]; >+} >+ >+Tests.setup = function(gl, prog, v,n,t) { >+ assert(0 == gl.getError()); >+ return [gl, prog, v,n,t]; >+} >+Tests.teardown = function(gl, prog, v,n,t) { >+ gl.disableVertexAttribArray(v); >+ gl.disableVertexAttribArray(n); >+ gl.disableVertexAttribArray(t); >+} >+ >+Tests.endUnit = function(gl, prog, v,n,t) { >+ prog.destroy(); >+} >+ >+ >+Tests.testVertexAttrib = function(gl, prog, v,n,t) { >+ var vbo = gl.createBuffer(); >+ var vertsArr = new Float32Array(verts); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vbo); >+ gl.bufferData(gl.ARRAY_BUFFER, vertsArr, gl.STATIC_DRAW); >+ gl.enableVertexAttribArray(v); >+ gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 0); >+ assertFail("bad index", >+ function(){gl.vertexAttrib1f(-1, 1);}); >+ assertFail("bad index (big negative)", >+ function(){gl.vertexAttrib1f(-69092342, 1);}); >+ assertFail("bad index (big positive)", >+ function(){gl.vertexAttrib1f(58928938, 1);}); >+ assertOk("array too large", >+ function(){gl.vertexAttrib1fv(v, [1,2,3,4,5]);}); >+ assertFail("array too small", >+ function(){gl.vertexAttrib1fv(v, []);}); >+ assertOk("draw", >+ function(){gl.drawArrays(gl.TRIANGLES, 0, 3);}); >+ throwError(gl); >+} >+ >+</script> >+<script id="vert" type="x-shader/x-vertex"> >+ attribute vec3 Vertex; >+ attribute vec3 Normal; >+ attribute vec2 Tex; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ gl_Position = vec4(Vertex * Normal, 1.0); >+ texCoord0 = vec4(Tex,0.0,0.0) + gl_Position; >+ } >+</script> >+<script id="frag" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ vec4 c = texCoord0; >+ gl_FragColor = c; >+ } >+</script> >+ >+ >+<style>canvas{ position:absolute; }</style> >+</head><body> >+ <canvas id="gl" width="1" height="1"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/vertexAttribPointer.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/vertexAttribPointer.html >new file mode 100644 >index 00000000000..fef2fa583d1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/vertexAttribPointer.html >@@ -0,0 +1,106 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+var verts = [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0]; >+var normals = [0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0]; >+var texcoords = [0.0,0.0, 1.0,0.0, 0.0,1.0]; >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ var prog = new Shader(gl, 'vert', 'frag'); >+ prog.use(); >+ var sh = prog.shader.program; >+// log(gl.getShaderInfoLog(prog.shaders[1])); >+ var v = gl.getAttribLocation(sh, 'Vertex'); >+ var n = gl.getAttribLocation(sh, 'Normal'); >+ var t = gl.getAttribLocation(sh, 'Tex'); >+ return [gl,prog,v,n,t]; >+} >+ >+Tests.setup = function(gl, prog, v,n,t) { >+ assert(0 == gl.getError()); >+ return [gl, prog, v,n,t]; >+} >+Tests.teardown = function(gl, prog, v,n,t) { >+ gl.disableVertexAttribArray(v); >+ gl.disableVertexAttribArray(n); >+ gl.disableVertexAttribArray(t); >+} >+ >+Tests.endUnit = function(gl, prog, v,n,t) { >+ prog.destroy(); >+} >+ >+Tests.testVertexAttribPointerVBO = function(gl, prog, v,n,t) { >+ var vbo = gl.createBuffer(); >+ var vertsArr = new Float32Array(verts); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vbo); >+ gl.bufferData(gl.ARRAY_BUFFER, vertsArr, gl.STATIC_DRAW); >+ gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 0); >+ gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 4); >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+ gl.deleteBuffer(vbo); >+} >+ >+</script> >+<script id="vert" type="x-shader/x-vertex"> >+ attribute vec3 Vertex; >+ attribute vec3 Normal; >+ attribute vec2 Tex; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ gl_Position = vec4(Vertex * Normal, 1.0); >+ texCoord0 = vec4(Tex,0.0,0.0) + gl_Position; >+ } >+</script> >+<script id="frag" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ vec4 c = texCoord0; >+ gl_FragColor = c; >+ } >+</script> >+ >+ >+<style>canvas{ position:absolute; }</style> >+</head><body> >+ <canvas id="gl" width="1" height="1"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/vertexAttribPointerBadArgs.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/vertexAttribPointerBadArgs.html >new file mode 100644 >index 00000000000..4ed3e87fc97 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/vertexAttribPointerBadArgs.html >@@ -0,0 +1,92 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.createElement('canvas'); >+ var gl = wrapGLContext(getGLContext(canvas)); >+ return [gl]; >+} >+ >+Tests.setup = function(gl) { >+ assert(0 == gl.getError()); >+ return [gl]; >+} >+ >+Tests.teardown = function(gl) { >+} >+ >+Tests.endUnit = function(gl) { >+} >+ >+Tests.testVertexAttribPointerVBO = function(gl) { >+ var vbo = gl.createBuffer(); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vbo); >+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(4), gl.STATIC_DRAW); >+ gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+ assertFail("negative offset", >+ function(){gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, -4);}); >+ assertOk("out of range offset (OK because we can change the buffer later)", >+ function(){gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 1200);}); >+ assertFail("Offset that is incompatible with type", >+ function(){gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 3);}); >+ assertFail("negative stride", >+ function(){gl.vertexAttribPointer(0, 3, gl.FLOAT, false, -1, 0);}); >+ assertFail("bad size", >+ function(){gl.vertexAttribPointer(0, 5, gl.FLOAT, false, 0, 0);}); >+ assertFail("stride that doesn't match type", >+ function(){gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 1, 0);}); >+ assertFail("bad type", >+ function(){gl.vertexAttribPointer(0, 3, gl.TEXTURE_2D, false, 0, 0);}); >+ assertFail("bad index", >+ function(){gl.vertexAttribPointer(-1, 3, gl.FLOAT, false, 0, 0);}); >+ assertFail("bad index (big negative)", >+ function(){gl.vertexAttribPointer(-8693948, 3, gl.FLOAT, false, 0, 0);}); >+ assertFail("bad index (big positive)", >+ function(){gl.vertexAttribPointer(8693948, 3, gl.FLOAT, false, 0, 0);}); >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+ assertOk("binding to null buffer with offset=0", >+ function(){gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0);}); >+ assertFail("binding to null buffer with offset!=0", >+ function(){gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 16);}); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vbo); >+ gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0); >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+ gl.deleteBuffer(vbo); >+ throwError(gl); >+} >+ >+</script> >+</head><body> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/glsl/arrayOutOfBounds.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/glsl/arrayOutOfBounds.html >new file mode 100644 >index 00000000000..66a457a7215 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/glsl/arrayOutOfBounds.html >@@ -0,0 +1,279 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = getGLContext(canvas); >+ return [gl]; >+} >+ >+Tests.testOk = function(gl) { >+ var sh = new Filter(gl, 'okvert', 'frag'); >+ assertOk(function(){sh.apply();}); >+ sh.destroy(); >+ >+ var sh = new Filter(gl, 'vert', 'okfrag'); >+ assertOk(function(){sh.apply();}); >+ sh.destroy(); >+ >+ var sh = new Filter(gl, 'vert', 'frag'); >+ assertOk(function(){sh.apply();}); >+ sh.destroy(); >+} >+ >+var arr = ['cr', 'cw', 'vr', 'vw']; >+arr.forEach(function(e){ >+ if (e == 'cr' || e == 'cw') { >+ Tests['test'+e+'vert'] = function(gl) { >+ var sh = new Filter(gl, e+'vert', 'frag'); >+ assertFail(function(){sh.apply();}); >+ sh.destroy(); >+ } >+ } >+ Tests['test'+e+'frag'] = function(gl) { >+ var sh = new Filter(gl, 'vert', e+'frag'); >+ assertFail(function(){sh.apply();}); >+ sh.destroy(); >+ } >+}); >+ >+ >+</script> >+<script id="okvert" type="x-shader/x-vertex"> >+ >+ >+ attribute vec3 Vertex; >+ attribute vec2 Tex; >+ varying vec2 TexCoord; >+ void main() >+ { >+ TexCoord = Tex; >+ float x[3]; >+ x[0] = 1.0; >+ x[1] = 2.0; >+ x[2] = 3.0; >+ gl_Position = vec4(Vertex, x[2]); >+ } >+</script> >+<script id="crvert" type="x-shader/x-vertex"> >+ >+ >+ attribute vec3 Vertex; >+ attribute vec2 Tex; >+ varying vec2 TexCoord; >+ void main() >+ { >+ TexCoord = Tex; >+ float x[3]; >+ x[0] = 1.0; >+ x[1] = 2.0; >+ x[2] = 3.0; >+ gl_Position = vec4(Vertex, x[4]); >+ } >+</script> >+<script id="cwvert" type="x-shader/x-vertex"> >+ >+ >+ attribute vec3 Vertex; >+ attribute vec2 Tex; >+ varying vec2 TexCoord; >+ void main() >+ { >+ TexCoord = Tex; >+ float x[3]; >+ x[0] = 1.0; >+ x[1] = 2.0; >+ x[2] = 3.0; >+ x[4] = Vertex.z; >+ gl_Position = vec4(Vertex, x[4]); >+ } >+</script> >+<!-- This one can't be required to fail compilation, because vertex shaders must support arbitrary array indexing --> >+<script id="vrvert" type="x-shader/x-vertex"> >+ >+ >+ attribute vec3 Vertex; >+ attribute vec2 Tex; >+ varying vec2 TexCoord; >+ void main() >+ { >+ TexCoord = Tex; >+ float x[3]; >+ x[0] = 1.0; >+ x[1] = 2.0; >+ x[2] = 3.0; >+ int idx = 4 * int(max(1.0, Vertex.x*20.0)); >+ gl_Position = vec4(Vertex, x[idx]); >+ } >+</script> >+<!-- This one can't be required to fail compilation, because vertex shaders must support arbitrary array indexing --> >+<script id="vwvert" type="x-shader/x-vertex"> >+ >+ >+ attribute vec3 Vertex; >+ attribute vec2 Tex; >+ varying vec2 TexCoord; >+ void main() >+ { >+ TexCoord = Tex; >+ float x[3]; >+ x[0] = 1.0; >+ x[1] = 2.0; >+ x[2] = 3.0; >+ int idx = 4 * int(max(1.0, Vertex.x*20.0)); >+ x[idx] = Vertex.z; >+ gl_Position = vec4(Vertex, x[idx]); >+ } >+</script> >+<script id="vert" type="x-shader/x-vertex"> >+ >+ >+ attribute vec3 Vertex; >+ attribute vec2 Tex; >+ varying vec2 TexCoord; >+ void main() >+ { >+ TexCoord = Tex; >+ gl_Position = vec4(Vertex, 0.0); >+ } >+</script> >+ >+<script id="okfrag" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ varying vec2 TexCoord; >+ >+ void main() >+ { >+ float x[3]; >+ x[0] = 1.0; >+ x[1] = 2.0; >+ x[2] = 3.0; >+ gl_FragColor = vec4(1.0, 0.0, TexCoord.s, x[2]); >+ } >+</script> >+<script id="crfrag" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ varying vec2 TexCoord; >+ >+ void main() >+ { >+ float x[3]; >+ x[0] = 1.0; >+ x[1] = 2.0; >+ x[2] = 3.0; >+ gl_FragColor = vec4(1.0, 0.0, TexCoord.s, x[4]); >+ } >+</script> >+<script id="cwfrag" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ varying vec2 TexCoord; >+ >+ void main() >+ { >+ float x[3]; >+ x[0] = 1.0; >+ x[1] = 2.0; >+ x[2] = 3.0; >+ >+ x[4] = 6.0; >+ gl_FragColor = vec4(1.0, 0.0, TexCoord.s, x[4]); >+ } >+</script> >+<!-- This one actually fails because of WebGL's restrictions on indexing expressions in fragment shaders --> >+<script id="vrfrag" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ varying vec2 TexCoord; >+ >+ void main() >+ { >+ float x[3]; >+ x[0] = 1.0; >+ x[1] = 2.0; >+ x[2] = 3.0; >+ >+ int idx = 4 * int(max(1.0, TexCoord.x*20.0)); >+ gl_FragColor = vec4(1.0, 0.0, TexCoord.s, x[idx]); >+ } >+</script> >+<!-- This one actually fails because of WebGL's restrictions on indexing expressions in fragment shaders --> >+<script id="vwfrag" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ varying vec2 TexCoord; >+ >+ void main() >+ { >+ float x[3]; >+ x[0] = 1.0; >+ x[1] = 2.0; >+ x[2] = 3.0; >+ >+ int idx = 4 * int(max(1.0, TexCoord.x*20.0)); >+ x[idx] = 6.0; >+ gl_FragColor = vec4(1.0, 0.0, TexCoord.s, x[idx]); >+ } >+</script> >+<script id="frag" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ varying vec2 TexCoord; >+ >+ void main() >+ { >+ gl_FragColor = vec4(1.0, 0.0, TexCoord.s, 1.0); >+ } >+</script> >+ >+ >+<style>canvas{ position:absolute; }</style> >+</head><body> >+ <canvas id="gl" width="16" height="16"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/glsl/longLoops.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/glsl/longLoops.html >new file mode 100644 >index 00000000000..0372052b480 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/glsl/longLoops.html >@@ -0,0 +1,253 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = getGLContext(canvas); >+ return [gl]; >+} >+ >+Tests.autorun = false; >+Tests.message = "Caution: might hang your GPU" >+ >+var arr = ['whiletrue', 'loop100M', 'loopComp', 'variable']; >+arr.forEach(function(e){ >+ Tests['test'+e+'vert'] = function(gl) { >+ var sh = new Filter(gl, e+'vert', 'frag'); >+ assertOk(function(){ >+ sh.apply(); >+ }); >+ sh.destroy(); >+ } >+ Tests['test'+e+'frag'] = function(gl) { >+ var sh = new Filter(gl, 'vert', e+'frag'); >+ assertOk(function(){ >+ sh.apply(); >+ }); >+ sh.destroy(); >+ } >+}); >+ >+Tests.testMandelbrot = function(gl) { >+ gl.disable(gl.DEPTH_TEST); >+ var sh = new Filter(gl, 'identity-vert', 'mandelbrot-frag'); >+ sh.apply(function(s){ >+ s.uniform1f('z', 0.15); >+ s.uniform1f('x', -1.25); >+ }); >+ for (var i=0; i<256; i++) { >+ sh.apply(); >+ } >+ sh.destroy(); >+} >+ >+</script> >+<script id="identity-vert" type="x-shader/x-vertex"> >+ >+ attribute vec3 Vertex; >+ attribute vec2 Tex; >+ >+ varying vec2 texCoord0; >+ void main() >+ { >+ texCoord0 = vec2(Tex.s, Tex.t); >+ gl_Position = vec4(Vertex, 1.0); >+ } >+</script> >+<script id="mandelbrot-frag" type="x-shader/x-fragment"> >+ precision mediump float; >+ >+ uniform float x,y,z; >+ varying vec2 texCoord0; >+ vec4 iter_z(float cr, float ci) { >+ int i; >+ float nzr, nzi, zr = 0.0, zi = 0.0; >+ vec4 color = vec4(0.0); >+ for (i=0; i<2500; i++) { >+ nzr = zr * zr - zi * zi + cr; >+ nzi = 2.0 * zr * zi + ci; >+ zr = nzr; >+ zi = nzi; >+ } >+ color = vec4(zi); >+ color.a = 1.0; >+ return color; >+ } >+ >+ void main() >+ { >+ gl_FragColor = iter_z(x+z*(2.0*texCoord0.s-1.5), y+z*(2.0*texCoord0.t-1.0)); >+ } >+</script> >+<script id="whiletruevert" type="x-shader/x-vertex"> >+ >+ >+ attribute vec3 Vertex; attribute vec2 Tex; >+ varying vec2 TexCoord; >+ void main() >+ { >+ float z = 1.0; >+ while(true) { z += 0.1; z *= 0.995; } >+ TexCoord = Tex.st; >+ gl_Position = vec4(Vertex, z); >+ } >+</script> >+<script id="loop100Mvert" type="x-shader/x-vertex"> >+ >+ >+ attribute vec3 Vertex; attribute vec2 Tex; >+ varying vec2 TexCoord; >+ void main() >+ { >+ int i; >+ float z = 1.0; >+ for (i = 0; i<1000000000; i++) { >+ z += 0.1; z *= 0.995; >+ } >+ TexCoord = Tex.st; >+ gl_Position = vec4(Vertex, z); >+ } >+</script> >+<script id="loopCompvert" type="x-shader/x-vertex"> >+ >+ >+ attribute vec3 Vertex; attribute vec2 Tex; >+ varying vec2 TexCoord; >+ void main() >+ { >+ float z = 1.0; >+ while(z > 0.0) { z += 0.1; z *= 0.995; } >+ TexCoord = Tex.st; >+ gl_Position = vec4(Vertex, z); >+ } >+</script> >+<script id="variablevert" type="x-shader/x-vertex"> >+ >+ >+ attribute vec3 Vertex; attribute vec2 Tex; >+ varying vec2 TexCoord; >+ >+ void main() >+ { >+ float z = 1.0; >+ while(z > Vertex.z) { z += 0.1; z *= 0.995; } >+ TexCoord = Tex.st; >+ gl_Position = vec4(Vertex, z); >+ } >+</script> >+<script id="vert" type="x-shader/x-vertex"> >+ >+ >+ attribute vec3 Vertex; attribute vec2 Tex; >+ varying vec2 TexCoord; >+ void main() >+ { >+ TexCoord = Tex.st; >+ gl_Position = vec4(Vertex, 0.0); >+ } >+</script> >+ >+<script id="whiletruefrag" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ varying vec2 TexCoord; >+ void main() >+ { >+ float z = 1.0; >+ while(true) { z += 0.1; z *= 0.995; } >+ gl_FragColor = vec4(1.0, TexCoord.s, TexCoord.t, z); >+ } >+</script> >+<script id="loop100Mfrag" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ varying vec2 TexCoord; >+ void main() >+ { >+ int i; >+ float z = 1.0; >+ for (i = 0; i<1000000000; i++) { >+ z += 0.1; z *= 0.995; >+ } >+ gl_FragColor = vec4(1.0, TexCoord.s, TexCoord.t, z); >+ } >+</script> >+<script id="loopCompfrag" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ varying vec2 TexCoord; >+ void main() >+ { >+ float z = TexCoord.s; >+ while(z > 0.0) { z += 0.1; z *= 0.995; } >+ gl_FragColor = vec4(1.0, TexCoord.s, TexCoord.t, z); >+ } >+</script> >+<script id="variablefrag" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ varying vec2 TexCoord; >+ void main() >+ { >+ float z = 1.0; >+ while(z > TexCoord.s) { z += 0.1; z *= 0.995; } >+ gl_FragColor = vec4(1.0, TexCoord.s, TexCoord.t, z); >+ } >+</script> >+<script id="frag" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ varying vec2 TexCoord; >+ void main() >+ { >+ gl_FragColor = vec4(1.0, TexCoord.s, TexCoord.t, 1.0); >+ } >+</script> >+ >+ >+<style>canvas{ position:absolute; }</style> >+</head><body> >+ <canvas id="gl" width="512" height="512"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/glsl/uniformOutOfBounds.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/glsl/uniformOutOfBounds.html >new file mode 100644 >index 00000000000..f4592e8f01a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/glsl/uniformOutOfBounds.html >@@ -0,0 +1,217 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = getGLContext(canvas); >+ return [gl]; >+} >+ >+var arr = ['cr', 'cw', 'vr', 'vw', 'tvw']; >+arr.forEach(function(e){ >+ Tests['test'+e+'vert'] = function(gl) { >+ var sh = new Filter(gl, e+'vert', 'frag'); >+ assertFail(function(){sh.apply(function(f){ >+ f.uniform3fv('x', [0.0, 1.0, 2.0]); >+ throwError(e+"vert"); >+ });}); >+ sh.destroy(); >+ } >+ Tests['test'+e+'frag'] = function(gl) { >+ var sh = new Filter(gl, 'vert', e+'frag'); >+ assertFail(function(){sh.apply(function(f){ >+ f.uniform3fv('x', [0.0, 1.0, 2.0]); >+ throwError(e+"frag"); >+ });}); >+ sh.destroy(); >+ } >+}); >+ >+</script> >+<script id="crvert" type="x-shader/x-vertex"> >+ >+ >+ attribute vec3 Vertex; attribute vec2 Tex; >+ uniform float x[3]; >+ void main() >+ { >+ gl_Position = vec4(Vertex.st, Tex.s, x[4]); >+ } >+</script> >+<script id="cwvert" type="x-shader/x-vertex"> >+ >+ >+ attribute vec3 Vertex; attribute vec2 Tex; >+ uniform float x[3]; >+ void main() >+ { >+ x[4] = Vertex.z; >+ gl_Position = vec4(Vertex.st, Tex.s, x[4]); >+ } >+</script> >+<script id="vrvert" type="x-shader/x-vertex"> >+ >+ >+ uniform float x[3]; >+ attribute vec3 Vertex; attribute vec2 Tex; >+ void main() >+ { >+ float idx = 40.0 * max(1.0, Vertex.x*20.0); >+ gl_Position = vec4(Vertex, x[2] + Tex.s + x[int(idx)]); >+ } >+</script> >+<script id="vwvert" type="x-shader/x-vertex"> >+ >+ >+ attribute vec3 Vertex; attribute vec2 Tex; >+ uniform float x[3]; >+ void main() >+ { >+ int idx = 4 * int(max(1.0, Vertex.x*20.0)); >+ x[idx] = Vertex.z; >+ gl_Position = vec4(Vertex.st, Tex.s, x[idx]); >+ } >+</script> >+<script id="tvwvert" type="x-shader/x-vertex"> >+ >+ >+ attribute vec3 Vertex; attribute vec2 Tex; >+ uniform float x[3]; >+ void main() >+ { >+ int idx = 4 * int(max(1.0, Vertex.x*20.0)); >+ x[2] = Vertex[idx]; >+ gl_Position = vec4(Vertex.st, Tex.s, x[2]); >+ } >+</script> >+<script id="vert" type="x-shader/x-vertex"> >+ >+ >+ attribute vec3 Vertex; attribute vec2 Tex; >+ varying vec2 TexCoord; >+ void main() >+ { >+ TexCoord = Vertex.st; >+ gl_Position = vec4(Vertex, Tex.s); >+ } >+</script> >+ >+<script id="crfrag" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ uniform float x[3]; >+ >+ varying vec2 TexCoord; >+ void main() >+ { >+ gl_FragColor = vec4(1.0, 0.0, 0.0, x[4]); >+ } >+</script> >+<script id="cwfrag" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ uniform float x[3]; >+ >+ varying vec2 TexCoord; >+ void main() >+ { >+ x[4] = 6.0; >+ gl_FragColor = vec4(1.0, 0.0, 0.0, x[4]); >+ } >+</script> >+<script id="vrfrag" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ uniform float x[3]; >+ >+ varying vec2 TexCoord; >+ void main() >+ { >+ int idx = 4 * int(max(1.0, TexCoord.s*20.0)); >+ gl_FragColor = vec4(1.0, 0.0, 0.0, x[idx]); >+ } >+</script> >+<script id="vwfrag" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ uniform float x[3]; >+ >+ varying vec2 TexCoord; >+ void main() >+ { >+ int idx = 4 * int(max(1.0, TexCoord.s*20.0)); >+ x[idx] = 6.0; >+ gl_FragColor = vec4(1.0, 0.0, 0.0, x[idx]); >+ } >+</script> >+<script id="tvwfrag" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ uniform float x[3]; >+ >+ varying vec2 TexCoord; >+ void main() >+ { >+ int idx = 4 * int(max(1.0, TexCoord.s*20.0)); >+ x[2] = TexCoord[idx]; >+ gl_FragColor = vec4(1.0, 0.0, 0.0, x[2]); >+ } >+</script> >+<script id="frag" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ void main() >+ { >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ } >+</script> >+ >+ >+<style>canvas{ position:absolute; }</style> >+</head><body> >+ <canvas id="gl" width="1" height="1"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/glsl/unusedAttribsUniforms.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/glsl/unusedAttribsUniforms.html >new file mode 100644 >index 00000000000..860033fe807 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/glsl/unusedAttribsUniforms.html >@@ -0,0 +1,115 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.autorun = false; >+Tests.message = "Caution: may crash the browser"; >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = getGLContext(canvas); >+ return [gl]; >+} >+ >+Tests.testPassingTooManyVBOs = function(gl) { >+ var sh = new Filter(gl, 'vert', 'frag'); >+ assertFail(function(){sh.apply();}); >+ sh.destroy(); >+} >+Tests.testPassingTooManyUniforms = function(gl) { >+ var sh = new Filter(gl, 'vert2', 'frag2'); >+ sh.apply(function(f){ >+ assertFail(function(){f.uniform1f('foo', 3.0);throwError("foo")}); >+ f.uniform1f('bar', 1.0); >+ assertFail(function(){f.uniform1f('baz', 1.0);throwError("baz")}); >+ }); >+ sh.destroy(); >+} >+ >+</script> >+ >+<script id="vert" type="x-shader/x-vertex"> >+ >+ >+ attribute vec3 Vertex; attribute vec2 Tex; >+ varying vec2 TexCoord; >+ void main() >+ { >+ TexCoord = Vertex.st; >+ gl_Position = vec4(Vertex, 0.0); >+ } >+</script> >+ >+<script id="frag" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ void main() >+ { >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ } >+</script> >+<script id="vert2" type="x-shader/x-vertex"> >+ >+ >+ uniform float foo, bar; >+ attribute vec3 Vertex; attribute vec2 Tex; >+ varying vec2 TexCoord; >+ void main() >+ { >+ TexCoord = Tex.st; >+ gl_Position = vec4(Vertex, bar); >+ } >+</script> >+ >+<script id="frag2" type="x-shader/x-fragment"> >+ >+ >+ precision mediump float; >+ >+ uniform float baz; >+ >+ varying vec2 TexCoord; >+ void main() >+ { >+ gl_FragColor = vec4(1.0, TexCoord.s, 0.0, 1.0); >+ } >+</script> >+ >+ >+<style>canvas{ position:absolute; }</style> >+</head><body> >+ <canvas id="gl" width="1" height="1"></canvas> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/index.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/index.html >new file mode 100644 >index 00000000000..28f82a988ec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/index.html >@@ -0,0 +1,96 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ <title>WebGL tests</title> >+ </head> >+ <body> >+ >+ <h1>Tests for the WebGL canvas context</h1> >+ >+ <h2>These tests are intended to serve the following purposes:</h2> >+ <ul> >+ <li>Assert spec conformance (so that WebGL pages work the same across browsers and hardware)</li> >+ <li>Check the safety of the GL binding (bounds checking, same origin policy)</li> >+ <li>Provide performance numbers for developers</li> >+ </ul> >+ >+ <h2>Test runners</h2> >+ <ul> >+ <li><a href="all_tests_linkonly.html">Run tests manually</a></li> >+ <li><a href="all_tests.html">Run all tests in parallel</a></li> >+ <li><a href="all_tests_sequential.html">Run all tests sequentially</a></li> >+ </ul> >+ >+ >+ <h2>Demos</h2> >+ <ul> >+ <li><a href="demos/opengl_web.html">OpenGL for the web</a> (requires working FBOs and null textures or using canvases as textures)</li> >+ <li><a href="demos/video.html">Green screen video demo with a color remapping filter</a> (requires loading <video> to texture with texImage2D)</li> >+ </ul> >+ >+ <h2>Running the tests</h2> >+ >+ <ol> >+ <li><a href="http://learningwebgl.com/blog/?p=11">Install a browser with WebGL support</a></li> >+ <li>Open one of the test runners linked above in your browser.</li> >+ <li>For more control over the tests, go the <a href="http://github.com/kig/canvas3d-tests">GitHub page</a>, see the readme, and clone the repo.</li> >+ </ol> >+ >+ <h2>Want to contribute?</h2> >+ >+ <p>See the <a href="README.md">README</a>.</p> >+ <p>See the <a href="http://github.com/kig/canvas3d-tests">GitHub page</a>.</p> >+ <p>Mail me at <a href="mailto:ilmari.heikkinen@gmail.com">ilmari.heikkinen@gmail.com</a></p> >+ >+ >+ <h2>For more information on WebGL</h2> >+ >+ <ul> >+ <li><a href="http://planet-webgl.org">Planet WebGL</a></li> >+ <li><a href="http://learningwebgl.com">Learning WebGL</a></li> >+ <li><a href="http://www.khronos.org/message_boards/viewforum.php?f=34">WebGL on Khronos Message Boards</a></li> >+ </ul> >+ >+ <h2>Developer links</h2> >+ <ul> >+ <li><a href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=webgl">WebGL on Mozilla Bugzilla</a></li> >+ <li><a href="https://bugzilla.webkit.org/buglist.cgi?quicksearch=webgl">WebGL on WebKit Bugzilla</a></li> >+ <li><a href="http://code.google.com/p/chromium/issues/list?q=label:3D-WebGL">WebGL on Chromium Bugzilla</a></li> >+ </ul> >+ >+ >+ <h2>License</h2> >+ >+ <p> >+ These tests are released under the BSD license. The images and videos used in the tests are the respective property of their authors. >+ </p> >+ >+ </body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/performance/CPUvsGPU.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/performance/CPUvsGPU.html >new file mode 100644 >index 00000000000..f04cd730c26 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/performance/CPUvsGPU.html >@@ -0,0 +1,360 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.autorun = false; >+Tests.message = "This might take a few seconds to run" >+ >+Tests.startUnit = function() { >+ var gl = document.getElementById('gl').getContext(GL_CONTEXT_ID); >+ var ctx = document.getElementById('2d').getContext('2d'); >+ return [gl, ctx]; >+} >+ >+var kernel = [0.006, 0.061, 0.242, 0.383, 0.242, 0.061, 0.006]; >+ >+Tests.testGPU = function(gl, ctx) { >+ Tests.gpuGaussianBlur(gl); >+} >+ >+Tests.testCPU = function(gl, ctx) { >+ Tests.cpuGaussianBlur(ctx); >+} >+ >+function hblur(ctx,idata) { >+ var d = idata.data; >+ var res = ctx.createImageData(256,256); >+ var rd = res.data; >+ var sumR=0.0,sumG=0.0,sumB=0.0,sumA=0.0, kv=0.0; >+ var col_offset = 0, row_offset = 0, k4 = 0; >+ for (var y=0; y<idata.height; ++y) { >+ col_offset = y * idata.width * 4; >+ for (var x=3; x<idata.width-3; ++x) { >+ row_offset = col_offset+x*4; >+ sumR=sumG=sumB=sumA=0.0; >+ for (var k=-3; k<4; ++k) { >+ k4 = k * 4; >+ kv = kernel[k+3]; >+ sumR += d[row_offset+k4+0] * kv; >+ sumG += d[row_offset+k4+1] * kv; >+ sumB += d[row_offset+k4+2] * kv; >+ sumA += d[row_offset+k4+3] * kv; >+ } >+ rd[row_offset+0] = Math.floor(sumR); >+ rd[row_offset+1] = Math.floor(sumG); >+ rd[row_offset+2] = Math.floor(sumB); >+ rd[row_offset+3] = Math.floor(sumA); >+ } >+ } >+ var xr = 3; >+ for (var y=0; y<idata.height; ++y) { >+ col_offset = y * idata.width * 4; >+ for (var x=0; x<xr; ++x) { >+ row_offset = col_offset+x*4; >+ sumR=sumG=sumB=sumA=0.0; >+ for (var k=-3; k<4; ++k) { >+ if (k+x < 0) >+ k4 = 0; >+ else >+ k4 = k * 4; >+ kv = kernel[k+3]; >+ sumR += d[row_offset+k4+0] * kv; >+ sumG += d[row_offset+k4+1] * kv; >+ sumB += d[row_offset+k4+2] * kv; >+ sumA += d[row_offset+k4+3] * kv; >+ } >+ rd[row_offset+0] = Math.floor(sumR); >+ rd[row_offset+1] = Math.floor(sumG); >+ rd[row_offset+2] = Math.floor(sumB); >+ rd[row_offset+3] = Math.floor(sumA); >+ } >+ } >+ var xr = idata.width-3; >+ for (var y=0; y<idata.height; ++y) { >+ col_offset = y * idata.width * 4; >+ for (var x=xr; x<idata.width; ++x) { >+ row_offset = col_offset+x*4; >+ sumR=sumG=sumB=sumA=0.0; >+ for (var k=-3; k<4; ++k) { >+ if (k+x >= idata.width) >+ k4 = (idata.width-x-1)*4; >+ else >+ k4 = k * 4; >+ kv = kernel[k+3]; >+ sumR += d[row_offset+k4+0] * kv; >+ sumG += d[row_offset+k4+1] * kv; >+ sumB += d[row_offset+k4+2] * kv; >+ sumA += d[row_offset+k4+3] * kv; >+ } >+ rd[row_offset+0] = Math.floor(sumR); >+ rd[row_offset+1] = Math.floor(sumG); >+ rd[row_offset+2] = Math.floor(sumB); >+ rd[row_offset+3] = Math.floor(sumA); >+ } >+ } >+ return res; >+} >+ >+function vblur(ctx,idata) { >+ var d = idata.data; >+ var res = ctx.createImageData(256,256); >+ var rd = res.data; >+ var sumR=0.0,sumG=0.0,sumB=0.0,sumA=0.0, kv=0.0; >+ var col_offset = 0, row_offset = 0, kfac = idata.width*4; >+ for (var y=3; y<idata.height-3; ++y) { >+ col_offset = y * idata.width * 4; >+ for (var x=0; x<idata.width; ++x) { >+ row_offset = col_offset+x*4; >+ sumR=sumG=sumB=sumA=0.0; >+ for (var k=-3; k<4; ++k) { >+ k4 = k * kfac; >+ kv = kernel[k+3]; >+ sumR += d[row_offset+k4+0] * kv; >+ sumG += d[row_offset+k4+1] * kv; >+ sumB += d[row_offset+k4+2] * kv; >+ sumA += d[row_offset+k4+3] * kv; >+ } >+ rd[row_offset+0] = Math.floor(sumR); >+ rd[row_offset+1] = Math.floor(sumG); >+ rd[row_offset+2] = Math.floor(sumB); >+ rd[row_offset+3] = Math.floor(sumA); >+ } >+ } >+ var yr = 3; >+ for (var y=0; y<yr; ++y) { >+ col_offset = y * idata.width * 4; >+ for (var x=0; x<idata.width; ++x) { >+ row_offset = col_offset+x*4; >+ sumR=sumG=sumB=sumA=0.0; >+ for (var k=-3; k<4; ++k) { >+ if (k+y < 0) >+ k4 = 0; >+ else >+ k4 = k * kfac; >+ kv = kernel[k+3]; >+ sumR += d[row_offset+k4+0] * kv; >+ sumG += d[row_offset+k4+1] * kv; >+ sumB += d[row_offset+k4+2] * kv; >+ sumA += d[row_offset+k4+3] * kv; >+ } >+ rd[row_offset+0] = Math.floor(sumR); >+ rd[row_offset+1] = Math.floor(sumG); >+ rd[row_offset+2] = Math.floor(sumB); >+ rd[row_offset+3] = Math.floor(sumA); >+ } >+ } >+ var yr = idata.height-3; >+ for (var y=yr; y<idata.height; ++y) { >+ col_offset = y * idata.width * 4; >+ for (var x=0; x<idata.width; ++x) { >+ row_offset = col_offset+x*4; >+ sumR=sumG=sumB=sumA=0.0; >+ for (var k=-3; k<4; ++k) { >+ if (k+y >= idata.height) >+ k4 = (idata.height-y-1)*kfac; >+ else >+ k4 = k * kfac; >+ kv = kernel[k+3]; >+ sumR += d[row_offset+k4+0] * kv; >+ sumG += d[row_offset+k4+1] * kv; >+ sumB += d[row_offset+k4+2] * kv; >+ sumA += d[row_offset+k4+3] * kv; >+ } >+ rd[row_offset+0] = Math.floor(sumR); >+ rd[row_offset+1] = Math.floor(sumG); >+ rd[row_offset+2] = Math.floor(sumB); >+ rd[row_offset+3] = Math.floor(sumA); >+ } >+ } >+ return res; >+} >+ >+Tests.cpuGaussianBlur = function(ctx) { >+ var s = document.getElementById('cpustat'); >+ var t0 = new Date().getTime(); >+ ctx.drawImage(document.getElementById('logo'),0,0); >+ var idata = ctx.getImageData(0,0,256,256); >+ for (var i=0; i<1; i++){ >+ idata = hblur(ctx,idata); >+ idata = vblur(ctx,idata); >+ } >+ ctx.putImageData(idata, 0, 0); >+ var t1 = new Date().getTime(); >+ s.textContent = 'Done! Time: '+(t1-t0)+'ms'; >+} >+ >+Tests.gpuGaussianBlur = function(gl) { >+ var s = document.getElementById('gpustat'); >+ var t0 = new Date().getTime(); >+ >+ var fbo1 = new FBO(gl, 256, 256); >+ var fbo2 = new FBO(gl, 256, 256); >+ var hblur = new Filter(gl, 'identity-vert', 'hblur-frag'); >+ var vblur = new Filter(gl, 'identity-vert', 'vblur-frag'); >+ var identity = new Filter(gl, 'identity-vert', 'identity-frag'); >+ var identityFlip = new Filter(gl, 'identity-flip-vert', 'identity-frag'); >+ >+ gl.viewport(0,0,256,256); >+ gl.clearColor(0,0,1,1); >+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); >+ gl.disable(gl.DEPTH_TEST); >+ gl.activeTexture(gl.TEXTURE0); >+ >+ fbo1.use(); >+ var tex = loadTexture(gl, document.getElementById('logo')); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ identityFlip.apply(); // draw image >+ >+ // gaussian blur >+ for (var i=0; i<1000; i++) { >+ fbo2.use(); >+ gl.bindTexture(gl.TEXTURE_2D, fbo1.texture); >+ hblur.apply(function(f){ >+ f.uniform1f('width', 256.0); >+ f.uniform1i('Texture', 0); >+ }); >+ fbo1.use(); >+ gl.bindTexture(gl.TEXTURE_2D, fbo2.texture); >+ vblur.apply(function(f){ >+ f.uniform1f('height', 256.0); >+ f.uniform1i('Texture', 0); >+ }); >+ } >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, null); >+ gl.bindTexture(gl.TEXTURE_2D, fbo1.texture); >+ identity.apply(); // draw blurred image on screen >+ >+ fbo1.destroy(); >+ fbo2.destroy(); >+ hblur.destroy(); >+ vblur.destroy(); >+ identity.destroy(); >+ identityFlip.destroy(); >+ gl.deleteTexture(tex); >+ checkError(gl, "end"); >+ var t1 = new Date().getTime(); >+ s.textContent = 'Done! Time: '+(t1-t0)+'ms'; >+} >+ >+ >+</script> >+<script id="identity-vert" type="x-shader/x-vertex"> >+ >+ attribute vec3 Vertex; >+ attribute vec2 Tex; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ texCoord0 = vec4(Tex, 0.0, 0.0); >+ gl_Position = vec4(Vertex, 1.0); >+ } >+</script> >+<script id="identity-flip-vert" type="x-shader/x-vertex"> >+ >+ attribute vec3 Vertex; >+ attribute vec2 Tex; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ texCoord0 = vec4(Tex.s, 1.0-Tex.t, 0.0, 0.0); >+ gl_Position = vec4(Vertex, 1.0); >+ } >+</script> >+<script id="identity-frag" type="x-shader/x-fragment"> >+ >+ precision mediump float; >+ >+ uniform sampler2D Texture; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ gl_FragColor = texture2D(Texture, texCoord0.st); >+ } >+</script> >+<script id="hblur-frag" type="x-shader/x-fragment"> >+ >+ precision mediump float; >+ >+ uniform sampler2D Texture; >+ uniform float width; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ float kernel[7] = float[7](0.006, 0.061, 0.242, 0.383, 0.242, 0.061, 0.006); >+ int i; >+ float step = 1.0 / width; >+ vec4 sum = vec4(0.0); >+ for (i=-3; i<=3; i++) { >+ vec4 tmp = texture2D(Texture, texCoord0.st + vec2(float(i)*step, 0.0)); >+ sum = (tmp * kernel[i+3]) + sum; >+ } >+ gl_FragColor = sum; >+ } >+</script> >+<script id="vblur-frag" type="x-shader/x-fragment"> >+ >+ precision mediump float; >+ >+ uniform sampler2D Texture; >+ uniform float height; >+ >+ varying vec4 texCoord0; >+ void main() >+ { >+ float kernel[7] = float[7](0.006, 0.061, 0.242, 0.383, 0.242, 0.061, 0.006); >+ int i; >+ float step = 1.0 / height; >+ vec4 sum = vec4(0.0); >+ for (i=-3; i<=3; i++) { >+ vec4 tmp = texture2D(Texture, texCoord0.st + vec2(0.0, float(i)*step)); >+ sum = (tmp * kernel[i+3]) + sum; >+ } >+ gl_FragColor = sum; >+ } >+</script> >+</head><body> >+<img id="logo" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAgAElEQVR4nO19bWiUZ9b/+BJfsP8oJfXlyUMDNkSSfnvGhgh2Qak6IPRZJ9QPtTIlYMQ2RQvWHagSxcgiCYTtulsCCinb1mWfriy20pSnLkL1Q2Fqv5RktThhaxseWFGXFQbZdc//w8y55lznPtfLfc99J6OZCw73PTOZSYz5/c7vvFznSkFjNVZjzduVmusfoLEaq7HmbjUIoLEaax6vBgE0VmPN49UggMZqrHm8GgTQWI01j1eDABqrsebxahBAYzXWPF4NAmisxprHq0EAjdVY83g1CKCxGmserwYBPKarWJyGs2c/hTff/BjefPNjWL/tV7A7ewRWtQwoS6X61dVk9OtXtQzA0x1H1Wf9fP/78OabH8PZs5/C5OQklEqluf5nN1bMq0EAdbxmZmZg4otvFcApsOfKKEm8+ebHMPHFt3Dv3r25/lU1VsTVIIA6Wffu3VNgf7rjqB/Q1x6E1NqD8HTHUVjccxoW95yGRb2/haaBP8DSX3wKy0/8GZaNXoNlo9fg/330F/h/H/0F/nPi/+A/J/5PPb/8xJ9h+Yk/w7MHPoTU6x/Bot7fqs/Cz0+tPehFDA1SePxWgwDmYJVKJbh37x68f+Z/4Of733eDvQLy1I4RBW4ELwKZAp3fI/ip/efE/4nP0/fwz1t+4s/QNPAHSGV+A2vSv4RU59vO0OLn+9+Hs2c/bRBCna4GAcziKhQK8OabH5fBY/PqnW8rT44empoJ/Cbgo9enZgM+vV9+4s8aCXDDnyn1+kewuOd0magMhLAm/Ut4/8z/wMQX3zbyCXWyGgSQ4CqVSjDxxbd2L7/2YFluv/4RLP3Fp5otP/FndfUlARvoTSTAVYJJAdiM/3xLf/EppDK/MYYQq1oG4M03P4bJycm5/m+a16tBAAmsyclJFcu7PDxKerz6gN9EAD6gt6kAE/BRCUig51fJ8N+n8grsd/J0x1F4882PoVAozPV/3bxbDQKIaWFML8r7tQch9dKgBnpu3PvbSEACHwI1KgFI8t8nDLCBn/4buCl1wH5Xa9K/hLNnP22ECLO0GgRQ4zJK/HWvKU+fev0jSL3+UTmBVrly8IclAQTezwb/FAn8tBpgI4GfDf7JKwdg8/4mEsB/f2rHSIAMGiHC7KwGAURcE198C+u3/Sro7TvfhtSOkSrw+8ecBOAiAZcKiCL/fZKBthyAj/w3gZ/+O+nvAEuQUnmxkThMZjUIIMRCmR+I7ZtfhtQLeVjU+9sy8Cugj0ICUVRAVO9PCeC/3/tfq+fH5+KQ/5QEpN9D6vWPRFXQCA/iXw0C8Fj37t2Ds2c/1YHf/HJZ5hPgc6PA1+5DqgAXAUQFf1wKIKz8t4FfIwEkUdZv8HTHUTh79tO5/rN4IlaDACyrVCoZgb+457SS+hz06p6qgIphx12YZKCNBGoBv5QIdCmBpBUAVUmUNBtEkMxqEIBhTXzxrezxXxosy1OM8wUS4GRgUgBREoIUfLVIf5+KQNyxv68CSPWPaSrARQRr0r+EiS++nes/mcdyNQiArUKhoCf3iNRH4HuBn3h/iQS4Enj2wIcaOPAxBf+zBz5UII3D+9uIgHv+/37vfxOX/ybvn+of08hU/Y4ZEazf9qtG1SDkahBAZRWL0/Dmmx/r5bxKco96fW42IuB/tFQB2MIAmwLg/fxJmav0F9X7+8T+oveniVUaZgnJwjff/LiRKPRcDQIAgPfP/E8Q+J1vQ+qlQRXrSySwqPe3qsEnTBiA3t9XCVBAITiTBD8lAa4EsBLgIoGfDf4J/vu9/4WhY3kYGjoNhw8fhsOHD5cfH8ur++G+LXD48GH4+f73YXf2CDx74EPYsOfXAe8vgV/7Pb+Q14hgVctAIz/gseY1ARQKBb1zr/nl8h9Rxesv7jntJIHI4YCjJGiqBiwbvQZLf/Fpzdn/KEqA5yBsCuDZAx/CwBvvwNCxPHx+bj/cOdUNcHUnwNWdUPrqRPUKQ+p5uLoTYCwNMJaG0vEuuJzfCpfzW2HoWB5yuRz8fP/7VrJthAXh17wkgHv37gXlPsb5L+TLgEfpXzFFAhFCAVMugHr/Zw98qIGf5wCoEkCAhd38E9WWn/iz5vlN3p9XKziBPXvgQ/j5/vdh6Fgefn98M5SOd8Gj4Y0AV3fCwzO9ANAPAEOaIVkgOZSOd8GdU91wOb8VBt54B3K5XFkxVJSYImpCBNhV2FjBNe8IYHJyUk/yrXsNUhv2KvAr4CMRECVQiwoQG4QsSoAnzBD0UjmQqoEkyABVgCv5Fzbxl+ofg5/vfx8OHz4Ml/NboXS8SyMFuLoTOCGUrb9KDIQUhvu2VAlhx0j5/5JtR26oAX3VDQF8/0keHv3tWqLf4+zZT8V+fQ38SZOApRqAj21KgKoB9MxJhwFU9nMlwAkgdN2flPyePfAh5HI5pQ4enOyG0vGuclggkkE/ub6oEcKtwXYY7tsCA2+8UyZ41jvQSBKWV10QQOmrE3D3wGr4/pN8Ip9fLE7Dz/e/r4Mfvb5AACoEIAQQIIE4cgFCKOBTFqRqIKlyoLQVOGr231n3FxJ+qf4xyOVymjJAMqiGC9xerNrVnQATbUpRXM5vhZFMlwr7fr7/fZiZmUnk7+1xWnNPAIUxmH5rDcy8uxI+P7c/9o8PNPSg10czkAAlgjhJAAng2QMfaqFA2A5BBFsSyUCa/UfQuzx/FPAr5eMo9W3Y82sY7tuiEYEWKsCLECAASFWv36wGmGiDBye74dHwRpga6IDhvi2w8fneeT/teE4J4NHfrsH9Q+th5t2VcGuwHaYGOmL77FKpBO+f+R9Z8nPwm8IAlhD0CQOcvQG0kYX1BZiUAFcBs6EAuPRPatMPVwBSqU/9vl8ahJFMV4AIVJjwzWpAAvj335vINVW1b1bDow/K4cWDk90wNdABn5/bP29nFs4ZAdy7dw9uDbbDzLsrNRK4d+8elEqlmlh5ZmZGl/zYzUfBLykAiQgQ+J4kQMGfyvzGGQpoNW+HEpA6BJPMAdCuwLCJP2/pT72/UONX2X1SkUmn03C+v1VUBI+GNxIiSAUI4N9/byrbDys0VfBoeKPKQ80nRTBnBPD9J3kN/PcPrYfpt9bAP4sXNBII+59RLE4HW3krY7iMFiIXEOgNiLEsaGsOspFAEpn/JON+XvmQvH+qf0wEv7LFnUY18Gh4Y1kVTLSB5v0pAVRIAIkASQCJAP8Gn/Q1JwTwz+IFBXxKAjPvroTr43vh3r17ysIQQaFQCO7T37C3DG6TAvDIBRgrAj5VAYMK4CTgkxOgwKf3SfQC0NJfIht+pL5/SfoT+Y//D6mXBiG1YS+sbNsGr6TXWkkAFYEGfAQ/IYF//7ACHn3QpRFB6asTkR3R47JmnQBKpRLcOdWteX5KBNNvrYGZmRmYmZkJEIFtTXzxrcrwLlu0uQx4BD0FPxJCSBKQwoA4EoISEfC9AjwPQPsCku4KxERg3NKfJ/8C3p/8/hT4N+wNXDkJIPAD9x90VYlAAD98s1pdkQgenOyGh2d64dHfrj2ximBWCaBUKsHt7y4EwI+5AHzupyvvQbE47U0CWrIP430O/rUH7eB3JANtCUFbOBAqFKjcNw38AX42+KeASU1Czx74MDHwm0iA70/gPQrenl/a6ss3+nDpT0mgYi0tzwRyAhIRPBreCI8+6NKAbyIBGhY8ONmt1MCTRgSzRgD4y7tzqlv0/JwQisVpRQJIBFyKaZn+5pd1z7/2YLXLD8GPuYAoKgDlp1QWrKEqsGHPr+Fng3+C0dFRuHTpEtz+7gL8s1g1+Mfv4NKlS1oeAEGGQJyNVmDegRhL1p9YAPy2HIBAApQATODn+QEj+InRsODhmV5vRfq4rFklAOr9TSSA999/ktdIgP/isZ9fBD8aBz8C30UEEfIB1qRgJQ+A1/868DGMjo7CT1fe04DOgX/7uwvws8E/Qap/LNAhiECjZcC4B4RI3p83I4Xx/qL8pyEALZGS3ZaaEnghrwE/k8nA5fxWuH9ofQD4qipwdafK9gdeqwBdAj8qAZ4kfPS3azAzM/NE5AZmhQC49zd5ff64cO0KTE5OaiSAv3QE/7JFm2XwcxXAQwJXOCCQgLZJKGSb8IY9v4bx8XHl4TnguY2Pj8OzBz4MbB3meQEKVAnAcXj+WON+adiHYasvJYHd2SOQzWZhuG8LDPdtCXQImgwlPLYS8z0Ej4Y3lkFuAj8hARhLKxK5/d2FJ0INzBoBFIvTCuAS2KXH33+Sh0KhAJOTkyoUUDX+5pchlUqbwW8KBXySgo7eAFdCkKqBN9/8GC5dumQEOvzjdwCFMc0OHz6sAcI0P4A3AUmgdxEBfV0iEawE8AakqOCn/5ZU/xhs2PNrGHjjHfj98c1wOb8VpgY61B4AbPChgKav2bL/pnu4urP8O6/sJ3h4pldtQXYSwESbIoFHwxsBCmOPPQkkTgDo/b//JG/M/Juut/etgsK1K1AoFFQ4EAr8lASQAKgCsPUH2MIAQ6swJYGf738/4O0R7P8sXgiAvvTVCSh9dQJyuZyYJJSUAJfqPsD3eZ5/JhKBa7OPS/prxnZGLur9LezOHoGhY3m4Ndge7PJT8wP0nYCcIHzzABoR4LWyf8AE/kcfdGkkgMlBXrJ+nNasEQDN9Nvif/6YhgJl2Z/WwY9Zf5r9d5GABH6XEvBUAQh8KvElsFPQl746AQ/P9MLu7BExWciVAEp/Cai+ZMDBzUuJ0mdiPkDy/lKOwhbzSxuj6L95d/aIvf+feHE6VIQqBCcJjKWr7yefV/rqhGoQ4oYkwPsFisVpKwnUKzkkSgClUgngXz+UJbzF29teu3tgNVwf31sGB/X8zS/7gR+9vkQCPg1Cnp2CG/b8Gi5duhSQ9BLYKejxmsvlAvkDU8nQB/wSGdhATUnA9Z5IcX8I8HPbnT0SUAVY21dThRiA4epOYwVAA+9x+TPK9/1VVTBBwP9Bpa+A5ARKX50wVqsAyvtesKegnlbiBHDv3j24Pr5XBP2twXaRBHhO4P6h9dCX2VQGfipdBb9EAGGVAK0KRAgFFvechqGh06EBT224b4te5jIRQKUawAeDRiEBmuGnLb88+88JAhWAC/yUBJb+4tNI4NeagXaMwO7sETUrQN4VGBweUvrqhAZUExkoNcCVhUACmhEy+enKe8a+lUKhAHdOdVe2MtfPSowAEPz37t2DqYEObwUgEcH0W2vg9r5V0JfZpIPfRgS+uYAaugQX95yGa388agW6BHhqUwMdcq97paLAQcFBGpYE+Ht5v79J6kdN+tHPXDZ6TT3v4/m1dmBSCly/7VeB8AClfxlgBiJgqoDfPzjZDfpYMjpwpEoElAC0pOBYGn668p5YtgYAON/fqkKGelmJE0CxOO2M800dgQj+uwdWw/Rba2Bq71LY+HyvHgL4gj9MPsCjS3D9tl/B95/kjaDHNlJquAUV7f6h9dXPxOYWixLg3j+KEqAHf/D5fhgCmBJ+tM5vq/nTuB/3KqTGChq50Jq/tQRo6QfY+HyvmCdQ2X5xnFg5XyCFArRvQAM+HzoyllbgR6Ofdfu7CwESKJVKMNy3RX3tP4sXkoJeqJU4Afx05T2v0h+/Tr+1Rnl+vE4NdCgSsCoAExmY8gG0KuChAtZv+5XVu1PwI9ipl7p/aD3cP7QestlstamFdhsaVAD1phL4fciA7+7j9/TrTF7fd5cffh4Ff2qsoAwVgW8IEGgIeqk8/BObgRDI9PctEkElvn94pjdABCocuLoT9ElD7EqqEJwEHp7pFUlgfHxcI496mEGQCAEg+GdmZuDzc/vh7oHVzhAAAU8NwT+1dync3rcKbuxaATd2rYDz/a1uEhBsd/YIbHy+Vw2h/Pzcfu16+PBh2J09Uk44GkgAwW8CPvfweOWmpL+wwQX/yNHzISBc4OdEwGW+aWMPHzCK7wsj+3nMTwEvgd9GBCLwaZMVactW5LlhL/RlNsGdU8EqQFV2y2qA5wh0JcAnDRH7ZnU5sfdBkEQenunV+lfu3bsHk5OT5aE336yum92GiRMAj/+5l+fgl0A//dYaBX60mzuaYWXbNiMJ7M4egcOHD8Pn5/bDT1feg9JXJ+CnK+9piTp8TJ/Hr8PrtT8ehdHRURh44x3YnT0Cl/NbIwGeG46yVqBnYQA23iAQTN7fRQq2/fy2Md+UBHxjfpPXp49NJMCJwEoCwtZgpeLWvQbDfVvkJiBa9uPxPZPxuhIwEAC8WC4XVt7L8wEPz/Rq+1lmZmbKYQDZbGSrHMzGSpwApt9aE5D7JuCj3di1AqYGOgKgRytsXwg3dzTD9Z5lsLJtGyxbtBk2Pl8upX1+br+KzVGm01idApyTgUQS9HUKehfYqdQXvT8OwOT97ZXHCEr8Ohq7+4QBtr38rnP96PfBfIAJ/EhUHPAc9C7wU1v6i0/9wM/zJ5Xf4cq2bbCybRvcGmxX4QAlBGOMT9SARgQc9Nq4sfKVqwAkgJ+uvKe1sw8dy5d3JP69SakA3FcwF0QQOwFQ8BeL06LX57E9eni8Tu1dKgKeXq/3LIPrPctgaqDDKMm//yQP33+SDyTokBBMxMBJAsEvgdoGdMnuHlhd9v5IANTwj7uSPKPn8UkAM5kL4GHCAK4EsAXZRkZc9ocBvzJpUxUfxkI3aJENQtRGMpbSX2CiMEnyETA/ONld9vR82Ki6lo1XBdDonpZLly6VT0mClFIBxeK0OARnNlaiBHD7uwsK4DZvT+N7CfgU9Pgc9ozzpJvNkAzoPc/gQ2FMJIgwILeZ5v0rtvQXn0Kqf0zruafglyR1VALwIQfb57q+d1SvzxWANf6n8p+WZ2koVVECqQ17IZ1OKzUgZ/xpnF+5n9DnBcJYWnl8PmZMs4k2UQlgS/vk5CSc729VQ0keDZdHkPEhOE8EAXx+bn9ob4/xfWH7Qrixa4UCPfX4VH7zOBytVmKgBOEb1/tYLpcTwY9yn5/Bh6AISwIuzx6FAHzBXwsBLBu9Jst/An6lArgCYFuFFQmsew1Wtm1TOwgDswFMcX4lWafi+w+6wAp+RgJUDeDGtkKhUM0DVFQDqoCwU7DiWLETAP7wxeI0fH5uf2hvT+N7CvybO5q9AOYihrDk8PBMbySg3z2wWrynwOdmA7+P97WpAB+CqIUAYpH9Du8fkP88F4CJQBMRNL8MfZlNYjNQOUEoxPkkyafmBxiAjxOIMSfAk4M/XXkPJr74FoaO5dXn/PuHFVYVkDQJxEoA1PtjxrMWb8+9fi3GE3e+5BDF+0vgv3tgNVzOb9W8vgv8pjp6WCLwVQhhCcAE+qjgT40VylUFm/SXFAAlAAQ/kgELB1a2bYN0Og13TskDQqqxfjXO55n+wFkDDPxoUn/ApUuX4NKlS3BrsF29F1UA5gmKxelZUwGJEUCxOA3n+1vh7oHVcHNHs9HbU9Bz8Eten4IrTjMRgw/Qpav03O7sESX1Md6nsT73/FHlf5TwwJXYcwE/DvCnxgrlioJL+psUgIMEMBRINb8M6XRaCwlkEtDBrTL9lVBAAj2fPMyTgt9/kodLly7B+f7W6udXVADOwiwW5SlYSazECSCst7/Y3gTXe5bBjV0rAoCyAS4JUvAFuw38aDPvrixv52Xg5wk/EzAkL1sr+HmisVbZH5dpA0EN2X+jCnCRAMsLTA10yN2AlQnC3MsjCYijxh0kgLMLLl26BLlcTvtsGCurktlWAYkRwOTkJIxkusTyHQf+xfYmKGxfCBfbm+Dmjma4vW9VAECS+XjdOJSDSdL7/IxomP2nkt8H+JQAfLxvUpak1xdVAJX+OFPRJv8lAuCbvAQlgCSAIQEnAUnqY3zvAr4igG9Wa0rg+vheGDqW1wmm0lXI+waSJoFYCYAmAIvFabjY3mT09ujp6fXmjmaYeXW5ChvuHlgNM68uh/uH1hsf+xBELcrBF/wuMvj98c0qy08JwBcU9Qr+uA1/L5gMxB2Qy0avyTMZXeCXCABnRG7Yqw6PwZ16LhLQ4vuJNvNhI8KhI3SS0LU/HoW710gYUQkDro/vVeXCYlGfhZnEil0BoPxHBcDBj4D/8rlFTvBjDsCXDOjj+4fWq8dRlYMPsF2v479puG8LZLNZscEnrJmALxGB62tsj02ePmnw80NJl41eK88TeGlQBr1EAtwcOYFU88uqt8REAlrMX5H2CuwG4GtHkBEVcOdUN9y9VkkyIqlMlHsPpGG4SW0cio0AePw/OTmpSXvu7b98bpEiAQT/zKvLNfDbrpJSwGst9mN2gfZ5YY2+D+9v71sF51qb4FxrE2QymWqbb42AMeUFXIqhFvAnZVIylJJAYBOQj/x/abBcVeAkQCdFUyLYsFftKpQSg2J8P9FmBr9w8AiSwMMzvUoBKAKovE6H4RaLyaqAxAigUCjASKYLvu5cIoIfrzd2rVDApyQggVMiCheY6TWKhQE6v9J7JIBzrU2wftuvYiEAExn4eG8X8GcD9C7wUxJQeQGT9OfgfyGv2pcDCkAigeaXVTs27Rq0kgA5UMTXaJOQFkJUPhuTgdg0VCw+xgTAPT0F/9edSxSQf8wugBu7VqgrBbtEEDOvLofb+1Zp1zBE4EMM9HOjgB/fj899tiAFe9YtUSSwYc+vEwOUC/Sur5kN0IcBPx1FplUHLCSwqPe3KuGa2jESDAd4LuAl/RQiKSmojhUTknxO4NPDR7AqMBFUD0gQtHW4WEyuIpAoAZxrDXr9i08tgOs9y+DH7AIFftM9gp6Cn3YWxkECPgpA8uwc4FIYgvc0BOAkELcSCEMQc21hwM87G5f+4lOj5091vi2OMVPlRdpCvGNEPJIsm82aScBT8nNyUCQw0VZVAIYw4fNz+2FychIK164kqgISVwDKnloAXz63CArbF4pANz2HVw58iQDCEEHUcEC6cjLgP8uNXSsCCmA2lEA9mw/wTeBXIcHrHxlj/zBnGPATilENZLNZuTIwEQSu0+uTe0wImj5HhQGzoAISIYDJyUmdACrgR5BjYxCX/iYFQDcTxUECPkY/RwI4zz+YXsP3cuDvWbcEPluQgnOtTeUJRHUAynoAvwn4JhJQEp+AH6cS+Q4zVROLqRKohAI4XERsFArj9Q1Hj5nyBNg2nHQyMDECmJychHOtZfB/3bkEpvYuhZlXl6sr3RsgEQFepS3ENkuKBGxAl8iCksaP2QUB74/gny9KgO5vCCP5bduX6VmFGOfbPH8YEqDzGayVAU+v7yIAThqPhjfCtT8e1VTAY0UAqAAQ6Hw3IJIAXrkKwE1E0rgwHxKIyyRvzhOEJqVAH3MFwO1ie1N5SGgdgHWuvL4Eftoy7SSBSuY/yjhzflIxbUfesOfX9qQgA74V9MyM7x0r71WY+OLbRMOARAlgau9SBf7b+1ape64GuBKYeXW5OCTUhwTiiPVdRGDz/NLX3dzR7AT/udZyojSbzc5JYnCuvL5Pws8H/KgCfMDPSSBwghFVARUSMOYDXECOSAKPPuiCO6e6y2EAOR8zbhWQGAFcH9+rAZOCX1IBSAI28LtIII66v03+u4AuvdeUA7j41AKNAKiNZLpq6hSsB/P1+FHAj8CXSCDKQSYSCWjjySuhwO+PbzaGAr5gd5EANbp9OKkwIHYCKBan4ftP8gqUElAxFJDyAi7wSyRAQR8nCZjkvgRwm1KQCMAEfiyZjmS64NkDHz5WRFCrx3eBnwPfBX7J65vif64A1JUeTOLoD/AG/ESb19dhHiDJZGDsBPDTlfe0OYCcBExKAB/jFGFfErCBPy4SsOUBfEhh5tXlSuaj55eAz1unC9sXQi6Xg/868LGyeiWDMB7fp8TnI/tdnl8CPx1h7jrIVAsDKqFALpezhgLewKf3Jqv0AyQZBsS3GahyCnAYyc6Tgxz8NiIwgT9p4NPnTf0Akor48rlFgZifg59vjcYNVIXtC6GwfaFqq6af1ZfZBK+k10Imk1Gmpg7Xkcd3ef0w0j8K+MPIf36QqTafwFAVgLG0H/j51aYAPuiCqYGORMOAWBXAnVPd3nE7VwIU8Bz4/DEFP5qNBJIgBBfoJQVgM75pamrvUm1+Ahq+jiSC5cXNa6rW0vKMsnoAfi2gDwN436SfE/xCHoCGAaYuQSPIw17xfqIN7pzqhvHxcWNTUK0rNgL4/pO8U7qbSIASACcB6TNdcj+OEMBU6gsDemqF7QuN0h/BT68S+PlYNdpUtGfdEgX+zWuaILWwpWyVGQRRcwkU7FGkvqmrr5ZkX5ikny/4TSQQWQVMtJmvaB5k8Gh4I4yPjycWBsRCAPQEoOm31sDUQEcoEuCAt5EA9fpJk4Dk6aNuOUZwmyQ/lfsU+HSMGu2gxBLrxXadAJAEFAG8NCgCl4I6LrBH8fq+ib9aYn5b7d8G/EA1gM0oNLUJi2A3Gf066Z7kAS5duqSa7OqKAKj3D6MCMAGIoOfGP88m+5NKAMZlN3atcMb7PuCn5VLcI1HYvtBIABRgtQK6VvAvP/HnKphe/0gEO4I1DvCHjvt9SaCyLVkqCyoVMNEWjggkIw1BNA9QLFZnBs49AfzrBwVU9PwuJYA1e/wDNgGf3nPP7xP/xxUCRJX9JgLgnp9Lf5vnx8+iV1QYSACphS2wZ90SyOVymoyebcBz8lGZdXLwpwZKNg3Yp9SXlOdXP+vrH8HQsTxczm8tJ1eJCni646h8luBEW2z26IMuuJzfWg0DYs4D1EwA6P19Yvfpt8qn/lLwmrw//Rzu+R9HBXB73ypjvC/F+hT8tEPSdL25oxnO97fC0LF8+YDTf/0An5/br4GES+84AO8CPyUBra4unfwjGAI6Kc/vQwS7s0fURN+BN97RzigQ9wl80GUG9dWd4UkgwTxAbQTwrx9gaqBDAy0+lpSAJOFtBCCBX3ps8vym1+fKJM/vkvzUy0v3t/etUmcaPvrbNc1+NvgnbRIxelIO4FqB75vgC8TSJqMTgS3tvbV4/jDyP/X6RxrAf0GxQZUAACAASURBVH98swoDMpkMPDzTq4UAVhVwdadGApwsxMdjaUUANAyYcwKg3t8Vv0senEp9yWio4JL9LhKYa4Vwe98q8RAUG/hNHv/2vlVw51R3+fTif/2gAE/vh47lxVOIpARcLfKey3xbQk9rqvEEv+/23jCePyz4U69/BJfzW7WpvkgCi3tOw63B9kAewKoCYEgDO7/y+wcnu7VEYJz9ADURwJ1T3V4EYAKxS/674n6X1Qv4qdeWYn5TvM/Bf2uwHUpfnQgAXiOBf/wOhoZOiycQ+5KA9HytTTzLT/xZjPONoCcHgizq/a0WCkj3ccT8mmV+E8gDPPqgSx0M8uBkd/mg1xfy0JfZFMgF4MCPAMCv7iwTwNWd6vNsZIBfczm/Fc6e/TT2PEBkArj93QWnfHeB2PbeWsHvIoHZ9v6cACjoJc9P90lIEp+CHu32dxeq8SnuZw9JAqYrB54v6KUwIAB8wylA/Ipz/mqp84cmggoZDLzxThnYlVN8EOjZbBZSL+RVY5B2kKgAaE4AFORGIqhUAmgeYM4JwCb/fT24b9wvgT/u4R+zRQKuTD8SxfRba+D7T/Lwz+KFANAlEjh8+HB5uGX/mBpyyUkAwwEEtCTfpStvhrGV8nzq+dK5f+IRYPQcABwJTioHLs8fBfRU9uP9ot7fwoY9v9aGgND5/qkX8vLBIhKYkQBgSIGbkgA37AW4c6obRkdHY08ERiKAUqlUE/ht8b8t7kcCoOCvZyKgzUO3962CuwdWO5N99w+th5+uvAf/LF5Q4JdIAMF/+7sLkMlkynPtXxqsgp8qgf6xMggcuQDp8dJffBoAP7+iZ7YBn96bDv00nv/HxoFTJRBXvG8kgsqxZIt6f6ufFDTRpoB+Ob8VXkmvFfMAAS9PCECpAPK1JntwsjuRRGAkArj93QUoHe+KJN9dBOADftMIsHoiA945iCTAQa8k/0AHlL46Abe/KwMfrzYS+Pzc/sDBl4oEhBCAl9Q4WCVZn3r9I+/SHSUCUxsvEopGUgz82vl/0lkArH8grnIf9fg0D4AkoLL7eEoQkfuvpNcG9gdwYMNYOkAAGlEYiACPGUcFEGciMDQBlEolq/z3Ab8p/g8LfhsZzKVx0NMzBabfWqN5f/T4UBiD299dUFcEv0QA1OvTc+9tCsCVB7DF7GHq9ijJMelHgU8VhdPrU9DzE4Eyv4nV81PZT0FPQ59Fvb8t1/wrR4PjgZ4I9luD7SoMoKcBcxBrBABD1ecNhu/FSoCpIWhWFYAp+z/zqjl2dxGAS/q7wM9HguHPMtte3wZ+SgIY40NhTAQ/JwEkgM/P7VfApwSgKQAhEUjjZqknwFi68y3bsZKd8vKVPAElnkC8jyCnQJc8PzWDCgjr+aWYXyMBPJk48xu4nN8KD052VwmAJQSnBjoCPQEYw2sE8I/feROAIoJKqKEqAZVE4E9X3qtpTmBoAnj0t2vW2J0CzzcB6JMwtM0V4OCfC+C7PD8/TPT+ofXw8Ewv3P7ugor58cpVAN7ncjkR/KL39wwBXErAC/jksdYvX7nS75t6/aMA4PmR314HgBICiDvm554fiQB7///9wwqQVIAUAgSMK4BKGOBjvBJQKBTU39CsEcBPV94zJv0oKLDlVyICTgAu5eAzXEQC/2wQgS/47x9aD9NvrQkcP1463iWGAJQEfrryHqTT6QD4rd6/RvDjawFAO+r2YkaftPTSzTSi3Pe1SrgRR8yvPD5/bu1BSHW+DYt7TsPintPQl9kUJACmAgIhALtyAih9dUIPERwKYHx8vDwfoHJ24OX8Vnh4pnf2CODhmV4r+LF+bVMBdAOQy/vT8WKcBCgR8O85G57f1+NLwEe7c6ob7h9aL4YCUBhTkr+l5ZmawC/11PMEnZS8axr4gxP8UgKPx/ZiUo/H9mHMAv4opT5J+qfWHoRUql8ZHhKiKgGCCpB2B+J9OXwYCpqNMAgBSIlALBFGDQNCE4CUuOPgl5SAqQLgI/1tW4tp6DHbXp/H/JwIqNyXrHS8S5HAg5PdCvSFa1cACmMw3LelDPTFnWbwW4DPvT9efYBPr6qDzxP8xho+v4b1/J1vq65Ak+yvJeanjxf3nA4QQF9mUxnEE20aAfz7700i4DF5R58rfXXCSADS+zmhoALAMACfLxajJQNDEQCP/xFwONmHA5+CUlIArsSfDfyuuYBJe34EOgX87X2rNNBLnv/WYHvA++P14ZleFQ6MZLrMnv+lwVBxfxjvb7rHpJ7k4W2ZfGs5LwTw1WcQkGveO6wR2c8z/6gAFvecLn/vCgFkMplqgw9VAKwvwAZiUQFc3Wl9H1UAQ8fyMD4+DhNffAvX/nhUfQ3mAcKSQCgCoPE/lf68BCcpAQnYtXh/02iwJL0+nQ4kyX6Xx+de//6h9fDgZLemAn668h6MZLogtbDFHvOHBL9EAhLgTc8b5b3J29cKegp8vK8ogNSOEe05DAl8pb+U7V/cc7oq/TO/qXr+tQfL1vwybHy+10gAtDuQyvcAiAUCwDyATTlIeYDPz+1Xr3//SV7rCfAlgVAEQCf/SOU5qgQ4GXACkJSBpBIQ7PSev382CMAn3neBn3v8O6e6oXS8S4H/zqlumBrocIPfQ/qbPL8N+CYiSL3+kSzvLTI/Mug5+BHk0mP+Wog6v3qOSHwu+VNrD6rcx+Ke07A7e6QKbq4AWDLQGNdLCgD6vRQAEgDmAXCH4sMzvXA5vzVwdJgPCYQigDunKn+kJMPv05TD8wC+3p/vKsR7qeSYZKzP43wb6LnsvzXYrrw+gh09PwX+g5PVeynjHzbm9/H8vkZLd8a4nt/bnvMBvYkEKODpa5XwIEzMv7jntA54Zot7TmvJz93ZI3BrsB1gLA3//ntTuRsQuwIrYYDJcz8a3lipAPSLJGBTDvQzqQJAAoCrO+HOqW6tNdiXBEIRwK3Bdg3MrqYcqghsgLd5f4kEOFkkQQImjy/JfluWn0t+yevz6/n+Vu8uP3V4RULg5517opevJZsfBvScAHaM6KFBmJIfXjvfhtTagzIZrD1Y/jpCAAhMJABq2PRjjP/H0oAeX7dgHoACn37OnVPdMDR0GsbHx5X3xx4BbA0OQwLeBPDob9fgzqluBbypgQ5tpr+LDMIQgG06MI/7kwC/tIknLPAR8NTru8BPVUCYLj8O/rgJoGngD7V5dp/43gf0npLf5PlNnX5a3Z8SQOfbigAW95yuJgEtBMA9t0YASgEIViEAmxLAx6OjozA6Oqo+E0vzfIOQT1LQmwBuf3dBxd6YqOLlOBsR+IJ/5tXlGuDpPZf+cYK/1oYe7vFNnl+S/PT+4ZleeHCyG07k/iNSzB83+KkKqDm2N3n5MCSwYW/13hXv2zw/zQVI4CfeH9WPSwHwDUKBngAPArAlANGGjuVVAhBHjD0a3iieH+iaF+BNAN9/koeHZ3qVpJAm/tpIwDcMoE1CXAHwz4jb6/vE+r6JPh7vu4D/4GQZ/EgCtwbbreCn0p/3w1MC4ERge2x6r2q4ieL1bRI/rNdnJGCU/Qaw8919XAGo2j+GBCj/KyEAPRHo3z+sKIOeXdWuPrEE+GIF8Pxavse/BykMoCpg6Fh5JPnDM706AZDTg3goUDMBPPrbNXVvOgOQkwCv1YeV/67NQknG+1FifZrwM8l9k9eXrul0Wiz3aXH/6x85wR/XVSUDo0j7WkBPvT69l8IAWt/3JAObqUTgC3ldAVQGgyirkAANA7D7r9oF+CIDv04EXn0EY2kY7tuiJQBxP4HpFOFYCABXqVSCa3886jzKGwkgbALQd8BIXJKfSv84vD6P+U2xPoKc3mNS59HwRnh4phf6MpsCCsAG/jhJIPX6R+JjDAWcwI8T9PQxXte9piUDnbv6JM/PHvPXeAiQzWbNBFAxmgjEK5JAFfQyEfjmAH5/fLMaR47hw8MzvdomIa4CYiWAy/mtgbq8iQSiZP9t24xpEjDOJF8Ur2+K9X3kPpZUqdfn91MDHXb5b/D+tZCB7bPQFAkkKO9F0HPwb9hbluwb9vp5einxZwI+k/9r0r/UjgY3EgDbF0BlfZAAmFVALuUAeC/ArcH2al9BJQTgw0KKxelkCICfAGQyV7KPXyX5b1IRcQFf8v42r4+tvCap75L9FOT4GD0+BT8+piGA2p5KwG9SAVHNlwisJBCHvHd5fgr+tQe1OYVWz+8DfOb9MfE53LdF/X8h2L0JYKLNSQCPPuhSZT1TNQFLflpZkRMAmxk4MzMTHwHwg0BNRGCT/jOvBncNmgggrtg/TJY/akefzdsj4E0xv8kymUwwBHj9I2sIMFumcgJRPL0N/CbQS1f8mrCJvxfy5fe/kNfjfer98blKAxTuBnz0QZcCv3TlOwAxW19uGHqxArsy6KvPvSiWAnkSUKwqVN7HZwVQFRALAZRKJTUO3EYCNulvAujU3qXeY8Likvx8So9vnM89P15tdX3u/dHrS9Kf2nDfFqP8T0oF+IJfIwGJCOhzNk8vSX307hzoeI+vr3utSgidbweGeFDPrzb30Pcg4PH7CglAVAAqBLAQAN0TgAB+cLK7MkPgRZEE1H1FPUihAFUC+nCRftUJyIeGJkIAP115z9qo4yP96cx7evUdMVZrhj9MDz8C3qebzxTjc/BTsGPiz2Tn+1utOYDZAD8nGvo91XNsg45SKr5e3gV+IvcV8NcerL5OQS15fgp8CfzsOQp+JAB1DmCFAKgp728IAbReAQX+lH6PQ0KxaiD0FGivky7CqYEOfatw3ARQKpXg3r17zsNAXVl/vlOQPo7T+/t4fZ8kH5b2+N59W4Zf8vgmzy8ZZnW1PADKf2wCYmGAFZwWpeD79dJr/F611vLHNm/PwY6vIagpCSB4ufdHw+e43DeBf8dI9bnml3XZX7nSFmgVe0+0BQiAEgEnAH3zUBX4uhpIiRUEPhBEUwWEAOgmISkPEBsB8IlAlAx8vD+CE4FPy3E+Q0Kjen1KAgh6HvPj8zd2rYCbO5qVfd25BL7uXALXe5ape2r4/PWeZcq+7lwCUwMdcHNHM0wNdGiKwNdQ2mkKYMdIVQWwGrgNxLVcvcHP7aXB8Nl87u0psE3AlwwJRyIJmgNA8OPPREmAyP/FPaerp/9YCEBSAHyAiGT//nuTFgJwFcD3Bmj7CioKYHR0VMwDxEoAEvh9pvsgeCng6T3PAYTNIZjq+nwfP71Su7mjGb58bhFcfGoBXHxqAXz53CL4bEFKu8fX6RXvv+5coj33decSONfaBC0tz0BqYYtme9YtgRO5/4DL+a2KFKjXf3imF0pfnVD3tBeAVgIoCXAwmoDqA3YfoDvBjxt1bGAXsvki2CXg+xKBzZpfrn7WC3lILe4UFQCSgJLhHgSggZiPEDORAMsf2EqB1dmCZQIY7tuiEQA9PKRYnK6dALCjyAT+mzuanQSAm4foTkGqBnznBPqoAN+vQw+PAKdXn+cR/Pj4684lsGfdEg3wLS3PQGpxp35lr49kukQygKs7xWYgUxtsWCCHBraPcfA7SngKzFJyLw6gc8Czq+r2W9hiBD8SAIyly4CmJMAIgSuAatwfjgBMewMefdBVGS1WbiPGXBHuEhwfH49XAaD3n5mZEcE/NdAB13uWeTX6UO9PVQAlAFcJ0dZLEMau9yyDi08tsIJeeoxenj/3decS2LymqQzsCtBxph/O9aPP4T0lhM1rmuB8f6sC//ef5I0EUNNIrKQs8xu5fMeTetLVdh8H4E0kgFJ/YYuS+zz+3509AqXj5Lw+BD4ngom2oOemMwMcBOD0/Dz+ZwrAdHpQLARgOhEYz7r3IQDTTkGaA3B9ji8R2EiBA5iDnHt2Ku3pc/Rr0fMrUAug53P++GtUIaAqCOwHwNZXQy5gTs1Uu+dy3iXx4/L2NuDjfefb5d/rwhZIbdgb8P6Le05X24CxAkDBzwhBA+pEmzY4RBokosiB9BDYdgXquwrLQ0X7MptEBVAsxhACuAjgswUpL9Dy3YK0ZwAVQNj24VrBL8l4H08vPaYSX+3nF0BvmvQbmAKEYYK0H4D0v9cNCewYMcv6JD29r8fn980vw+X81nKzVeY31d83K/9hF6BK6DmMAlZtFLKYIgdHDkAlAWn8D/1qgxDmAHBoaGwKAOW/RAAoo8MSgDTWO6z3t11t4KcApgk8Dmzu+flj+tzF9ibl/ak3d4HcSgCmAaD1Gga8kA96eA5++lxSHt8Q61PgUwJ4NLyx3HCFBEDmHmDzkNp95wI/G+7pAr/WG1BRALZ5ANX6f1UBPBreCLlcDoaGTscfAtD4//r43sC5gJj59gEuBb802TfK7sEwZHC9Z5kGcAns0mPu7fkV5b9pjLfpOC/ba9owED4TgBzLPdcEoH1/KvWl+D4u7y+B3cPbSyRwOb+1HNsPb4Tz/a1lFdf8sj74pPPtcgkQ438HASjAftDlTQBYBpR6/2lY8PBMrwZ+gH4oHe+Cw4cPG0OAWAmAZ/5RNvsSgGnPAFYF4gK/VBWQMvZhwW66vpJe6/T8CGYR4DbDQRwWBTCbRGA8Ugtr6yYvH1dSz8fL24igYssWVbfVonc9399aTtqSrc5PdxxV8h9JwEgG1HN/s7oKcJ9QYKItUPuX+/9R/le7ACkBJKoAuPdHwEQlAArmMN7fBX5OBBywPjE9lflSAxB9Pp1O20/wiWJU+rNeAFcYYByN5fk4AG7Tc/SeNt4kUb7zIQEL4E0hACoAtFfSa7W25kwmU/a8DPgiGRDw8mEh4pUQBC0hmpQA9/5wdSf8/vjmoAKonB1YLNaoALD+PzMzo/Yh3xpshxu7VsBnC1KxEcCP2QWJ5AB+zC5QTT6S1HdJe9M97wTcvKbJPcdfur6Qt78uyH8eAnAV4AVm8nxY8Afeh6/R7rrZAH8NwEej5/2hCrg12F7+/6sQwHDflnJsT0wiAIz/YSxdlf8+JFC58goC7wcol//oVOGyAhjJlEMAWgaMNQSYmZmBYnFaseWtwXYVQ3+2IOVVAvQhgCjmQwK1enqXXe9ZBq+k14YDP0p612NuAgGE8tKmkVkeX2/cb195bXHP6dmr3dcIfDTc4cd7+EcyXUoFXM5vDQBfIgNtHqAwKyBABuwe32/cBaidK1AdJtqX2QRDx/JaCBALAVD5TxXA1ECHAv9nC1JeXYCUALDbL2zMHwX8P2YXOD17LeBHAuCz/EXwm0BNx2zz5wzgxw0vgUEXgoc2kYR1XHbIq/o5Zkvm1wh8TPRpJ/4SCX7nVDc83XEUUhv2qoSey6jnNoLfQgiagmC7AHn3H5IAbhkfOpYX9wIUi9PRJwJRAkAFQEt/VAH4xORxEoBvDgA35vhI+ah2c0czzLy6vJwHoEk+H/D7Go6nMigAkyxP+nHgyjfgYDItTELPJfFrBD4lAFQAuGGHqwBsAEJZ70UAH3SFIwCcJmToADRl/3GOYDabVSEAJYCatwObFAAF/2cLUlDYvtCZgccWYLp9OCoBhMkBmGL7uOx6zzJFAKgCAjE+Bz8Ds+nobRPwqce1KYBEr6Z73GJb2XWnfj4kAd8SXgKA16wysESd91chANrI8+Bkt1YlcJIAAneiLRYCCGb/mfyHfrg12A4Db7yjegCkeQCxKIDJyUm4nN8K9w+t18CPIYCp8Ybu98cegDAtv1HIgBNAnGCXrvhvm3l1eXWSr+D5tbPmolgFYE7w42u1PrbM1DPN2DNO3e182z+uTwLwFVu2aLPy/ot7TgdO/P3335uC8pt7ZfT2/Mqy/6aZgbZhoqa9AJL3xz0AvALAS4CxhgCYOJMUAAe8RAQ+E3/iUAA/Zhdoe/njBj293ti1QptBkMlkAt5fgZ/Mm+Pz50yAl95jVAISSA3e2vW69pxEMI6fQwN/WNAnSAKpzrdVo4+a9U+P/J5o8yIB9T6yRx/lPwW6NDaME0FgD4Eo/80VAFMXYOwKgMt/kwKQiODHbHXuf5QcACUM3wRgWKC7wE4HfuA9fj86d2Dj8726AuDAdhn9OsN7TEpAUgaLe057vy56dIk0hMeB57j0nyVPr2Q+gh2nD5HdfqnOt2FN+pfwaHgjlI4TAmBbejkBaJ6Ze2w2IswGfG2UGCMdnB4VbP4hRFDZBGTqAoxNARSL00oBcPAjAdCTgKUrArfeFICPh5dAT42CH4eQTL+1pkwCXAH4EoDFJC9rG3Ft9PSm91m+xudeMx/QJ0QEdFcfN6oCFNDI1lwTAUgxOpf/NhIwXlnST1MctPOP7QKkCUBTD0CsCkAigOs9y8S9/vRxnATgmwOQCIADPCroOQHwcwY0EsD95nitkQB8AW4DaGhPHtU27E3WyxtifC73bSSAnYDa/vwJcxhgJIWJNuukID48lBIA7wCUt/7qJDA10KFtAsL4H3cCxkYAxeI0TE5Owufn9osE8HXnEiPw+dmANAmYhAKQSoAu7+4DcpPd3NEcyAFQEri9bxVks1l1hJV26GTMROAkhwiv12qLe07PSlxPgY/36rnKYZ+iAuh8W1QAvDHIRxG4wG8kgYk2Efzln4mCXt8DcL6/tVwBEHoAaPwfmQDwzUgA4+PjRgVAR3zZTgamgz+S7ANAAvCR9mHAbrpKg0gpIeRyuURVQF1bAsAPeHoHCXACeLrjqEYApeNdgak9cXt/o03ILcCm2j82AJ3I/YdWAjQlAGMLAa798ahIAF8+t8gIfk4AtBIQRgFIX+ubA6jVy7vAz5OAJjIY7tuik8AcKALNdozA+m2/glwuBwNvvAPDfVvUybPDfVsgl8tBLpeD3dkjNX0PVQJMAPgc6KYrDQW0xCBRAOXDO6KFAZHBX9kCzON/fd+/Dn6M/zOZjFcJsFQqRScAbAKanJyES5cuOQnANPGHWi0hQJgmoFqAbgI7dv7ZFAC/0gnFI5kuWL/tV0YCSFwd7BiBXC4Hw31bAseg4fkH9FQjPJugdLwLLue3Qi6Xg/XbfiUTlqG8qfYIxOzpQ5FBBfTU8y/uOQ2ptQc1AtAGdPgSgHBQSBiTyox68i9IBA9OdqsEoG0bcE0EwEOAQqEgEsDFp/RhH/xqIoCpvUsTrwLU4tldV2o2+U+fn35rDUztXSqSQGJkUPH0CHq0uwdWB8DO7ftP8uqKo8ofnOyG4b4t1X9D5jfOK52yE0UR+Hr6ADmk0oE8gEkBaPv32Ygup/efaDNOCXbJf+79cSCsrAD0+N+nAlCTAuAEIPUBfLYgFeqUYMwD1FIF8FEAkjc3eXqTZzeBnj92yX+uBDA5qCWmJOBwIvAhB+KJOfDR46Onp0eXUaPPIQmUvjpR3pBSGIPvPymXz4b7tgSUjPZveCFfk7T3ie8DYBeuFPhPdxwtb/TpfBue7jgqKgA0b++PoJeIQCKEynO0hVg7+8/i/bX437IJKPYQoFAowLnWJpEAbuxa4U0AmAdIYjcgrQRQsEqADuPhXebKAfCDSvAeD/8MQwTW5yrg3/h8L1zObxVPPKYAN11NaqD01Qn46cp7AIUx+GfxAjw80wtTAx2wO3tEzm/UKPsje/zKlScBUQkg+LPZrCoDSoM66Iw/MfM/0SZPB/a5frNaTvwF+v7ZtdIA5LMHwJYA9CIAmgQsFAowkukKRQAmme9zAIhPMtBFAmEBb7r3IQCT/DcdUYZfM/3WGujLbFKSWv2x0um0HjIbd7dNDXQEjj7jHl8CvA389LQiKIxpJFD66gSUjneV90FUEm5a+29IWe/9nMHjL1u0WTMq+TUSWHtQdQJqCoBcrXkA14hw13VCzv6LXX8Vw991HAnASAQw3LfFWArk4MfJQRKQa9kOHDYRGEXSR1UAkuyX1IB0YOnUQAcM922BNelfBoBvA/3u7JFAUo96fBrn+3h+mxpAFcCVABTG4MHJ7vIgDUfyLorEN4FfeqyBn4BdUgB9mU06AbAhHaa2YJ8JwZpJJCBt/LHF/pUNQDT+HzqWh/HxcTh79lOxBTgWAigWy63AhUIBRkdHjZUADn5UAFKsb0oQxpUDwPs4wB1VAVCQS2rAZkgGw31bYHf2CGx8vhd2Z4/A7uwR6MtsUuU623HnEuglw6+lx6FLpEGVwPef5AEKYwCFMbj93QX4Z7FslARcnjysxHeBnX/NskWbA7E/JwOc968RgLBLT/T+YQhAMmPd3xz/PxouzynI5XKB+J+eB5iYArCVAinw8f56jzwuDKVvLSGAbyIwCcMThOnVpAJcnt9m+PV4ejH18BzwPMHHQY7g5glBHysd7wqQAFcBSAQPTnaXh6OElPlhwe8iAqsCWHsQUmsPVvf7W4Z41Oz9uZHkn1b6C7T9Brv/Hg1vNMf/Qgdg7ARQuHZFJACsBNCBH9NvrYHrPctEBYBhQC3e3wX+uEkAwY6fST+btwObSKAWMjB5eknuc7CbgO8iAf45rlAAieByfqtRrvsAnXtyHuvbQM/jfyn2x92Bd06Vf1/SNl4TAcTp/bUTfwLgD8r/qYGOav2/Iv+jJgBDEUCxWA4BJr741lgJ4PLfpgCiEIBPAlAig7i8PP0sfk8VQBgSiMM4WDkxSEQRxvtTk8IBiQS+/ySveWkfErBl8qNaau1BVfaj5T/MASBhomeWhnfwk3md4L660/o6n/1X9f4vVgCPV93wFOBcLmedAeAr/yMRQOHaFWMl4HrPMg38SAC2MGA2FIAvCZgAzz39zR3luj99DR+7EoFxen8OaEkVmMBfOt4VWQlIKgD7A25/V04I3jnVLcbmUYEe2vOjchC8/9MdRyG19mB1GhDr5efbdTW5PiGfB6Dur+4sG60OcOPjvsbSFdBTY0Rwdacq/2H8bzsHIDYCoGPBkQCGjuWNeQDp7ECbCghLAj7gl4gAgRsF9Py52/tWieB39QIkpQAksLuIQCIGG/iRNCQVQIng4ZleKB3vKicCBcD6lO6ien0FehI2iOCvyH+cCEwJQNquS6f/2MBfnipUBqvpBCFp8i/Ai5X2Y04CxCrxgT4REQAAIABJREFUfyaTiaUByIsAAIR24GtXjInAi08tEAnAdnRY1NmAPglAKSFoAvyNXSvUcyaA0+dR8k8NdGhVALo12hYOJJEHiAPsM++uDOQLpDAD73mOoHS8C6YGOsqHbKbSykyeXIrzowKfJwYR6FLyjyYAS8fNvfzasA7LgSDK+1eSdUaFwAeJkFmEZbCnRAJ4NLxR7f+31f+LRf/4PxoBVCoBpjzA1EBHqNODOYDjAL8tFDB5eh/vLsl9fi1sXwgX25vgxq4VsVYDXMAPA34fQsAeCt4+je+ZGuiAPeuWwEim7O3P97fC1N6l5WO1FraUz9cjBBAF2KG8PfkekufXwM9agF27+VynAVW9/xAADDlPDqIKgG9B1jYjoTKoeH8s/8UV/3sRgKkUaMoD3NzR7EUAEmjjVgAmApDkPQU6f4ykgGBGQCNh8MfnWpvgXGsTXO9ZJnr+JJKAYRSBLSdwe98q66apc61N5RN08ShtyRZ3igQQFwnwsCHwfda9Bqm1B8vbmEnMj9fU2oNaC7BrN594BgACGh9f3Qnwj98pAhBJgGf+v1mtgV+3FxUhoAKR4v9a5H9kAgiTB7jes0xNDvaJ3WvNAfiQgSmRR4HOrxIRSK/fPbAaLrY3KRI419oEhe0LYwe/y/uHUQLo8W/u0OcnIOgL2xfCudYmO+gR+JQAYlQBUnyvWo4xl1AhhsU95XHfD05268DHwaBc/k+06f35HgQQAHnF+wMMaeQggR+vurcPGt2ReOdUtzX+p4eAJEYAxWI1EeibB7i5o1mNDXN56CSrAKbKwP1D60Xw42P6+syry9VjBP39Q+u1HgB8nRIAJ4I4Q4GoYYAk9aWhKRfbPTx+CAKIlMlnMp96eR7X0/r+1ECHBnokg1UtA7r8R/Abrs4TgRD4//gdYLee6dQg6v0pARiJYKINHp7phZFMV7X91xH/+4I/MgFMfPGtdx4AFcDFp8zgNLULRwkDwoQCkqe3efi7B1Zb5//RK1cB1L58bpH6nDjVgO+Ve3sT+Dev8fD6NvAbCMBGAlbQcyOgltp7z/e3arIfbbhvi3YkuKYAhKsV/ET6wz9+pyoApjMDtZODDUZzAfg+lP9xxv9eBABgrgTYNgbxHADuGOSgRwuzMchXAfgqAhrHc6lv8/z0PfQxVgFMBEANJXat3t8m/fHfI4Fdur/YHgL4UuyPFQALAWhJuzCg51YJBWicjxOMRjJdAZJIrT0IUwMdqlyJMv3utZRx847k0WXvPyQSQED6812HJiKYaNPkv9T/X0v8700ApkSgaWMQDQNQAdDhoRL4fAnAB/xhQgHq0SkR0OQdB7evdLepAMkutpftes8yVZb0+T74893et0rlNwrbFxrPRDSBv7B9IexZtyQ86CMoAIkEIhsr7aF3T6f111a1DKjDPrUEIAW+YNJRYOWDRBj4//E7p/eHCXZuoIUI8L1S918t/f+xEYBPGIA5AEwQIjgRbHSa8GxUAUzGY3gb+KnZAOqrAjgJ8HskBpd9+dyigGEfBhJBYftCkQQK2xfWBnoJ/J4EEMaWLSq39/LEX2rtQcjlcnD/0HoF8I3P9wbk/9RARzD+D0EAijSo9KckQA4QDRz0YdpwxGYQoPfn2X/X/v+ZmZlQ4I9EAMViNRF49uynznLgjV0rAoNDpLMD+PTgpPoAXCQQZ9fe/UPrQ6sADnwfIvjyuUUiAXzduQQutjcp8Ju8vpbhpzJeAr0v8BMAPwI9te61ACk83XFUA//UQIdKFKbWHoRUql95f6UAPDf1qBCANu8I4C99dUI8LFR5f2GjkYkQ6PvS6XQs8/9qJgApD2AMA9qbyoM/BzoC+QEJ/Lf3rQo1JDRuBYA/k82bR43PwxKABH4EuS8JYCxPwS+RgJbo4wC2xfgm0Cft+RWgdWKYGuhQuyBRNpu8P5f/NiLgh39WJ/YMBUkAW4ClXv+JNnGjkWkGAe4QRPkfZ/tvaAIAMHcEjo+PW8MAJICLTy1QZjtDYLZzACYlEEcyDh+jl41KADYFYPL+FPxcARi9vkQAHPAu8Mft9Umcr2X0172m+gFoVh/bk/sym9TXrWoZ0Cb/0Pq/T4dfYGIPzfqzBKB0ZiBtNDIdGqoRAJkO/Ep6beztv5EIwJYH6MtsMoYB5/tbAwSAdXVqYUaE+VYBkiIB3+w7vfqGAq4cgEQEJhKQcgCBTj4G4JVt29ylvdkEPkv08bIe7uhD4ON9Op2GVKpfkQBVByj/eUefRACl40TOm+J+7ADkwCfSP7C/wEACdL/ArcF2lf33OQE4rPePTADFot4QNDo6Ko4Lv9jeBNNvrdHAf/GpBYGThOgZAr55gCQVgIkEwrbc1hIK+Mb/PjmA6z3Lgtl9G5jnKMHnQwA8q48lP0oCpeOVkWTrXoNUqj9Q9+dlPRsJaEC2gF/F/4wETB2GxlOEyWdg8i8p+R+JAKQ8AIYBEglMDXQo0FMCuLmjWQ0QQfD7qoDZUAC0JBiGCFwEETX550oCSiHAnnVLNG/f0vKMEfQr27bNvcwPQQBPdxyFqYEODfRIAuf7W8vef91rsPH5Xt3zW2r6oqktu4a4n8T/Ac8f9sDQieqU4DunymPVjOU/Qf4nSgCUBPi+gPHxccjlcsamIAQ/vaIK8DlHYLZyAAh6mxqweXife9/SYBgFQMMGsXvPAWoF/uaX6xP8mP0nnh+7/STvr8aTr3stkPij8t/HYCxd9u428MMQPDzTG/T+YU8KIlOCRzJdkM1mA+2/UvdflPJfzQRQLE5reQBTMlACP15NZwn4hAFJVAEkIsB+AKkKIHl+nzDh7oHVsGfdEjjX2qSuYWzPuiWwZ90Sd6uuw6Mj8OkQjnoGPm/l5abF/80vw0imq9rxFwH8peNd1T3+UtKPEIIo/RH4/CrZhMX7JyT/YyEAWg0wJQO556cmEYArDHCBP4lQIExY4FIHlAQ2r2kyWmphS7h+fM/YnQJ/2aLN5cfNL9cX+AXpj518EvipLVu0We0GDIC/EgJQMpCIoTqnb0g3Afylr04Eh3wgAZhIgJOB4P3DZP9nhQAAquVAqRowdCwvJwOfWqCy0FKWOnCa0ECHdYxY0grABnxJDbiUgE0VjGS6/Hfb1dCYo3n7xZ3VZho8nKMewZ9Ka808NvDT+H9l2zatKYjH/5wMJEKAibYg+G3yn/YLUPBzEpCIYKJNhRDU+4uz/2LK/uMKTQAmFYA/4CvptSIBSODHZBXmAuhA0Ru7VogkMBc5AAQ+JwEfMrDlDNBu7miukoAtC2+S9Y64XcX4qTSsbNume306o7/ewI8KoNLF5/L8uAGI7gfgCoATAYyltdeqY7roeXwWEsD2X9Lw421IADbvn6D8B4iBAHg14PDhw6IKMBHA151L1OYhTgLYMzDbVQAKbltegF4pEdjAbiKK2/tW6eO0TKD2rctzAFdAzoGveurrEfzNLzvBzxOA5/tbZfBj8w8CnocFtN1XOpTDpACu7qwmAD06C437DIj3l5J/Sch/gAgEAGCvBoyPj8OedUvEXAANA2iX2sWnFqhQgBIAbiTiSoCCNekcgOT9w5CAb48ADQlCgdwHsIaz+vj76WDO+jB/zy+B3UYEJmKwnswjkIAJ/N5kQNTDK+m1yvvT2n+cvf981UwAxaLeFGQrCfJdafTxxacWwI1dK9Q2YqoCMFfgSwBxA9+WDzCRAD4OWx24e6A8dCSdrt0ra4M2KPDx1N51r1UNk231QgCLO6Evsyk0+GshA9OBHLZwgCb+pOYiKwkQ8If1/nVBANLeAOwMlEqCF59aoDrTKAng0JCLTy2Aqb1LFQlMDXTA9Ftr1HtdKiAOIuB5AJv0NykBSRG4qgP8uZlXl5fVgAfw+WhsDnyNADjoKfipmY72niXwj2T8gG8DfTzgtxAANv+YeggmHHsNSOOQy/vXOvnHtCIRAIB9b8D4+Dhks1lrLoCSAN7j63y0OC0jYk5AAm/cKsCnEuACP1UCvglDUQ0YPLsT8Bp4+4Pgx375sJYUGSzuVHF8HJ7fhwSMp/E4SIB2/LlIIKAGiPe/nN+qZf5N3r9QKKjGn7oigGIx2BNgUgE4IRhJAAmgsH2hIgw+WBTbiflQEZPFrQJ45j9MCOAzV8DVL3D3wGo4399qBLoR8BL4K1l1o+cPY2xffi22bNFmaGl5JtDeG4UIage/BwlUvD833+5CuuNv85omL+9fLE7HlvzDFZkAAOw9AaOjo0YVcPGpBVDYvlAHf2X7qmm68I1dK7S9BHF7e1sOgIJfUgJhVICNDFzVg9v7VkFfZpMb8Kn+SljQXwU/HaZBhmSI9zZD8lCfXZu3R+vLbIL7h9ZHAn8UEihn+18E63l8jpN6tZ7/MGRAmoZGMl3K+9ti/7iTf7hqIgBXMnB0dNRYEaAKgBpVAZwEsGKAYUSSBCCpAZvkd5GASwWEIYOpgY5yydDk6fmVS/25kv1C9WLZos2hJH+YMMDk+eXDOMMRgQv8JjKg3v/R8EZoaXlGSX/f2L/uCMA0KAQrApIKwFDgYnuTRgB0iCjPCUwNdGj5gK87lyQKeFvGP6znr3XEmIkINj7fK3v7VL9+bwI+f85FFBhyRAC7ep4k+mr1+j7xf3TwyyTw8EyvvPPPhwjIlmSa+HPF/sVi/N4foEYCAKhNBdBQgBomBCUSuLFrhdZIlEQoIHUE+mb++TVsPiAqEZRP42Xg52YDuOvedqUhAW0s4tfK/SvptTA10BEb+H2z/TDRpg7hdJ7GayIBtu2XmtYRaAE/jvqiib+58P4AMRJAVBWAlQBuEllgbwDOu8MwIukcAI//qYf3UQIS6OM6IozbSKYyDddEAi4i8FECPgQhtBfHDfxQsn+ijYBePoHXSwlc3anlEXyJgD7/4GS3lviTev6TqvvzVTMBALhLgkNDp8U9ApwEpvYuVVeuAnDCEDYL0a7CJBOCpopA1Nh/Ns4GxNHmfZlNsKplwE4AYb2977Vyv2zRZujLbFLZ/STA7yIBPIZLO3HXSwUEScAGfF9SeCW9Vo36cvX8J+n9ARIgAE4CyGiHDx82lgWx3bewfSH85Y0ligS4aqBdgZgPwCGXSeYA+L1P3O/TBxA3EUiHf2KI0JfZpCsDA2DjuK5qGYCNz/fC5fxWuHtgtRW0cWb+AyTwQXkOPz9xNzIJCHF8mMdY829peaYuvD9ATAQA4FYBo6OjkE6njaEAJgUR/KgGbJuK8JCLuFVAVK9vywMkoQJcJGC6jmS6dELwIQPbfaofNj7fC32ZTTDct0WBGomIAz3pEKB0vItI/uCJu5wMvKxS9qvFYCwdkP6m036STPzRlQgBFItyLmDoWN6YEKRKAAlgau/SQFUAZwvQvQSoHpLKAZhyAlGVQFwkEGU6sWRTAx1wvr8V+jKbVA7BZiOZLtidPQI3dzTD5fzWAMhN17CePyxRqOYeTfLbwe+XF+jXdw1G8PxU+vPtvknv+LOt2AgAwE8F2BKCNNaf2rsU/vLGEjEfQBUA7i0whQI/ZstbisMSwI/ZBQq4pg7AsCSQVBgQxvvbiMDHTJ7dF/xhgG8jEJP3p+fsScdtB4/j9lACNXh/GCsfBz410KFJf2PTzyx6f4AECaBYNKsAW0KQgvwvbyyB8/2tgXwAbh+mewkwHJBCAfwaejqxr/yXZgP4hgS2MCAJ+R8F/C5C4IC/e2B1aBKwgZ+HBtL39vH+MNGmHa3lIgHu+W05ASSZqJ7/zqluBX7c7Wcq+01OTmrDPh8rAgAwzwrgKsCWEKRARyXA8wHYQORLAmFDBRfgbeGAVO+fjRxAlGsYzx8F/D45AF+VYfL+d6+lRPCbSIA+L1UHNDPU/H2z/tjwg1t9aexvqvkXi7Pj/QESJgBTRWBo6LQzIciTgxIJoOznLcVSh+CNXSu0M/F8iMAE/HrOAfheEdC+3l8CdNQwgL7f9jO4PgMm2nTwG0jApgJMSgDgRYBvVkf2/PRsP571tyX+ki778RU7AQD4dQcODZ2GzWvcKkDtC2hvgr+8sUTLB2AowJuIEOg8pkfw012IUljgC3xXLqCecwBhlIAE+LCenr/X9HP7hgF3r6XK4P97UyQSCD4fJIFaM/63Bttl8Fs6/orF5BN/dCVKAKaBIagCXL0BptZhSgKmTkIkBx8SKGxfaM0P2EIA6TWT508K/GGUgI/nl6S/j3d2EYSNsHxUQOl4F/z1bBnsCHoK/rvXKuBGAvDIB1SBr5MAz/qHVQJ3TpW7/WjWv14Sf3QlQgAAbhWAJJDJZLxDASr96Xts7cS8AkBBz69oNnBLSUFXLmC2VEASnh9JI4zcp+/Bfy8aPr5/aL26+qiAmXdXKq/PjRNBmHxAUA28qA7piBrzY8lPivttNf9icXa9P8AsEACqgGJRP0kIJdDQsTy0tDwTigBsnYS0mehie5NIAibg8w1JqCBMMb8pYWiaFsRtLsOBsErAFhZIkl4ixps7mrV/uy/4fYCP4UCAADxzAsr7k7jfF/DcaNyvzfgj7b58xn+xOPveHyBBAgCQy4KTk5MBFXD48GFng5BvspDuKaDzBZAEfswuUGcOmMBPtyXjaHJXOOAKBeh9ksCPqgh8AW+K49Hwd4VHwCPo8SopARNB/fVsGeh49SYCixLQM/9MCbDTeaMoAKz3o/QfeOMd81Zfg/R/4ghACwWuXQmGAsfykM1mQ+UDbCRg6iSkOQE+kchkNMxwlQtN+wXmAvwuQgibA3AZgp5f7x4ozzXEK6oD08818+5K+OvZlDf4AyQgJQU9S4NRwE/fg/V+Gvcbe/1Z1h8P+Lx3716SkAysRAkAwG+CMFYFwpQGXYlCSgI0aYgk8GNWnkVgIwGqBlzAx+clNTCXJJCE3dzRDDd3NMONXSucCgDJgCsACnwTAYRRAqJZSMCU9Atjm9c0yXG/I+s/F9IfV+IEAOAeIEpDgc1rmmomAaoEsJ2YJw2xRdgEehpG0FACk5C2SgEnBAn0TwIJINCpIQkg+GdeXa5AjyQw8+pymBroMAKfg99HBSD4nTkBiQQmwif9uGHSj0p/W6//XEt/XLNKALYOQU4CtRIA7R0QOwkr3twVAkj5BKomfJRAEqVAUww+V8DnBMDDAAp+PAFaAn6tZGANBSQVMFEb+HGwZ9i4f7YbfkxrVggAwN4hyKsCuVwulqQgzg9AEuA7CxHEfDQZHUzCn5M2JpmShLx6gP0H+PVz7cGjAh//DXjlhl9HPT8m/6jHN3n/WpSAszpAKgMw0ab1+Uex8/2tkFrYEoj7pZLfXDb8mNasEQCAfygwNHQa+jKbYiGBzxZU9w3wTkJKFCjtTSTgmlZEiUCaKYh2c0ezSCKUHCh46sGwakLNRgCUCDAM+8sbS+CvZ1OBqw8J1BISmJSAb7nPZjzjL4G/HuN+uuaEAHxDgUwmE0tlgCcHbTkGqgZcJGA680DafkyVgYkIXD//bCoHlPLYVk33UdhI4MauFRroOfhn3l0ZAP+skUDF+9+9loIHJ7tjA7803sun5DfvCADAr00YqwIDb7wD6XQ6VhL48rlFMLV3qfNr+ZxCOqqMTiyykcnXnUsCLcZcHeAmpbD/FlQNcZECBTw1H/Dz3wsHPxoFfxQSCFsVkEiAxvxR5T+W+zDpxyf72sBfLNaH9Mc16wQAYJ8bwPMBSAJxVAYoEWDs7/panFBESQArC1KZ0fb9pG3KVBkg2KL+u+jR6xywHLgIcPzZ6XHtklEikBQSBb+NBGpVArWUBmGiDe4fWh8AdBgiwB5/LPe5+vzrMe6na04JwGevAJJAS8szsZIAAtP36/gfOv+jlxKMps/6unNJIEzgygC9sc/PKA1PpVe+eYqqIU4cnAToxilblQR/F+f7W43gjyMXEKVJ6O61cp2fAj2K9zeB3zfpN9clP2nNCQEAmEMBEwnkcrlESCAsYZg83vn+VnV+YdjPRLDZTj5GINrUBgc+vdqATw1JACsePt2SnARwklNUEgjTG+BDBnGD35XxRwLA1vdisb7ifrrmjAAA/PIBNCmYlBIITQTtTarHQJK9tch4DmZMNuJnUvDi+Ym+n4VfjyRAz1lEw0NaOQmYdlyi8RyJKxRw5QTiUgJ0ZiAHvy8ROMHPNvnUe9xP15wTgCsfQJOChw8fhlwuF1u3YBwgxaQiVQIIhjBZ/tn4WTmpSCRAwwAfEpB6JVxKAIEv5QHwcRTw03ta45fA70sCtYC/Xpp9bGtOCQBAzgdIY8SQBOolHJAARtuP41QDcZOASwV83blETVv2DQds1ZKoKsAVCpiIgEp+17VW8Pts8qlX8APUAQEAWPoDJBI4lldKIM4SYZxGjz5XexHa6+Pn9FUCUXMClAgkZeRbEfBRApQI8F4aGsrBnhT4H4ekH191QQAA/k1ClAQwJ1CPJKAAVznE1LSfYLbBbyMBCfimMMClBOjVtzRIScC3NEhJwDY5OEwOAJt8JPC7av31nvTjq24IAMC8X0CsDFQahbBPIK624aRtrvMCroSglBMwJQZ9wwEEt6tM+NezKZjauzS0ErCdFxA2BzA10AGphS1Gz+9T66fgr/dVdwRgSgqayoM0HHhcSKAejBIAElOYMABzBL6lQd9cgFQmtCkB1+hw3zDgwclubWNPHOCvZ8+Pq64IACAcCfCcQCaTqZsKweNgvklBSgI0MRgmFDCVTH17A7gSsE0OjqIERjJdTvDzbD8F/+OQ8ZdW3REAgL0ywM8XQBLA6kAmk6m7CkE9my8J0DCg1sqAjxKQqgNICD4jyn3A/+BkN5SOd8Er6bXaxp4wnr8eN/iEWXVJAADu8qAtMZjNZus+OVgvZiMAbECiRIAKIIoSoIQQRQncPeB3ipBNBVASuDXYDpvXNFnBb8v2Pw6NPq5VtwQA4K8EpGYhTA42QoJwRPDZAns+AGN/mgNw5QNqyQnMvLtSTVFyDTV1kQAFP47upsk+n2z/kwR+gDonAIDaSaAREviBn5KAKx+ACgCBj/e+4EcV4NovgOCnh4iYSCBMMhAlvwn888Hz46p7AgCITgJIBNg52KgSuInAVwlIRODbJOTaPsxPEkKrVQFMDXSIkn++gh/gMSEAgGgkgFuJ8T83nU431EAIEvCpDPBj2m1KwJQQPN/fClN7l8LtfavUKDQEP04PrpUEcHAnen0KfvwbwTySLdtfLD6+CT9pPTYEAOBHAqZeAUoEqAYaRBAEvy8JmBqEfJUAVQP0HAFphPjdA6th+q01kQjg/qH1Ackvgd+0pZeDv1h8Mjw/rseKAADCkwDPC3A10KgUyETAycAWBlAlwKsDNhK4sWuFGkVGpwff3NGsThBC4PuoAJ4HoIk+OsTDVOaz7eorFp8sz4/rsSMAXJQEpA1EppCAE0FLyzOweU1TgwgsJEBnD/iQgK0/wHaWAJIAP0x05tXlWiLQpQRorC95fSnen4/gB3iMCYB3DLp6BaT2YZR/WCmI40CSJ8nCbB92kYDPGQLo+W/sWqFyAPgcgh/JwAR+7OijwJc29FiTffME/ACPMQEAVEmgVCqJJOAKCUxhQSM/EI4EMBeA1QA+lNR1hgAlAX6uIBICJgZNpwmj3Pfx+ij55zv4AR5zAgDQlUDYvICkBrLZbIMIGAF8tiAYBkhJQT5INAwJ0LME6aGi6PG5EsDr+f5W2LymKeD1pcYem+THGX7SMI8nFfwATwAB4OIkQPMCk5OT5pCAqAFaKWgQQZAEuBLgwLedIxCGBGg+AMHPS4M3dq0Q4/y4vP7jMMwjjvXEEACATALFoq4GJr741qoGOAlQIpjPbcV0mjCfG2g6RyAMAbgSgQj+kUyXN/DR61tLfA7J/ySDH+AJIwAAj5DAkCDkuQFKBJgoxGRhamELnGt98smAVwIQ/PjYRABhVQCCn54szI8X9wE+r+vToZ2m+v58ivel9cQRAC4fNSDlBujOQik/kM1mFRFQVfAkkIGpFZgSAEp/rgRcKgCBbwsBsC8AE4FTAx2wZ90SMbnHgU/J2hXr2yT/fAI/wBNMAAAeJOBKEloUARIBhgePc66AN/5wwEtXVxjAVQAefOKTC0Bvj4k9F/C1br4K8Gmsb/P6xeL0vJL8fD3RBAAghwQ+akDKD/CyIVcF6XQaUgtbILWwRZFBvRMCB75ECibw08c+KsAE/us9y2Ak0wV71i2B1MIWzdtLmX1bnG8EPvP6xeL8i/el9cQTAC5KAqbcgJMIHIoAiYAqg9TCFtVpWK9kwEmAA990LzUChckF7Fm3RHl62rJr8vaSx3fJfZfXn2+Sn695QwAAnmoggiKQKgf4x8uVAQ0V6okQpJHhEhlIyUCfisDF9iZN2ts8vc3bS1KfAr/h9cOteUUAuEyVgmIxvCKIQgaoDGi4gAphrkhBCgV8FQCfD3Cutax4UNJLgJfM5u15I48P8E0Z/vnu9emalwQAECSBqEQgqQL6R8vJwBYqcFKYLWKQwM89P+0DQLBToFPP7gt4WybfJPOjAL/h9c1r3hIALhsR4LhniQjoZGKXKuBk4CIEEylwckCCQLvYXiULvHcBPzAItL1J+0z8PhLAJbCHAbwk7ynoeXwfBvjFYsPr+6x5TwC4bPmBYtGsCKyqwEMZIBmYQgaRGBZ3WgkiCcNSpy/QTWCXQM8n8uDvjYIer1pyLwTwG+CXV4MA2ApDBBNffBsIDy5duqT90ZrIIAwhcKXAyYETBO1N4IbkYTL8HB+Am4DuA3atfFc514F6epO3dwG/IffDrQYBGJYPEfiqAhsZ2JKIYYjBRBKcLEyPbVeTcZCbwC7KehbTc08vgr7h8WNfDQJwLFOOwJgnqOw1oINKeZehlECUFALvNzApBhNJULKQiIM/Z3q/9H0kj849OyU47d9JEnk2Ty95+wbw410NAvBcLiIoFmVVwJWBTR1IKkFSCkgMNtVge87nNZMSwe/LgR7w7B4enpKjCfQumd8Afm2rQQAhl0QEPmTRpst5AAABr0lEQVSAMwmkUEFKJHJiUKRAwCURg80k0ErPSR4cvbhWkiNxuxS/+4D90qVLKpfCQd8AfvKrQQA1LJsqsCoDMpvARyFwUpDIIUASLLSgisL4GvPc1INzgJtA7uPdTV7eB/QN4Me7GgQQw6KzCX3JIEAIQv5AIoYwBGEiDBeQTZ/hC/IA0FkCz+Tli8UG6Gd7NQgg5uVDBmEIwaYUTMaBycEqEYn0mvSZJpBLmXqXhy8Wp7XfiQn0DeAntxoEkOAykYGNEIpFD1IwkAMliTCEIYGa3qsY3QJwCegc7MWiGfD4O2qAfnZXgwBmaXEycCkETgrF4nQAXJOTk05Axm3Sz8B/zmJxOvBv4QTY8PL1sRoEMEfLhxBMSkEiBzQEpATUsEY/jxv9WXzB3gB8/a0GAdTRouCQwgYfgrARhs/VZfR7+wK9Afj6XQ0CqPMlAUlSDGGMA9gH0BLAG0B//FeDAB7jJYHPRBQcsC4Q26yxnpzVIIDGaqx5vBoE0FiNNY9XgwAaq7Hm8WoQQGM11jxeDQJorMaax6tBAI3VWPN4NQigsRprHq8GATRWY83j9f8BXw26zxg/U0gAAAAASUVORK5CYII=" width="256" height="256"><br> >+<div id="cpu">CPU 1x Gaussian blur</div> >+<div id="cpustat"></div> >+<canvas id="2d" width="256" height="256"></canvas> >+<div id="gpu">GPU 1000x Gaussian blur</div> >+<div id="gpustat"></div> >+<canvas id="gl" width="256" height="256"></canvas><br> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/performance/bandwidth.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/performance/bandwidth.html >new file mode 100644 >index 00000000000..d942a2de2d0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/performance/bandwidth.html >@@ -0,0 +1,238 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+ >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.autorun = false; >+Tests.message = "This might take a second or two. Take the upload numbers with a dose of salt, as there's no drawing code using the data."; >+ >+Tests.startUnit = function () { >+ var canvas = document.getElementById('gl'); >+ var gl = getGLContext(canvas); >+ return [gl]; >+} >+ >+Tests.testTexImage2D = function(gl) { >+ var tex = gl.createTexture(); >+ var texArr = new Array(256*256*4); >+ var bufData = new Array(256*256*4); >+ for (var i=0; i<texArr.length; i++) texArr[i] = 0; >+ for (var i=0; i<bufData.length; i++) bufData[i] = 0.5; >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ time("texImage2D", function() { >+ for (var i=0; i<100; i++) >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 256, 256, 0, gl.RGBA, gl.UNSIGNED_BYTE, texArr); >+ }); >+ time("texImage2D", function() { >+ for (var i=0; i<100; i++) >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 256, 256, 0, gl.RGBA, gl.UNSIGNED_BYTE, texArr); >+ }); >+ time("texSubImage2D", function() { >+ for (var i=0; i<100; i++) >+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 256, 256, gl.RGBA, gl.UNSIGNED_BYTE, texArr); >+ }); >+ var img = document.getElementById('logo'); >+ time("texImage2DHTML", function() { >+ for (var i=0; i<100; i++) >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img); >+ }); >+ time("texSubImage2DHTML", function() { >+ for (var i=0; i<100; i++) >+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, img); >+ }); >+ var bufs = [gl.createBuffer(), gl.createBuffer()]; >+ var buf = bufs[0], buf2 = bufs[1]; >+ gl.bindBuffer(gl.ARRAY_BUFFER, buf); >+ var bufArr = new Float32Array(bufData); >+ time("bufferDataNoChange", function() { >+ for (var i=0; i<100; i++) >+ gl.bufferData(gl.ARRAY_BUFFER, bufArr, gl.STATIC_DRAW); >+ }); >+ time("bufferSubDataNoChange", function() { >+ for (var i=0; i<100; i++) >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, bufArr); >+ }); >+ time("bufferData", function() { >+ var bufArr = new Float32Array(bufData); >+ for (var i=0; i<25; i++) >+ gl.bufferData(gl.ARRAY_BUFFER, bufArr, gl.STATIC_DRAW); >+ }); >+ time("bufferSubData", function() { >+ var bufArr = new Float32Array(bufData); >+ for (var i=0; i<25; i++) >+ gl.bufferSubData(gl.ARRAY_BUFFER, 0, bufArr); >+ }); >+ var sh = new Shader(gl, 'vert-v', 'frag-v'); >+ gl.disable(gl.DEPTH_TEST); >+ sh.use(); >+ var v = sh.attrib('Vertex'); >+ for (var i=0; i<16; i++) >+ gl.disableVertexAttribArray(i); >+ gl.enableVertexAttribArray(v); >+ gl.vertexAttribPointer(v, 4, gl.FLOAT, false, 0, 0); >+ time("verticeDraw", function() { >+ for (var i=0; i<100; i++) >+ gl.drawArrays(gl.TRIANGLES, 0, 256*256); >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE); >+ }); >+ gl.bindBuffer(gl.ARRAY_BUFFER, buf2); >+ gl.bufferData(gl.ARRAY_BUFFER, bufArr, gl.STATIC_DRAW); >+ time("verticeDrawC", function() { >+ for (var i=0; i<100; i++) { >+ gl.bindBuffer(gl.ARRAY_BUFFER, (i % 2 == 0) ? buf : buf2); >+ gl.drawArrays(gl.TRIANGLES, 0, 256*256); >+ } >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE); >+ }); >+ // Drawing arrays with vertexAttribPointer seems to have been removed from WebGL. >+/* gl.bindBuffer(gl.ARRAY_BUFFER, null); >+ gl.vertexAttribPointer(v, 4, gl.FLOAT, false, 0, bufArr); >+ time("verticeDrawVA", function() { >+ for (var i=0; i<100; i++) >+ gl.drawArrays(gl.TRIANGLES, 0, 256*256); >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE); >+ }); >+ time("verticeDrawVAC", function() { >+ for (var i=0; i<100; i++) { >+ gl.vertexAttribPointer(v, 4, gl.FLOAT, false, 0, bufArr); >+ gl.drawArrays(gl.TRIANGLES, 0, 256*256); >+ } >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE); >+ });*/ >+ sh.destroy(); >+ sh = new Filter(gl, 'vert-t', 'frag-t'); >+ sh.apply(); >+ time("textureDraw", function() { >+ for (var i=0; i<1000; i++) >+ gl.drawArrays(gl.TRIANGLES, 0, 6); >+ gl.readPixels(0,0,1,1,gl.RGBA, gl.UNSIGNED_BYTE); >+ }); >+ sh.destroy(); >+ time("readPixels", function() { >+ for (var i=0; i<100; i++) >+ gl.readPixels(0, 0, 256, 256, gl.RGBA, gl.UNSIGNED_BYTE); >+ }); >+ time("getImageData", function() { >+ for (var i=0; i<100; i++) >+ gl.getImageData(0, 0, 256, 256); >+ }); >+ gl.bindTexture(gl.TEXTURE_2D, null); >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+ bufs.forEach(function(buf){ gl.deleteBuffer(buf) }); >+ gl.deleteTexture(tex); >+} >+ >+ >+Tests.endUnit = function(gl) { >+} >+ >+</script> >+<script id="vert-v" type="x-shader/x-vertex"> >+ >+ attribute vec4 Vertex; >+ void main() >+ { >+ gl_Position = Vertex; >+ } >+</script> >+<script id="frag-v" type="x-shader/x-fragment"> >+ >+ precision mediump float; >+ >+ void main() >+ { >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+ } >+</script> >+<script id="vert-t" type="x-shader/x-vertex"> >+ >+ >+ attribute vec3 Vertex; >+ attribute vec2 Tex; >+ varying vec2 texCoord0; >+ void main() >+ { >+ gl_Position = vec4(Vertex, 1.0); >+ texCoord0 = Tex; >+ } >+</script> >+<script id="frag-t" type="x-shader/x-fragment"> >+ >+ precision mediump float; >+ >+ uniform sampler2D Texture; >+ >+ varying vec2 texCoord0; >+ void main() >+ { >+ gl_FragColor = texture2D(Texture, texCoord0); >+ } >+</script> >+ >+<style>canvas{ position:absolute; } >+img{ display:none; }</style> >+</head><body> >+<h3>100x 256x256x4 texture upload with texImage2D (26.2MB total)</h3> >+<p id="texImage2D"></p> >+<h3>100x 256x256x4 texture upload with texSubImage2D (26.2MB total)</h3> >+<p id="texSubImage2D"></p> >+<h3>100x 256x256x4 texture upload with texImage2DHTML (26.2MB total)</h3> >+<p id="texImage2DHTML"></p> >+<h3>100x 256x256x4 texture upload with texSubImage2DHTML (26.2MB total)</h3> >+<p id="texSubImage2DHTML"></p> >+<h3>100x 256x256x4 readPixels (26.2MB total)</h3> >+<p id="readPixels"></p> >+<h3>100x 256x256x4 getImageData (26.2MB total)</h3> >+<p id="getImageData"></p> >+<h3>25x 256x256x4 float bufferData (6.6MB total)</h3> >+<p id="bufferData"></p> >+<h3>25x 256x256x4 float bufferSubData (6.6MB total)</h3> >+<p id="bufferSubData"></p> >+<h3>100x 256x256x4 float bufferData, reuse Float32Array (26.2MB total)</h3> >+<p id="bufferDataNoChange"></p> >+<h3>100x 256x256x4 float bufferSubData, reuse Float32Array (26.2MB total)</h3> >+<p id="bufferSubDataNoChange"></p> >+<h3>100x 256x256 vert VBO draw</h3> >+<p id="verticeDraw"></p> >+<h3>100x 256x256 vert VBO draw, change VBO after each draw</h3> >+<p id="verticeDrawC"></p> >+<!--<h3>100x 256x256 vert vertex array draw</h3> >+<p id="verticeDrawVA"></p> >+<h3>100x 256x256 vert vertex array draw, change array after each draw</h3> >+<p id="verticeDrawVAC"></p>--> >+<h3>1000x 256x256 texture draw</h3> >+<p id="textureDraw"></p> >+<canvas id="gl" width="256" height="256"></canvas> >+<img id="logo" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAgAElEQVR4nO19bWiUZ9b/+BJfsP8oJfXlyUMDNkSSfnvGhgh2Qak6IPRZJ9QPtTIlYMQ2RQvWHagSxcgiCYTtulsCCinb1mWfriy20pSnLkL1Q2Fqv5RktThhaxseWFGXFQbZdc//w8y55lznPtfLfc99J6OZCw73PTOZSYz5/c7vvFznSkFjNVZjzduVmusfoLEaq7HmbjUIoLEaax6vBgE0VmPN49UggMZqrHm8GgTQWI01j1eDABqrsebxahBAYzXWPF4NAmisxprHq0EAjdVY83g1CKCxGmserwYBPKarWJyGs2c/hTff/BjefPNjWL/tV7A7ewRWtQwoS6X61dVk9OtXtQzA0x1H1Wf9fP/78OabH8PZs5/C5OQklEqluf5nN1bMq0EAdbxmZmZg4otvFcApsOfKKEm8+ebHMPHFt3Dv3r25/lU1VsTVIIA6Wffu3VNgf7rjqB/Q1x6E1NqD8HTHUVjccxoW95yGRb2/haaBP8DSX3wKy0/8GZaNXoNlo9fg/330F/h/H/0F/nPi/+A/J/5PPb/8xJ9h+Yk/w7MHPoTU6x/Bot7fqs/Cz0+tPehFDA1SePxWgwDmYJVKJbh37x68f+Z/4Of733eDvQLy1I4RBW4ELwKZAp3fI/ip/efE/4nP0/fwz1t+4s/QNPAHSGV+A2vSv4RU59vO0OLn+9+Hs2c/bRBCna4GAcziKhQK8OabH5fBY/PqnW8rT44empoJ/Cbgo9enZgM+vV9+4s8aCXDDnyn1+kewuOd0magMhLAm/Ut4/8z/wMQX3zbyCXWyGgSQ4CqVSjDxxbd2L7/2YFluv/4RLP3Fp5otP/FndfUlARvoTSTAVYJJAdiM/3xLf/EppDK/MYYQq1oG4M03P4bJycm5/m+a16tBAAmsyclJFcu7PDxKerz6gN9EAD6gt6kAE/BRCUig51fJ8N+n8grsd/J0x1F4882PoVAozPV/3bxbDQKIaWFML8r7tQch9dKgBnpu3PvbSEACHwI1KgFI8t8nDLCBn/4buCl1wH5Xa9K/hLNnP22ECLO0GgRQ4zJK/HWvKU+fev0jSL3+UTmBVrly8IclAQTezwb/FAn8tBpgI4GfDf7JKwdg8/4mEsB/f2rHSIAMGiHC7KwGAURcE198C+u3/Sro7TvfhtSOkSrw+8ecBOAiAZcKiCL/fZKBthyAj/w3gZ/+O+nvAEuQUnmxkThMZjUIIMRCmR+I7ZtfhtQLeVjU+9sy8Cugj0ICUVRAVO9PCeC/3/tfq+fH5+KQ/5QEpN9D6vWPRFXQCA/iXw0C8Fj37t2Ds2c/1YHf/HJZ5hPgc6PA1+5DqgAXAUQFf1wKIKz8t4FfIwEkUdZv8HTHUTh79tO5/rN4IlaDACyrVCoZgb+457SS+hz06p6qgIphx12YZKCNBGoBv5QIdCmBpBUAVUmUNBtEkMxqEIBhTXzxrezxXxosy1OM8wUS4GRgUgBREoIUfLVIf5+KQNyxv68CSPWPaSrARQRr0r+EiS++nes/mcdyNQiArUKhoCf3iNRH4HuBn3h/iQS4Enj2wIcaOPAxBf+zBz5UII3D+9uIgHv+/37vfxOX/ybvn+of08hU/Y4ZEazf9qtG1SDkahBAZRWL0/Dmmx/r5bxKco96fW42IuB/tFQB2MIAmwLg/fxJmav0F9X7+8T+oveniVUaZgnJwjff/LiRKPRcDQIAgPfP/E8Q+J1vQ+qlQRXrSySwqPe3qsEnTBiA3t9XCVBAITiTBD8lAa4EsBLgIoGfDf4J/vu9/4WhY3kYGjoNhw8fhsOHD5cfH8ur++G+LXD48GH4+f73YXf2CDx74EPYsOfXAe8vgV/7Pb+Q14hgVctAIz/gseY1ARQKBb1zr/nl8h9Rxesv7jntJIHI4YCjJGiqBiwbvQZLf/Fpzdn/KEqA5yBsCuDZAx/CwBvvwNCxPHx+bj/cOdUNcHUnwNWdUPrqRPUKQ+p5uLoTYCwNMJaG0vEuuJzfCpfzW2HoWB5yuRz8fP/7VrJthAXh17wkgHv37gXlPsb5L+TLgEfpXzFFAhFCAVMugHr/Zw98qIGf5wCoEkCAhd38E9WWn/iz5vlN3p9XKziBPXvgQ/j5/vdh6Fgefn98M5SOd8Gj4Y0AV3fCwzO9ANAPAEOaIVkgOZSOd8GdU91wOb8VBt54B3K5XFkxVJSYImpCBNhV2FjBNe8IYHJyUk/yrXsNUhv2KvAr4CMRECVQiwoQG4QsSoAnzBD0UjmQqoEkyABVgCv5Fzbxl+ofg5/vfx8OHz4Ml/NboXS8SyMFuLoTOCGUrb9KDIQUhvu2VAlhx0j5/5JtR26oAX3VDQF8/0keHv3tWqLf4+zZT8V+fQ38SZOApRqAj21KgKoB9MxJhwFU9nMlwAkgdN2flPyePfAh5HI5pQ4enOyG0vGuclggkkE/ub6oEcKtwXYY7tsCA2+8UyZ41jvQSBKWV10QQOmrE3D3wGr4/pN8Ip9fLE7Dz/e/r4Mfvb5AACoEIAQQIIE4cgFCKOBTFqRqIKlyoLQVOGr231n3FxJ+qf4xyOVymjJAMqiGC9xerNrVnQATbUpRXM5vhZFMlwr7fr7/fZiZmUnk7+1xWnNPAIUxmH5rDcy8uxI+P7c/9o8PNPSg10czkAAlgjhJAAng2QMfaqFA2A5BBFsSyUCa/UfQuzx/FPAr5eMo9W3Y82sY7tuiEYEWKsCLECAASFWv36wGmGiDBye74dHwRpga6IDhvi2w8fneeT/teE4J4NHfrsH9Q+th5t2VcGuwHaYGOmL77FKpBO+f+R9Z8nPwm8IAlhD0CQOcvQG0kYX1BZiUAFcBs6EAuPRPatMPVwBSqU/9vl8ahJFMV4AIVJjwzWpAAvj335vINVW1b1bDow/K4cWDk90wNdABn5/bP29nFs4ZAdy7dw9uDbbDzLsrNRK4d+8elEqlmlh5ZmZGl/zYzUfBLykAiQgQ+J4kQMGfyvzGGQpoNW+HEpA6BJPMAdCuwLCJP2/pT72/UONX2X1SkUmn03C+v1VUBI+GNxIiSAUI4N9/byrbDys0VfBoeKPKQ80nRTBnBPD9J3kN/PcPrYfpt9bAP4sXNBII+59RLE4HW3krY7iMFiIXEOgNiLEsaGsOspFAEpn/JON+XvmQvH+qf0wEv7LFnUY18Gh4Y1kVTLSB5v0pAVRIAIkASQCJAP8Gn/Q1JwTwz+IFBXxKAjPvroTr43vh3r17ysIQQaFQCO7T37C3DG6TAvDIBRgrAj5VAYMK4CTgkxOgwKf3SfQC0NJfIht+pL5/SfoT+Y//D6mXBiG1YS+sbNsGr6TXWkkAFYEGfAQ/IYF//7ACHn3QpRFB6asTkR3R47JmnQBKpRLcOdWteX5KBNNvrYGZmRmYmZkJEIFtTXzxrcrwLlu0uQx4BD0FPxJCSBKQwoA4EoISEfC9AjwPQPsCku4KxERg3NKfJ/8C3p/8/hT4N+wNXDkJIPAD9x90VYlAAD98s1pdkQgenOyGh2d64dHfrj2ximBWCaBUKsHt7y4EwI+5AHzupyvvQbE47U0CWrIP430O/rUH7eB3JANtCUFbOBAqFKjcNw38AX42+KeASU1Czx74MDHwm0iA70/gPQrenl/a6ss3+nDpT0mgYi0tzwRyAhIRPBreCI8+6NKAbyIBGhY8ONmt1MCTRgSzRgD4y7tzqlv0/JwQisVpRQJIBFyKaZn+5pd1z7/2YLXLD8GPuYAoKgDlp1QWrKEqsGHPr+Fng3+C0dFRuHTpEtz+7gL8s1g1+Mfv4NKlS1oeAEGGQJyNVmDegRhL1p9YAPy2HIBAApQATODn+QEj+InRsODhmV5vRfq4rFklAOr9TSSA999/ktdIgP/isZ9fBD8aBz8C30UEEfIB1qRgJQ+A1/868DGMjo7CT1fe04DOgX/7uwvws8E/Qap/LNAhiECjZcC4B4RI3p83I4Xx/qL8pyEALZGS3ZaaEnghrwE/k8nA5fxWuH9ofQD4qipwdafK9gdeqwBdAj8qAZ4kfPS3azAzM/NE5AZmhQC49zd5ff64cO0KTE5OaiSAv3QE/7JFm2XwcxXAQwJXOCCQgLZJKGSb8IY9v4bx8XHl4TnguY2Pj8OzBz4MbB3meQEKVAnAcXj+WON+adiHYasvJYHd2SOQzWZhuG8LDPdtCXQImgwlPLYS8z0Ej4Y3lkFuAj8hARhLKxK5/d2FJ0INzBoBFIvTCuAS2KXH33+Sh0KhAJOTkyoUUDX+5pchlUqbwW8KBXySgo7eAFdCkKqBN9/8GC5dumQEOvzjdwCFMc0OHz6sAcI0P4A3AUmgdxEBfV0iEawE8AakqOCn/5ZU/xhs2PNrGHjjHfj98c1wOb8VpgY61B4AbPChgKav2bL/pnu4urP8O6/sJ3h4pldtQXYSwESbIoFHwxsBCmOPPQkkTgDo/b//JG/M/Juut/etgsK1K1AoFFQ4EAr8lASQAKgCsPUH2MIAQ6swJYGf738/4O0R7P8sXgiAvvTVCSh9dQJyuZyYJJSUAJfqPsD3eZ5/JhKBa7OPS/prxnZGLur9LezOHoGhY3m4Ndge7PJT8wP0nYCcIHzzABoR4LWyf8AE/kcfdGkkgMlBXrJ+nNasEQDN9Nvif/6YhgJl2Z/WwY9Zf5r9d5GABH6XEvBUAQh8KvElsFPQl746AQ/P9MLu7BExWciVAEp/Cai+ZMDBzUuJ0mdiPkDy/lKOwhbzSxuj6L95d/aIvf+feHE6VIQqBCcJjKWr7yefV/rqhGoQ4oYkwPsFisVpKwnUKzkkSgClUgngXz+UJbzF29teu3tgNVwf31sGB/X8zS/7gR+9vkQCPg1Cnp2CG/b8Gi5duhSQ9BLYKejxmsvlAvkDU8nQB/wSGdhATUnA9Z5IcX8I8HPbnT0SUAVY21dThRiA4epOYwVAA+9x+TPK9/1VVTBBwP9Bpa+A5ARKX50wVqsAyvtesKegnlbiBHDv3j24Pr5XBP2twXaRBHhO4P6h9dCX2VQGfipdBb9EAGGVAK0KRAgFFvechqGh06EBT224b4te5jIRQKUawAeDRiEBmuGnLb88+88JAhWAC/yUBJb+4tNI4NeagXaMwO7sETUrQN4VGBweUvrqhAZUExkoNcCVhUACmhEy+enKe8a+lUKhAHdOdVe2MtfPSowAEPz37t2DqYEObwUgEcH0W2vg9r5V0JfZpIPfRgS+uYAaugQX95yGa388agW6BHhqUwMdcq97paLAQcFBGpYE+Ht5v79J6kdN+tHPXDZ6TT3v4/m1dmBSCly/7VeB8AClfxlgBiJgqoDfPzjZDfpYMjpwpEoElAC0pOBYGn668p5YtgYAON/fqkKGelmJE0CxOO2M800dgQj+uwdWw/Rba2Bq71LY+HyvHgL4gj9MPsCjS3D9tl/B95/kjaDHNlJquAUV7f6h9dXPxOYWixLg3j+KEqAHf/D5fhgCmBJ+tM5vq/nTuB/3KqTGChq50Jq/tQRo6QfY+HyvmCdQ2X5xnFg5XyCFArRvQAM+HzoyllbgR6Ofdfu7CwESKJVKMNy3RX3tP4sXkoJeqJU4Afx05T2v0h+/Tr+1Rnl+vE4NdCgSsCoAExmY8gG0KuChAtZv+5XVu1PwI9ipl7p/aD3cP7QestlstamFdhsaVAD1phL4fciA7+7j9/TrTF7fd5cffh4Ff2qsoAwVgW8IEGgIeqk8/BObgRDI9PctEkElvn94pjdABCocuLoT9ElD7EqqEJwEHp7pFUlgfHxcI496mEGQCAEg+GdmZuDzc/vh7oHVzhAAAU8NwT+1dync3rcKbuxaATd2rYDz/a1uEhBsd/YIbHy+Vw2h/Pzcfu16+PBh2J09Uk44GkgAwW8CPvfweOWmpL+wwQX/yNHzISBc4OdEwGW+aWMPHzCK7wsj+3nMTwEvgd9GBCLwaZMVactW5LlhL/RlNsGdU8EqQFV2y2qA5wh0JcAnDRH7ZnU5sfdBkEQenunV+lfu3bsHk5OT5aE336yum92GiRMAj/+5l+fgl0A//dYaBX60mzuaYWXbNiMJ7M4egcOHD8Pn5/bDT1feg9JXJ+CnK+9piTp8TJ/Hr8PrtT8ehdHRURh44x3YnT0Cl/NbIwGeG46yVqBnYQA23iAQTN7fRQq2/fy2Md+UBHxjfpPXp49NJMCJwEoCwtZgpeLWvQbDfVvkJiBa9uPxPZPxuhIwEAC8WC4XVt7L8wEPz/Rq+1lmZmbKYQDZbGSrHMzGSpwApt9aE5D7JuCj3di1AqYGOgKgRytsXwg3dzTD9Z5lsLJtGyxbtBk2Pl8upX1+br+KzVGm01idApyTgUQS9HUKehfYqdQXvT8OwOT97ZXHCEr8Ohq7+4QBtr38rnP96PfBfIAJ/EhUHPAc9C7wU1v6i0/9wM/zJ5Xf4cq2bbCybRvcGmxX4QAlBGOMT9SARgQc9Nq4sfKVqwAkgJ+uvKe1sw8dy5d3JP69SakA3FcwF0QQOwFQ8BeL06LX57E9eni8Tu1dKgKeXq/3LIPrPctgaqDDKMm//yQP33+SDyTokBBMxMBJAsEvgdoGdMnuHlhd9v5IANTwj7uSPKPn8UkAM5kL4GHCAK4EsAXZRkZc9ocBvzJpUxUfxkI3aJENQtRGMpbSX2CiMEnyETA/ONld9vR82Ki6lo1XBdDonpZLly6VT0mClFIBxeK0OARnNlaiBHD7uwsK4DZvT+N7CfgU9Pgc9ozzpJvNkAzoPc/gQ2FMJIgwILeZ5v0rtvQXn0Kqf0zruafglyR1VALwIQfb57q+d1SvzxWANf6n8p+WZ2koVVECqQ17IZ1OKzUgZ/xpnF+5n9DnBcJYWnl8PmZMs4k2UQlgS/vk5CSc729VQ0keDZdHkPEhOE8EAXx+bn9ob4/xfWH7Qrixa4UCPfX4VH7zOBytVmKgBOEb1/tYLpcTwY9yn5/Bh6AISwIuzx6FAHzBXwsBLBu9Jst/An6lArgCYFuFFQmsew1Wtm1TOwgDswFMcX4lWafi+w+6wAp+RgJUDeDGtkKhUM0DVFQDqoCwU7DiWLETAP7wxeI0fH5uf2hvT+N7CvybO5q9AOYihrDk8PBMbySg3z2wWrynwOdmA7+P97WpAB+CqIUAYpH9Du8fkP88F4CJQBMRNL8MfZlNYjNQOUEoxPkkyafmBxiAjxOIMSfAk4M/XXkPJr74FoaO5dXn/PuHFVYVkDQJxEoA1PtjxrMWb8+9fi3GE3e+5BDF+0vgv3tgNVzOb9W8vgv8pjp6WCLwVQhhCcAE+qjgT40VylUFm/SXFAAlAAQ/kgELB1a2bYN0Og13TskDQqqxfjXO55n+wFkDDPxoUn/ApUuX4NKlS3BrsF29F1UA5gmKxelZUwGJEUCxOA3n+1vh7oHVcHNHs9HbU9Bz8Eten4IrTjMRgw/Qpav03O7sESX1Md6nsT73/FHlf5TwwJXYcwE/DvCnxgrlioJL+psUgIMEMBRINb8M6XRaCwlkEtDBrTL9lVBAAj2fPMyTgt9/kodLly7B+f7W6udXVADOwiwW5SlYSazECSCst7/Y3gTXe5bBjV0rAoCyAS4JUvAFuw38aDPvrixv52Xg5wk/EzAkL1sr+HmisVbZH5dpA0EN2X+jCnCRAMsLTA10yN2AlQnC3MsjCYijxh0kgLMLLl26BLlcTvtsGCurktlWAYkRwOTkJIxkusTyHQf+xfYmKGxfCBfbm+Dmjma4vW9VAECS+XjdOJSDSdL7/IxomP2nkt8H+JQAfLxvUpak1xdVAJX+OFPRJv8lAuCbvAQlgCSAIQEnAUnqY3zvAr4igG9Wa0rg+vheGDqW1wmm0lXI+waSJoFYCYAmAIvFabjY3mT09ujp6fXmjmaYeXW5ChvuHlgNM68uh/uH1hsf+xBELcrBF/wuMvj98c0qy08JwBcU9Qr+uA1/L5gMxB2Qy0avyTMZXeCXCABnRG7Yqw6PwZ16LhLQ4vuJNvNhI8KhI3SS0LU/HoW710gYUQkDro/vVeXCYlGfhZnEil0BoPxHBcDBj4D/8rlFTvBjDsCXDOjj+4fWq8dRlYMPsF2v479puG8LZLNZscEnrJmALxGB62tsj02ePmnw80NJl41eK88TeGlQBr1EAtwcOYFU88uqt8REAlrMX5H2CuwG4GtHkBEVcOdUN9y9VkkyIqlMlHsPpGG4SW0cio0AePw/OTmpSXvu7b98bpEiAQT/zKvLNfDbrpJSwGst9mN2gfZ5YY2+D+9v71sF51qb4FxrE2QymWqbb42AMeUFXIqhFvAnZVIylJJAYBOQj/x/abBcVeAkQCdFUyLYsFftKpQSg2J8P9FmBr9w8AiSwMMzvUoBKAKovE6H4RaLyaqAxAigUCjASKYLvu5cIoIfrzd2rVDApyQggVMiCheY6TWKhQE6v9J7JIBzrU2wftuvYiEAExn4eG8X8GcD9C7wUxJQeQGT9OfgfyGv2pcDCkAigeaXVTs27Rq0kgA5UMTXaJOQFkJUPhuTgdg0VCw+xgTAPT0F/9edSxSQf8wugBu7VqgrBbtEEDOvLofb+1Zp1zBE4EMM9HOjgB/fj899tiAFe9YtUSSwYc+vEwOUC/Sur5kN0IcBPx1FplUHLCSwqPe3KuGa2jESDAd4LuAl/RQiKSmojhUTknxO4NPDR7AqMBFUD0gQtHW4WEyuIpAoAZxrDXr9i08tgOs9y+DH7AIFftM9gp6Cn3YWxkECPgpA8uwc4FIYgvc0BOAkELcSCEMQc21hwM87G5f+4lOj5091vi2OMVPlRdpCvGNEPJIsm82aScBT8nNyUCQw0VZVAIYw4fNz+2FychIK164kqgISVwDKnloAXz63CArbF4pANz2HVw58iQDCEEHUcEC6cjLgP8uNXSsCCmA2lEA9mw/wTeBXIcHrHxlj/zBnGPATilENZLNZuTIwEQSu0+uTe0wImj5HhQGzoAISIYDJyUmdACrgR5BjYxCX/iYFQDcTxUECPkY/RwI4zz+YXsP3cuDvWbcEPluQgnOtTeUJRHUAynoAvwn4JhJQEp+AH6cS+Q4zVROLqRKohAI4XERsFArj9Q1Hj5nyBNg2nHQyMDECmJychHOtZfB/3bkEpvYuhZlXl6sr3RsgEQFepS3ENkuKBGxAl8iCksaP2QUB74/gny9KgO5vCCP5bduX6VmFGOfbPH8YEqDzGayVAU+v7yIAThqPhjfCtT8e1VTAY0UAqAAQ6Hw3IJIAXrkKwE1E0rgwHxKIyyRvzhOEJqVAH3MFwO1ie1N5SGgdgHWuvL4Eftoy7SSBSuY/yjhzflIxbUfesOfX9qQgA74V9MyM7x0r71WY+OLbRMOARAlgau9SBf7b+1ape64GuBKYeXW5OCTUhwTiiPVdRGDz/NLX3dzR7AT/udZyojSbzc5JYnCuvL5Pws8H/KgCfMDPSSBwghFVARUSMOYDXECOSAKPPuiCO6e6y2EAOR8zbhWQGAFcH9+rAZOCX1IBSAI28LtIII66v03+u4AuvdeUA7j41AKNAKiNZLpq6hSsB/P1+FHAj8CXSCDKQSYSCWjjySuhwO+PbzaGAr5gd5EANbp9OKkwIHYCKBan4ftP8gqUElAxFJDyAi7wSyRAQR8nCZjkvgRwm1KQCMAEfiyZjmS64NkDHz5WRFCrx3eBnwPfBX7J65vif64A1JUeTOLoD/AG/ESb19dhHiDJZGDsBPDTlfe0OYCcBExKAB/jFGFfErCBPy4SsOUBfEhh5tXlSuaj55eAz1unC9sXQi6Xg/868LGyeiWDMB7fp8TnI/tdnl8CPx1h7jrIVAsDKqFALpezhgLewKf3Jqv0AyQZBsS3GahyCnAYyc6Tgxz8NiIwgT9p4NPnTf0Akor48rlFgZifg59vjcYNVIXtC6GwfaFqq6af1ZfZBK+k10Imk1Gmpg7Xkcd3ef0w0j8K+MPIf36QqTafwFAVgLG0H/j51aYAPuiCqYGORMOAWBXAnVPd3nE7VwIU8Bz4/DEFP5qNBJIgBBfoJQVgM75pamrvUm1+Ahq+jiSC5cXNa6rW0vKMsnoAfi2gDwN436SfE/xCHoCGAaYuQSPIw17xfqIN7pzqhvHxcWNTUK0rNgL4/pO8U7qbSIASACcB6TNdcj+OEMBU6gsDemqF7QuN0h/BT68S+PlYNdpUtGfdEgX+zWuaILWwpWyVGQRRcwkU7FGkvqmrr5ZkX5ikny/4TSQQWQVMtJmvaB5k8Gh4I4yPjycWBsRCAPQEoOm31sDUQEcoEuCAt5EA9fpJk4Dk6aNuOUZwmyQ/lfsU+HSMGu2gxBLrxXadAJAEFAG8NCgCl4I6LrBH8fq+ib9aYn5b7d8G/EA1gM0oNLUJi2A3Gf066Z7kAS5duqSa7OqKAKj3D6MCMAGIoOfGP88m+5NKAMZlN3atcMb7PuCn5VLcI1HYvtBIABRgtQK6VvAvP/HnKphe/0gEO4I1DvCHjvt9SaCyLVkqCyoVMNEWjggkIw1BNA9QLFZnBs49AfzrBwVU9PwuJYA1e/wDNgGf3nPP7xP/xxUCRJX9JgLgnp9Lf5vnx8+iV1QYSACphS2wZ90SyOVymoyebcBz8lGZdXLwpwZKNg3Yp9SXlOdXP+vrH8HQsTxczm8tJ1eJCni646h8luBEW2z26IMuuJzfWg0DYs4D1EwA6P19Yvfpt8qn/lLwmrw//Rzu+R9HBXB73ypjvC/F+hT8tEPSdL25oxnO97fC0LF8+YDTf/0An5/br4GES+84AO8CPyUBra4unfwjGAI6Kc/vQwS7s0fURN+BN97RzigQ9wl80GUG9dWd4UkgwTxAbQTwrx9gaqBDAy0+lpSAJOFtBCCBX3ps8vym1+fKJM/vkvzUy0v3t/etUmcaPvrbNc1+NvgnbRIxelIO4FqB75vgC8TSJqMTgS3tvbV4/jDyP/X6RxrAf0GxQZUAACAASURBVH98swoDMpkMPDzTq4UAVhVwdadGApwsxMdjaUUANAyYcwKg3t8Vv0senEp9yWio4JL9LhKYa4Vwe98q8RAUG/hNHv/2vlVw51R3+fTif/2gAE/vh47lxVOIpARcLfKey3xbQk9rqvEEv+/23jCePyz4U69/BJfzW7WpvkgCi3tOw63B9kAewKoCYEgDO7/y+wcnu7VEYJz9ADURwJ1T3V4EYAKxS/674n6X1Qv4qdeWYn5TvM/Bf2uwHUpfnQgAXiOBf/wOhoZOiycQ+5KA9HytTTzLT/xZjPONoCcHgizq/a0WCkj3ccT8mmV+E8gDPPqgSx0M8uBkd/mg1xfy0JfZFMgF4MCPAMCv7iwTwNWd6vNsZIBfczm/Fc6e/TT2PEBkArj93QWnfHeB2PbeWsHvIoHZ9v6cACjoJc9P90lIEp+CHu32dxeq8SnuZw9JAqYrB54v6KUwIAB8wylA/Ipz/mqp84cmggoZDLzxThnYlVN8EOjZbBZSL+RVY5B2kKgAaE4AFORGIqhUAmgeYM4JwCb/fT24b9wvgT/u4R+zRQKuTD8SxfRba+D7T/Lwz+KFANAlEjh8+HB5uGX/mBpyyUkAwwEEtCTfpStvhrGV8nzq+dK5f+IRYPQcABwJTioHLs8fBfRU9uP9ot7fwoY9v9aGgND5/qkX8vLBIhKYkQBgSIGbkgA37AW4c6obRkdHY08ERiKAUqlUE/ht8b8t7kcCoOCvZyKgzUO3962CuwdWO5N99w+th5+uvAf/LF5Q4JdIAMF/+7sLkMlkynPtXxqsgp8qgf6xMggcuQDp8dJffBoAP7+iZ7YBn96bDv00nv/HxoFTJRBXvG8kgsqxZIt6f6ufFDTRpoB+Ob8VXkmvFfMAAS9PCECpAPK1JntwsjuRRGAkArj93QUoHe+KJN9dBOADftMIsHoiA945iCTAQa8k/0AHlL46Abe/KwMfrzYS+Pzc/sDBl4oEhBCAl9Q4WCVZn3r9I+/SHSUCUxsvEopGUgz82vl/0lkArH8grnIf9fg0D4AkoLL7eEoQkfuvpNcG9gdwYMNYOkAAGlEYiACPGUcFEGciMDQBlEolq/z3Ab8p/g8LfhsZzKVx0NMzBabfWqN5f/T4UBiD299dUFcEv0QA1OvTc+9tCsCVB7DF7GHq9ijJMelHgU8VhdPrU9DzE4Eyv4nV81PZT0FPQ59Fvb8t1/wrR4PjgZ4I9luD7SoMoKcBcxBrBABD1ecNhu/FSoCpIWhWFYAp+z/zqjl2dxGAS/q7wM9HguHPMtte3wZ+SgIY40NhTAQ/JwEkgM/P7VfApwSgKQAhEUjjZqknwFi68y3bsZKd8vKVPAElnkC8jyCnQJc8PzWDCgjr+aWYXyMBPJk48xu4nN8KD052VwmAJQSnBjoCPQEYw2sE8I/feROAIoJKqKEqAZVE4E9X3qtpTmBoAnj0t2vW2J0CzzcB6JMwtM0V4OCfC+C7PD8/TPT+ofXw8Ewv3P7ugor58cpVAN7ncjkR/KL39wwBXErAC/jksdYvX7nS75t6/aMA4PmR314HgBICiDvm554fiQB7///9wwqQVIAUAgSMK4BKGOBjvBJQKBTU39CsEcBPV94zJv0oKLDlVyICTgAu5eAzXEQC/2wQgS/47x9aD9NvrQkcP1463iWGAJQEfrryHqTT6QD4rd6/RvDjawFAO+r2YkaftPTSzTSi3Pe1SrgRR8yvPD5/bu1BSHW+DYt7TsPintPQl9kUJACmAgIhALtyAih9dUIPERwKYHx8vDwfoHJ24OX8Vnh4pnf2CODhmV4r+LF+bVMBdAOQy/vT8WKcBCgR8O85G57f1+NLwEe7c6ob7h9aL4YCUBhTkr+l5ZmawC/11PMEnZS8axr4gxP8UgKPx/ZiUo/H9mHMAv4opT5J+qfWHoRUql8ZHhKiKgGCCpB2B+J9OXwYCpqNMAgBSIlALBFGDQNCE4CUuOPgl5SAqQLgI/1tW4tp6DHbXp/H/JwIqNyXrHS8S5HAg5PdCvSFa1cACmMw3LelDPTFnWbwW4DPvT9efYBPr6qDzxP8xho+v4b1/J1vq65Ak+yvJeanjxf3nA4QQF9mUxnEE20aAfz7700i4DF5R58rfXXCSADS+zmhoALAMACfLxajJQNDEQCP/xFwONmHA5+CUlIArsSfDfyuuYBJe34EOgX87X2rNNBLnv/WYHvA++P14ZleFQ6MZLrMnv+lwVBxfxjvb7rHpJ7k4W2ZfGs5LwTw1WcQkGveO6wR2c8z/6gAFvecLn/vCgFkMplqgw9VAKwvwAZiUQFc3Wl9H1UAQ8fyMD4+DhNffAvX/nhUfQ3mAcKSQCgCoPE/lf68BCcpAQnYtXh/02iwJL0+nQ4kyX6Xx+de//6h9fDgZLemAn668h6MZLogtbDFHvOHBL9EAhLgTc8b5b3J29cKegp8vK8ogNSOEe05DAl8pb+U7V/cc7oq/TO/qXr+tQfL1vwybHy+10gAtDuQyvcAiAUCwDyATTlIeYDPz+1Xr3//SV7rCfAlgVAEQCf/SOU5qgQ4GXACkJSBpBIQ7PSev382CMAn3neBn3v8O6e6oXS8S4H/zqlumBrocIPfQ/qbPL8N+CYiSL3+kSzvLTI/Mug5+BHk0mP+Wog6v3qOSHwu+VNrD6rcx+Ke07A7e6QKbq4AWDLQGNdLCgD6vRQAEgDmAXCH4sMzvXA5vzVwdJgPCYQigDunKn+kJMPv05TD8wC+3p/vKsR7qeSYZKzP43wb6LnsvzXYrrw+gh09PwX+g5PVeynjHzbm9/H8vkZLd8a4nt/bnvMBvYkEKODpa5XwIEzMv7jntA54Zot7TmvJz93ZI3BrsB1gLA3//ntTuRsQuwIrYYDJcz8a3lipAPSLJGBTDvQzqQJAAoCrO+HOqW6tNdiXBEIRwK3Bdg3MrqYcqghsgLd5f4kEOFkkQQImjy/JfluWn0t+yevz6/n+Vu8uP3V4RULg5517opevJZsfBvScAHaM6KFBmJIfXjvfhtTagzIZrD1Y/jpCAAhMJABq2PRjjP/H0oAeX7dgHoACn37OnVPdMDR0GsbHx5X3xx4BbA0OQwLeBPDob9fgzqluBbypgQ5tpr+LDMIQgG06MI/7kwC/tIknLPAR8NTru8BPVUCYLj8O/rgJoGngD7V5dp/43gf0npLf5PlNnX5a3Z8SQOfbigAW95yuJgEtBMA9t0YASgEIViEAmxLAx6OjozA6Oqo+E0vzfIOQT1LQmwBuf3dBxd6YqOLlOBsR+IJ/5tXlGuDpPZf+cYK/1oYe7vFNnl+S/PT+4ZleeHCyG07k/iNSzB83+KkKqDm2N3n5MCSwYW/13hXv2zw/zQVI4CfeH9WPSwHwDUKBngAPArAlANGGjuVVAhBHjD0a3iieH+iaF+BNAN9/koeHZ3qVpJAm/tpIwDcMoE1CXAHwz4jb6/vE+r6JPh7vu4D/4GQZ/EgCtwbbreCn0p/3w1MC4ERge2x6r2q4ieL1bRI/rNdnJGCU/Qaw8919XAGo2j+GBCj/KyEAPRHo3z+sKIOeXdWuPrEE+GIF8Pxavse/BykMoCpg6Fh5JPnDM706AZDTg3goUDMBPPrbNXVvOgOQkwCv1YeV/67NQknG+1FifZrwM8l9k9eXrul0Wiz3aXH/6x85wR/XVSUDo0j7WkBPvT69l8IAWt/3JAObqUTgC3ldAVQGgyirkAANA7D7r9oF+CIDv04EXn0EY2kY7tuiJQBxP4HpFOFYCABXqVSCa3886jzKGwkgbALQd8BIXJKfSv84vD6P+U2xPoKc3mNS59HwRnh4phf6MpsCCsAG/jhJIPX6R+JjDAWcwI8T9PQxXte9piUDnbv6JM/PHvPXeAiQzWbNBFAxmgjEK5JAFfQyEfjmAH5/fLMaR47hw8MzvdomIa4CYiWAy/mtgbq8iQSiZP9t24xpEjDOJF8Ur2+K9X3kPpZUqdfn91MDHXb5b/D+tZCB7bPQFAkkKO9F0HPwb9hbluwb9vp5einxZwI+k/9r0r/UjgY3EgDbF0BlfZAAmFVALuUAeC/ArcH2al9BJQTgw0KKxelkCICfAGQyV7KPXyX5b1IRcQFf8v42r4+tvCap75L9FOT4GD0+BT8+piGA2p5KwG9SAVHNlwisJBCHvHd5fgr+tQe1OYVWz+8DfOb9MfE53LdF/X8h2L0JYKLNSQCPPuhSZT1TNQFLflpZkRMAmxk4MzMTHwHwg0BNRGCT/jOvBncNmgggrtg/TJY/akefzdsj4E0xv8kymUwwBHj9I2sIMFumcgJRPL0N/CbQS1f8mrCJvxfy5fe/kNfjfer98blKAxTuBnz0QZcCv3TlOwAxW19uGHqxArsy6KvPvSiWAnkSUKwqVN7HZwVQFRALAZRKJTUO3EYCNulvAujU3qXeY8Likvx8So9vnM89P15tdX3u/dHrS9Kf2nDfFqP8T0oF+IJfIwGJCOhzNk8vSX307hzoeI+vr3utSgidbweGeFDPrzb30Pcg4PH7CglAVAAqBLAQAN0TgAB+cLK7MkPgRZEE1H1FPUihAFUC+nCRftUJyIeGJkIAP115z9qo4yP96cx7evUdMVZrhj9MDz8C3qebzxTjc/BTsGPiz2Tn+1utOYDZAD8nGvo91XNsg45SKr5e3gV+IvcV8NcerL5OQS15fgp8CfzsOQp+JAB1DmCFAKgp728IAbReAQX+lH6PQ0KxaiD0FGivky7CqYEOfatw3ARQKpXg3r17zsNAXVl/vlOQPo7T+/t4fZ8kH5b2+N59W4Zf8vgmzy8ZZnW1PADKf2wCYmGAFZwWpeD79dJr/F611vLHNm/PwY6vIagpCSB4ufdHw+e43DeBf8dI9bnml3XZX7nSFmgVe0+0BQiAEgEnAH3zUBX4uhpIiRUEPhBEUwWEAOgmISkPEBsB8IlAlAx8vD+CE4FPy3E+Q0Kjen1KAgh6HvPj8zd2rYCbO5qVfd25BL7uXALXe5ape2r4/PWeZcq+7lwCUwMdcHNHM0wNdGiKwNdQ2mkKYMdIVQWwGrgNxLVcvcHP7aXB8Nl87u0psE3AlwwJRyIJmgNA8OPPREmAyP/FPaerp/9YCEBSAHyAiGT//nuTFgJwFcD3Bmj7CioKYHR0VMwDxEoAEvh9pvsgeCng6T3PAYTNIZjq+nwfP71Su7mjGb58bhFcfGoBXHxqAXz53CL4bEFKu8fX6RXvv+5coj33decSONfaBC0tz0BqYYtme9YtgRO5/4DL+a2KFKjXf3imF0pfnVD3tBeAVgIoCXAwmoDqA3YfoDvBjxt1bGAXsvki2CXg+xKBzZpfrn7WC3lILe4UFQCSgJLhHgSggZiPEDORAMsf2EqB1dmCZQIY7tuiEQA9PKRYnK6dALCjyAT+mzuanQSAm4foTkGqBnznBPqoAN+vQw+PAKdXn+cR/Pj4684lsGfdEg3wLS3PQGpxp35lr49kukQygKs7xWYgUxtsWCCHBraPcfA7SngKzFJyLw6gc8Czq+r2W9hiBD8SAIyly4CmJMAIgSuAatwfjgBMewMefdBVGS1WbiPGXBHuEhwfH49XAaD3n5mZEcE/NdAB13uWeTX6UO9PVQAlAFcJ0dZLEMau9yyDi08tsIJeeoxenj/3decS2LymqQzsCtBxph/O9aPP4T0lhM1rmuB8f6sC//ef5I0EUNNIrKQs8xu5fMeTetLVdh8H4E0kgFJ/YYuS+zz+3509AqXj5Lw+BD4ngom2oOemMwMcBOD0/Dz+ZwrAdHpQLARgOhEYz7r3IQDTTkGaA3B9ji8R2EiBA5iDnHt2Ku3pc/Rr0fMrUAug53P++GtUIaAqCOwHwNZXQy5gTs1Uu+dy3iXx4/L2NuDjfefb5d/rwhZIbdgb8P6Le05X24CxAkDBzwhBA+pEmzY4RBokosiB9BDYdgXquwrLQ0X7MptEBVAsxhACuAjgswUpL9Dy3YK0ZwAVQNj24VrBL8l4H08vPaYSX+3nF0BvmvQbmAKEYYK0H4D0v9cNCewYMcv6JD29r8fn980vw+X81nKzVeY31d83K/9hF6BK6DmMAlZtFLKYIgdHDkAlAWn8D/1qgxDmAHBoaGwKAOW/RAAoo8MSgDTWO6z3t11t4KcApgk8Dmzu+flj+tzF9ibl/ak3d4HcSgCmAaD1Gga8kA96eA5++lxSHt8Q61PgUwJ4NLyx3HCFBEDmHmDzkNp95wI/G+7pAr/WG1BRALZ5ANX6f1UBPBreCLlcDoaGTscfAtD4//r43sC5gJj59gEuBb802TfK7sEwZHC9Z5kGcAns0mPu7fkV5b9pjLfpOC/ba9owED4TgBzLPdcEoH1/KvWl+D4u7y+B3cPbSyRwOb+1HNsPb4Tz/a1lFdf8sj74pPPtcgkQ438HASjAftDlTQBYBpR6/2lY8PBMrwZ+gH4oHe+Cw4cPG0OAWAmAZ/5RNvsSgGnPAFYF4gK/VBWQMvZhwW66vpJe6/T8CGYR4DbDQRwWBTCbRGA8Ugtr6yYvH1dSz8fL24igYssWVbfVonc9399aTtqSrc5PdxxV8h9JwEgG1HN/s7oKcJ9QYKItUPuX+/9R/le7ACkBJKoAuPdHwEQlAArmMN7fBX5OBBywPjE9lflSAxB9Pp1O20/wiWJU+rNeAFcYYByN5fk4AG7Tc/SeNt4kUb7zIQEL4E0hACoAtFfSa7W25kwmU/a8DPgiGRDw8mEh4pUQBC0hmpQA9/5wdSf8/vjmoAKonB1YLNaoALD+PzMzo/Yh3xpshxu7VsBnC1KxEcCP2QWJ5AB+zC5QTT6S1HdJe9M97wTcvKbJPcdfur6Qt78uyH8eAnAV4AVm8nxY8Afeh6/R7rrZAH8NwEej5/2hCrg12F7+/6sQwHDflnJsT0wiAIz/YSxdlf8+JFC58goC7wcol//oVOGyAhjJlEMAWgaMNQSYmZmBYnFaseWtwXYVQ3+2IOVVAvQhgCjmQwK1enqXXe9ZBq+k14YDP0p612NuAgGE8tKmkVkeX2/cb195bXHP6dmr3dcIfDTc4cd7+EcyXUoFXM5vDQBfIgNtHqAwKyBABuwe32/cBaidK1AdJtqX2QRDx/JaCBALAVD5TxXA1ECHAv9nC1JeXYCUALDbL2zMHwX8P2YXOD17LeBHAuCz/EXwm0BNx2zz5wzgxw0vgUEXgoc2kYR1XHbIq/o5Zkvm1wh8TPRpJ/4SCX7nVDc83XEUUhv2qoSey6jnNoLfQgiagmC7AHn3H5IAbhkfOpYX9wIUi9PRJwJRAkAFQEt/VAH4xORxEoBvDgA35vhI+ah2c0czzLy6vJwHoEk+H/D7Go6nMigAkyxP+nHgyjfgYDItTELPJfFrBD4lAFQAuGGHqwBsAEJZ70UAH3SFIwCcJmToADRl/3GOYDabVSEAJYCatwObFAAF/2cLUlDYvtCZgccWYLp9OCoBhMkBmGL7uOx6zzJFAKgCAjE+Bz8Ds+nobRPwqce1KYBEr6Z73GJb2XWnfj4kAd8SXgKA16wysESd91chANrI8+Bkt1YlcJIAAneiLRYCCGb/mfyHfrg12A4Db7yjegCkeQCxKIDJyUm4nN8K9w+t18CPIYCp8Ybu98cegDAtv1HIgBNAnGCXrvhvm3l1eXWSr+D5tbPmolgFYE7w42u1PrbM1DPN2DNO3e182z+uTwLwFVu2aLPy/ot7TgdO/P3335uC8pt7ZfT2/Mqy/6aZgbZhoqa9AJL3xz0AvALAS4CxhgCYOJMUAAe8RAQ+E3/iUAA/Zhdoe/njBj293ti1QptBkMlkAt5fgZ/Mm+Pz50yAl95jVAISSA3e2vW69pxEMI6fQwN/WNAnSAKpzrdVo4+a9U+P/J5o8yIB9T6yRx/lPwW6NDaME0FgD4Eo/80VAFMXYOwKgMt/kwKQiODHbHXuf5QcACUM3wRgWKC7wE4HfuA9fj86d2Dj8726AuDAdhn9OsN7TEpAUgaLe057vy56dIk0hMeB57j0nyVPr2Q+gh2nD5HdfqnOt2FN+pfwaHgjlI4TAmBbejkBaJ6Ze2w2IswGfG2UGCMdnB4VbP4hRFDZBGTqAoxNARSL00oBcPAjAdCTgKUrArfeFICPh5dAT42CH4eQTL+1pkwCXAH4EoDFJC9rG3Ft9PSm91m+xudeMx/QJ0QEdFcfN6oCFNDI1lwTAUgxOpf/NhIwXlnST1MctPOP7QKkCUBTD0CsCkAigOs9y8S9/vRxnATgmwOQCIADPCroOQHwcwY0EsD95nitkQB8AW4DaGhPHtU27E3WyxtifC73bSSAnYDa/vwJcxhgJIWJNuukID48lBIA7wCUt/7qJDA10KFtAsL4H3cCxkYAxeI0TE5Owufn9osE8HXnEiPw+dmANAmYhAKQSoAu7+4DcpPd3NEcyAFQEri9bxVks1l1hJV26GTMROAkhwiv12qLe07PSlxPgY/36rnKYZ+iAuh8W1QAvDHIRxG4wG8kgYk2Efzln4mCXt8DcL6/tVwBEHoAaPwfmQDwzUgA4+PjRgVAR3zZTgamgz+S7ANAAvCR9mHAbrpKg0gpIeRyuURVQF1bAsAPeHoHCXACeLrjqEYApeNdgak9cXt/o03ILcCm2j82AJ3I/YdWAjQlAGMLAa798ahIAF8+t8gIfk4AtBIQRgFIX+ubA6jVy7vAz5OAJjIY7tuik8AcKALNdozA+m2/glwuBwNvvAPDfVvUybPDfVsgl8tBLpeD3dkjNX0PVQJMAPgc6KYrDQW0xCBRAOXDO6KFAZHBX9kCzON/fd+/Dn6M/zOZjFcJsFQqRScAbAKanJyES5cuOQnANPGHWi0hQJgmoFqAbgI7dv7ZFAC/0gnFI5kuWL/tV0YCSFwd7BiBXC4Hw31bAseg4fkH9FQjPJugdLwLLue3Qi6Xg/XbfiUTlqG8qfYIxOzpQ5FBBfTU8y/uOQ2ptQc1AtAGdPgSgHBQSBiTyox68i9IBA9OdqsEoG0bcE0EwEOAQqEgEsDFp/RhH/xqIoCpvUsTrwLU4tldV2o2+U+fn35rDUztXSqSQGJkUPH0CHq0uwdWB8DO7ftP8uqKo8ofnOyG4b4t1X9D5jfOK52yE0UR+Hr6ADmk0oE8gEkBaPv32Ygup/efaDNOCXbJf+79cSCsrAD0+N+nAlCTAuAEIPUBfLYgFeqUYMwD1FIF8FEAkjc3eXqTZzeBnj92yX+uBDA5qCWmJOBwIvAhB+KJOfDR46Onp0eXUaPPIQmUvjpR3pBSGIPvPymXz4b7tgSUjPZveCFfk7T3ie8DYBeuFPhPdxwtb/TpfBue7jgqKgA0b++PoJeIQCKEynO0hVg7+8/i/bX437IJKPYQoFAowLnWJpEAbuxa4U0AmAdIYjcgrQRQsEqADuPhXebKAfCDSvAeD/8MQwTW5yrg3/h8L1zObxVPPKYAN11NaqD01Qn46cp7AIUx+GfxAjw80wtTAx2wO3tEzm/UKPsje/zKlScBUQkg+LPZrCoDSoM66Iw/MfM/0SZPB/a5frNaTvwF+v7ZtdIA5LMHwJYA9CIAmgQsFAowkukKRQAmme9zAIhPMtBFAmEBb7r3IQCT/DcdUYZfM/3WGujLbFKSWv2x0um0HjIbd7dNDXQEjj7jHl8CvA389LQiKIxpJFD66gSUjneV90FUEm5a+29IWe/9nMHjL1u0WTMq+TUSWHtQdQJqCoBcrXkA14hw13VCzv6LXX8Vw991HAnASAQw3LfFWArk4MfJQRKQa9kOHDYRGEXSR1UAkuyX1IB0YOnUQAcM922BNelfBoBvA/3u7JFAUo96fBrn+3h+mxpAFcCVABTG4MHJ7vIgDUfyLorEN4FfeqyBn4BdUgB9mU06AbAhHaa2YJ8JwZpJJCBt/LHF/pUNQDT+HzqWh/HxcTh79lOxBTgWAigWy63AhUIBRkdHjZUADn5UAFKsb0oQxpUDwPs4wB1VAVCQS2rAZkgGw31bYHf2CGx8vhd2Z4/A7uwR6MtsUuU623HnEuglw6+lx6FLpEGVwPef5AEKYwCFMbj93QX4Z7FslARcnjysxHeBnX/NskWbA7E/JwOc968RgLBLT/T+YQhAMmPd3xz/PxouzynI5XKB+J+eB5iYArCVAinw8f56jzwuDKVvLSGAbyIwCcMThOnVpAJcnt9m+PV4ejH18BzwPMHHQY7g5glBHysd7wqQAFcBSAQPTnaXh6OElPlhwe8iAqsCWHsQUmsPVvf7W4Z41Oz9uZHkn1b6C7T9Brv/Hg1vNMf/Qgdg7ARQuHZFJACsBNCBH9NvrYHrPctEBYBhQC3e3wX+uEkAwY6fST+btwObSKAWMjB5eknuc7CbgO8iAf45rlAAieByfqtRrvsAnXtyHuvbQM/jfyn2x92Bd06Vf1/SNl4TAcTp/bUTfwLgD8r/qYGOav2/Iv+jJgBDEUCxWA4BJr741lgJ4PLfpgCiEIBPAlAig7i8PP0sfk8VQBgSiMM4WDkxSEQRxvtTk8IBiQS+/ySveWkfErBl8qNaau1BVfaj5T/MASBhomeWhnfwk3md4L660/o6n/1X9f4vVgCPV93wFOBcLmedAeAr/yMRQOHaFWMl4HrPMg38SAC2MGA2FIAvCZgAzz39zR3luj99DR+7EoFxen8OaEkVmMBfOt4VWQlIKgD7A25/V04I3jnVLcbmUYEe2vOjchC8/9MdRyG19mB1GhDr5efbdTW5PiGfB6Dur+4sG60OcOPjvsbSFdBTY0Rwdacq/2H8bzsHIDYCoGPBkQCGjuWNeQDp7ECbCghLAj7gl4gAgRsF9Py52/tWieB39QIkpQAksLuIQCIGG/iRNCQVQIng4ZleKB3vKicCBcD6lO6ien0FehI2iOCvyH+cCEwJQNquS6f/2MBfnipUBqvpBCFp8i/Ai5X2Y04CxCrxgT4REQAAIABJREFUfyaTiaUByIsAAIR24GtXjInAi08tEAnAdnRY1NmAPglAKSFoAvyNXSvUcyaA0+dR8k8NdGhVALo12hYOJJEHiAPsM++uDOQLpDAD73mOoHS8C6YGOsqHbKbSykyeXIrzowKfJwYR6FLyjyYAS8fNvfzasA7LgSDK+1eSdUaFwAeJkFmEZbCnRAJ4NLxR7f+31f+LRf/4PxoBVCoBpjzA1EBHqNODOYDjAL8tFDB5eh/vLsl9fi1sXwgX25vgxq4VsVYDXMAPA34fQsAeCt4+je+ZGuiAPeuWwEim7O3P97fC1N6l5WO1FraUz9cjBBAF2KG8PfkekufXwM9agF27+VynAVW9/xAADDlPDqIKgG9B1jYjoTKoeH8s/8UV/3sRgKkUaMoD3NzR7EUAEmjjVgAmApDkPQU6f4ykgGBGQCNh8MfnWpvgXGsTXO9ZJnr+JJKAYRSBLSdwe98q66apc61N5RN08ShtyRZ3igQQFwnwsCHwfda9Bqm1B8vbmEnMj9fU2oNaC7BrN594BgACGh9f3Qnwj98pAhBJgGf+v1mtgV+3FxUhoAKR4v9a5H9kAgiTB7jes0xNDvaJ3WvNAfiQgSmRR4HOrxIRSK/fPbAaLrY3KRI419oEhe0LYwe/y/uHUQLo8W/u0OcnIOgL2xfCudYmO+gR+JQAYlQBUnyvWo4xl1AhhsU95XHfD05268DHwaBc/k+06f35HgQQAHnF+wMMaeQggR+vurcPGt2ReOdUtzX+p4eAJEYAxWI1EeibB7i5o1mNDXN56CSrAKbKwP1D60Xw42P6+syry9VjBP39Q+u1HgB8nRIAJ4I4Q4GoYYAk9aWhKRfbPTx+CAKIlMlnMp96eR7X0/r+1ECHBnokg1UtA7r8R/Abrs4TgRD4//gdYLee6dQg6v0pARiJYKINHp7phZFMV7X91xH/+4I/MgFMfPGtdx4AFcDFp8zgNLULRwkDwoQCkqe3efi7B1Zb5//RK1cB1L58bpH6nDjVgO+Ve3sT+Dev8fD6NvAbCMBGAlbQcyOgltp7z/e3arIfbbhvi3YkuKYAhKsV/ET6wz9+pyoApjMDtZODDUZzAfg+lP9xxv9eBABgrgTYNgbxHADuGOSgRwuzMchXAfgqAhrHc6lv8/z0PfQxVgFMBEANJXat3t8m/fHfI4Fdur/YHgL4UuyPFQALAWhJuzCg51YJBWicjxOMRjJdAZJIrT0IUwMdqlyJMv3utZRx847k0WXvPyQSQED6812HJiKYaNPkv9T/X0v8700ApkSgaWMQDQNQAdDhoRL4fAnAB/xhQgHq0SkR0OQdB7evdLepAMkutpftes8yVZb0+T74893et0rlNwrbFxrPRDSBv7B9IexZtyQ86CMoAIkEIhsr7aF3T6f111a1DKjDPrUEIAW+YNJRYOWDRBj4//E7p/eHCXZuoIUI8L1S918t/f+xEYBPGIA5AEwQIjgRbHSa8GxUAUzGY3gb+KnZAOqrAjgJ8HskBpd9+dyigGEfBhJBYftCkQQK2xfWBnoJ/J4EEMaWLSq39/LEX2rtQcjlcnD/0HoF8I3P9wbk/9RARzD+D0EAijSo9KckQA4QDRz0YdpwxGYQoPfn2X/X/v+ZmZlQ4I9EAMViNRF49uynznLgjV0rAoNDpLMD+PTgpPoAXCQQZ9fe/UPrQ6sADnwfIvjyuUUiAXzduQQutjcp8Ju8vpbhpzJeAr0v8BMAPwI9te61ACk83XFUA//UQIdKFKbWHoRUql95f6UAPDf1qBCANu8I4C99dUI8LFR5f2GjkYkQ6PvS6XQs8/9qJgApD2AMA9qbyoM/BzoC+QEJ/Lf3rQo1JDRuBYA/k82bR43PwxKABH4EuS8JYCxPwS+RgJbo4wC2xfgm0Cft+RWgdWKYGuhQuyBRNpu8P5f/NiLgh39WJ/YMBUkAW4ClXv+JNnGjkWkGAe4QRPkfZ/tvaAIAMHcEjo+PW8MAJICLTy1QZjtDYLZzACYlEEcyDh+jl41KADYFYPL+FPxcARi9vkQAHPAu8Mft9Umcr2X0172m+gFoVh/bk/sym9TXrWoZ0Cb/0Pq/T4dfYGIPzfqzBKB0ZiBtNDIdGqoRAJkO/Ep6beztv5EIwJYH6MtsMoYB5/tbAwSAdXVqYUaE+VYBkiIB3+w7vfqGAq4cgEQEJhKQcgCBTj4G4JVt29ylvdkEPkv08bIe7uhD4ON9Op2GVKpfkQBVByj/eUefRACl40TOm+J+7ADkwCfSP7C/wEACdL/ArcF2lf33OQE4rPePTADFot4QNDo6Ko4Lv9jeBNNvrdHAf/GpBYGThOgZAr55gCQVgIkEwrbc1hIK+Mb/PjmA6z3Lgtl9G5jnKMHnQwA8q48lP0oCpeOVkWTrXoNUqj9Q9+dlPRsJaEC2gF/F/4wETB2GxlOEyWdg8i8p+R+JAKQ8AIYBEglMDXQo0FMCuLmjWQ0QQfD7qoDZUAC0JBiGCFwEETX550oCSiHAnnVLNG/f0vKMEfQr27bNvcwPQQBPdxyFqYEODfRIAuf7W8vef91rsPH5Xt3zW2r6oqktu4a4n8T/Ac8f9sDQieqU4DunymPVjOU/Qf4nSgCUBPi+gPHxccjlcsamIAQ/vaIK8DlHYLZyAAh6mxqweXife9/SYBgFQMMGsXvPAWoF/uaX6xP8mP0nnh+7/STvr8aTr3stkPij8t/HYCxd9u428MMQPDzTG/T+YU8KIlOCRzJdkM1mA+2/UvdflPJfzQRQLE5reQBTMlACP15NZwn4hAFJVAEkIsB+AKkKIHl+nzDh7oHVsGfdEjjX2qSuYWzPuiWwZ90Sd6uuw6Mj8OkQjnoGPm/l5abF/80vw0imq9rxFwH8peNd1T3+UtKPEIIo/RH4/CrZhMX7JyT/YyEAWg0wJQO556cmEYArDHCBP4lQIExY4FIHlAQ2r2kyWmphS7h+fM/YnQJ/2aLN5cfNL9cX+AXpj518EvipLVu0We0GDIC/EgJQMpCIoTqnb0g3Afylr04Eh3wgAZhIgJOB4P3DZP9nhQAAquVAqRowdCwvJwOfWqCy0FKWOnCa0ECHdYxY0grABnxJDbiUgE0VjGS6/Hfb1dCYo3n7xZ3VZho8nKMewZ9Ka808NvDT+H9l2zatKYjH/5wMJEKAibYg+G3yn/YLUPBzEpCIYKJNhRDU+4uz/2LK/uMKTQAmFYA/4CvptSIBSODHZBXmAuhA0Ru7VogkMBc5AAQ+JwEfMrDlDNBu7miukoAtC2+S9Y64XcX4qTSsbNume306o7/ewI8KoNLF5/L8uAGI7gfgCoATAYyltdeqY7roeXwWEsD2X9Lw421IADbvn6D8B4iBAHg14PDhw6IKMBHA151L1OYhTgLYMzDbVQAKbltegF4pEdjAbiKK2/tW6eO0TKD2rctzAFdAzoGveurrEfzNLzvBzxOA5/tbZfBj8w8CnocFtN1XOpTDpACu7qwmAD06C437DIj3l5J/Sch/gAgEAGCvBoyPj8OedUvEXAANA2iX2sWnFqhQgBIAbiTiSoCCNekcgOT9w5CAb48ADQlCgdwHsIaz+vj76WDO+jB/zy+B3UYEJmKwnswjkIAJ/N5kQNTDK+m1yvvT2n+cvf981UwAxaLeFGQrCfJdafTxxacWwI1dK9Q2YqoCMFfgSwBxA9+WDzCRAD4OWx24e6A8dCSdrt0ra4M2KPDx1N51r1UNk231QgCLO6Evsyk0+GshA9OBHLZwgCb+pOYiKwkQ8If1/nVBANLeAOwMlEqCF59aoDrTKAng0JCLTy2Aqb1LFQlMDXTA9Ftr1HtdKiAOIuB5AJv0NykBSRG4qgP8uZlXl5fVgAfw+WhsDnyNADjoKfipmY72niXwj2T8gG8DfTzgtxAANv+YeggmHHsNSOOQy/vXOvnHtCIRAIB9b8D4+Dhks1lrLoCSAN7j63y0OC0jYk5AAm/cKsCnEuACP1UCvglDUQ0YPLsT8Bp4+4Pgx375sJYUGSzuVHF8HJ7fhwSMp/E4SIB2/LlIIKAGiPe/nN+qZf5N3r9QKKjGn7oigGIx2BNgUgE4IRhJAAmgsH2hIgw+WBTbiflQEZPFrQJ45j9MCOAzV8DVL3D3wGo4399qBLoR8BL4K1l1o+cPY2xffi22bNFmaGl5JtDeG4UIage/BwlUvD833+5CuuNv85omL+9fLE7HlvzDFZkAAOw9AaOjo0YVcPGpBVDYvlAHf2X7qmm68I1dK7S9BHF7e1sOgIJfUgJhVICNDFzVg9v7VkFfZpMb8Kn+SljQXwU/HaZBhmSI9zZD8lCfXZu3R+vLbIL7h9ZHAn8UEihn+18E63l8jpN6tZ7/MGRAmoZGMl3K+9ti/7iTf7hqIgBXMnB0dNRYEaAKgBpVAZwEsGKAYUSSBCCpAZvkd5GASwWEIYOpgY5yydDk6fmVS/25kv1C9WLZos2hJH+YMMDk+eXDOMMRgQv8JjKg3v/R8EZoaXlGSX/f2L/uCMA0KAQrApIKwFDgYnuTRgB0iCjPCUwNdGj5gK87lyQKeFvGP6znr3XEmIkINj7fK3v7VL9+bwI+f85FFBhyRAC7ep4k+mr1+j7xf3TwyyTw8EyvvPPPhwjIlmSa+HPF/sVi/N4foEYCAKhNBdBQgBomBCUSuLFrhdZIlEQoIHUE+mb++TVsPiAqEZRP42Xg52YDuOvedqUhAW0s4tfK/SvptTA10BEb+H2z/TDRpg7hdJ7GayIBtu2XmtYRaAE/jvqiib+58P4AMRJAVBWAlQBuEllgbwDOu8MwIukcAI//qYf3UQIS6OM6IozbSKYyDddEAi4i8FECPgQhtBfHDfxQsn+ijYBePoHXSwlc3anlEXyJgD7/4GS3lviTev6TqvvzVTMBALhLgkNDp8U9ApwEpvYuVVeuAnDCEDYL0a7CJBOCpopA1Nh/Ns4GxNHmfZlNsKplwE4AYb2977Vyv2zRZujLbFLZ/STA7yIBPIZLO3HXSwUEScAGfF9SeCW9Vo36cvX8J+n9ARIgAE4CyGiHDx82lgWx3bewfSH85Y0ligS4aqBdgZgPwCGXSeYA+L1P3O/TBxA3EUiHf2KI0JfZpCsDA2DjuK5qGYCNz/fC5fxWuHtgtRW0cWb+AyTwQXkOPz9xNzIJCHF8mMdY829peaYuvD9ATAQA4FYBo6OjkE6njaEAJgUR/KgGbJuK8JCLuFVAVK9vywMkoQJcJGC6jmS6dELwIQPbfaofNj7fC32ZTTDct0WBGomIAz3pEKB0vItI/uCJu5wMvKxS9qvFYCwdkP6m036STPzRlQgBFItyLmDoWN6YEKRKAAlgau/SQFUAZwvQvQSoHpLKAZhyAlGVQFwkEGU6sWRTAx1wvr8V+jKbVA7BZiOZLtidPQI3dzTD5fzWAMhN17CePyxRqOYeTfLbwe+XF+jXdw1G8PxU+vPtvknv+LOt2AgAwE8F2BKCNNaf2rsU/vLGEjEfQBUA7i0whQI/ZstbisMSwI/ZBQq4pg7AsCSQVBgQxvvbiMDHTJ7dF/xhgG8jEJP3p+fsScdtB4/j9lACNXh/GCsfBz410KFJf2PTzyx6f4AECaBYNKsAW0KQgvwvbyyB8/2tgXwAbh+mewkwHJBCAfwaejqxr/yXZgP4hgS2MCAJ+R8F/C5C4IC/e2B1aBKwgZ+HBtL39vH+MNGmHa3lIgHu+W05ASSZqJ7/zqluBX7c7Wcq+01OTmrDPh8rAgAwzwrgKsCWEKRARyXA8wHYQORLAmFDBRfgbeGAVO+fjRxAlGsYzx8F/D45AF+VYfL+d6+lRPCbSIA+L1UHNDPU/H2z/tjwg1t9aexvqvkXi7Pj/QESJgBTRWBo6LQzIciTgxIJoOznLcVSh+CNXSu0M/F8iMAE/HrOAfheEdC+3l8CdNQwgL7f9jO4PgMm2nTwG0jApgJMSgDgRYBvVkf2/PRsP571tyX+ki778RU7AQD4dQcODZ2GzWvcKkDtC2hvgr+8sUTLB2AowJuIEOg8pkfw012IUljgC3xXLqCecwBhlIAE+LCenr/X9HP7hgF3r6XK4P97UyQSCD4fJIFaM/63Bttl8Fs6/orF5BN/dCVKAKaBIagCXL0BptZhSgKmTkIkBx8SKGxfaM0P2EIA6TWT508K/GGUgI/nl6S/j3d2EYSNsHxUQOl4F/z1bBnsCHoK/rvXKuBGAvDIB1SBr5MAz/qHVQJ3TpW7/WjWv14Sf3QlQgAAbhWAJJDJZLxDASr96Xts7cS8AkBBz69oNnBLSUFXLmC2VEASnh9JI4zcp+/Bfy8aPr5/aL26+qiAmXdXKq/PjRNBmHxAUA28qA7piBrzY8lPivttNf9icXa9P8AsEACqgGJRP0kIJdDQsTy0tDwTigBsnYS0mehie5NIAibg8w1JqCBMMb8pYWiaFsRtLsOBsErAFhZIkl4ixps7mrV/uy/4fYCP4UCAADxzAsr7k7jfF/DcaNyvzfgj7b58xn+xOPveHyBBAgCQy4KTk5MBFXD48GFng5BvspDuKaDzBZAEfswuUGcOmMBPtyXjaHJXOOAKBeh9ksCPqgh8AW+K49Hwd4VHwCPo8SopARNB/fVsGeh49SYCixLQM/9MCbDTeaMoAKz3o/QfeOMd81Zfg/R/4ghACwWuXQmGAsfykM1mQ+UDbCRg6iSkOQE+kchkNMxwlQtN+wXmAvwuQgibA3AZgp5f7x4ozzXEK6oD08818+5K+OvZlDf4AyQgJQU9S4NRwE/fg/V+Gvcbe/1Z1h8P+Lx3716SkAysRAkAwG+CMFYFwpQGXYlCSgI0aYgk8GNWnkVgIwGqBlzAx+clNTCXJJCE3dzRDDd3NMONXSucCgDJgCsACnwTAYRRAqJZSMCU9Atjm9c0yXG/I+s/F9IfV+IEAOAeIEpDgc1rmmomAaoEsJ2YJw2xRdgEehpG0FACk5C2SgEnBAn0TwIJINCpIQkg+GdeXa5AjyQw8+pymBroMAKfg99HBSD4nTkBiQQmwif9uGHSj0p/W6//XEt/XLNKALYOQU4CtRIA7R0QOwkr3twVAkj5BKomfJRAEqVAUww+V8DnBMDDAAp+PAFaAn6tZGANBSQVMFEb+HGwZ9i4f7YbfkxrVggAwN4hyKsCuVwulqQgzg9AEuA7CxHEfDQZHUzCn5M2JpmShLx6gP0H+PVz7cGjAh//DXjlhl9HPT8m/6jHN3n/WpSAszpAKgMw0ab1+Uex8/2tkFrYEoj7pZLfXDb8mNasEQCAfygwNHQa+jKbYiGBzxZU9w3wTkJKFCjtTSTgmlZEiUCaKYh2c0ezSCKUHCh46sGwakLNRgCUCDAM+8sbS+CvZ1OBqw8J1BISmJSAb7nPZjzjL4G/HuN+uuaEAHxDgUwmE0tlgCcHbTkGqgZcJGA680DafkyVgYkIXD//bCoHlPLYVk33UdhI4MauFRroOfhn3l0ZAP+skUDF+9+9loIHJ7tjA7803sun5DfvCADAr00YqwIDb7wD6XQ6VhL48rlFMLV3qfNr+ZxCOqqMTiyykcnXnUsCLcZcHeAmpbD/FlQNcZECBTw1H/Dz3wsHPxoFfxQSCFsVkEiAxvxR5T+W+zDpxyf72sBfLNaH9Mc16wQAYJ8bwPMBSAJxVAYoEWDs7/panFBESQArC1KZ0fb9pG3KVBkg2KL+u+jR6xywHLgIcPzZ6XHtklEikBQSBb+NBGpVArWUBmGiDe4fWh8AdBgiwB5/LPe5+vzrMe6na04JwGevAJJAS8szsZIAAtP36/gfOv+jlxKMps/6unNJIEzgygC9sc/PKA1PpVe+eYqqIU4cnAToxilblQR/F+f7W43gjyMXEKVJ6O61cp2fAj2K9zeB3zfpN9clP2nNCQEAmEMBEwnkcrlESCAsYZg83vn+VnV+YdjPRLDZTj5GINrUBgc+vdqATw1JACsePt2SnARwklNUEgjTG+BDBnGD35XxRwLA1vdisb7ifrrmjAAA/PIBNCmYlBIITQTtTarHQJK9tch4DmZMNuJnUvDi+Ym+n4VfjyRAz1lEw0NaOQmYdlyi8RyJKxRw5QTiUgJ0ZiAHvy8ROMHPNvnUe9xP15wTgCsfQJOChw8fhlwuF1u3YBwgxaQiVQIIhjBZ/tn4WTmpSCRAwwAfEpB6JVxKAIEv5QHwcRTw03ta45fA70sCtYC/Xpp9bGtOCQBAzgdIY8SQBOolHJAARtuP41QDcZOASwV83blETVv2DQds1ZKoKsAVCpiIgEp+17VW8Pts8qlX8APUAQEAWPoDJBI4lldKIM4SYZxGjz5XexHa6+Pn9FUCUXMClAgkZeRbEfBRApQI8F4aGsrBnhT4H4ekH191QQAA/k1ClAQwJ1CPJKAAVznE1LSfYLbBbyMBCfimMMClBOjVtzRIScC3NEhJwDY5OEwOAJt8JPC7av31nvTjq24IAMC8X0CsDFQahbBPIK624aRtrvMCroSglBMwJQZ9wwEEt6tM+NezKZjauzS0ErCdFxA2BzA10AGphS1Gz+9T66fgr/dVdwRgSgqayoM0HHhcSKAejBIAElOYMABzBL6lQd9cgFQmtCkB1+hw3zDgwclubWNPHOCvZ8+Pq64IACAcCfCcQCaTqZsKweNgvklBSgI0MRgmFDCVTH17A7gSsE0OjqIERjJdTvDzbD8F/+OQ8ZdW3REAgL0ywM8XQBLA6kAmk6m7CkE9my8J0DCg1sqAjxKQqgNICD4jyn3A/+BkN5SOd8Er6bXaxp4wnr8eN/iEWXVJAADu8qAtMZjNZus+OVgvZiMAbECiRIAKIIoSoIQQRQncPeB3ipBNBVASuDXYDpvXNFnBb8v2Pw6NPq5VtwQA4K8EpGYhTA42QoJwRPDZAns+AGN/mgNw5QNqyQnMvLtSTVFyDTV1kQAFP47upsk+n2z/kwR+gDonAIDaSaAREviBn5KAKx+ACgCBj/e+4EcV4NovgOCnh4iYSCBMMhAlvwn888Hz46p7AgCITgJIBNg52KgSuInAVwlIRODbJOTaPsxPEkKrVQFMDXSIkn++gh/gMSEAgGgkgFuJ8T83nU431EAIEvCpDPBj2m1KwJQQPN/fClN7l8LtfavUKDQEP04PrpUEcHAnen0KfvwbwTySLdtfLD6+CT9pPTYEAOBHAqZeAUoEqAYaRBAEvy8JmBqEfJUAVQP0HAFphPjdA6th+q01kQjg/qH1Ackvgd+0pZeDv1h8Mjw/rseKAADCkwDPC3A10KgUyETAycAWBlAlwKsDNhK4sWuFGkVGpwff3NGsThBC4PuoAJ4HoIk+OsTDVOaz7eorFp8sz4/rsSMAXJQEpA1EppCAE0FLyzOweU1TgwgsJEBnD/iQgK0/wHaWAJIAP0x05tXlWiLQpQRorC95fSnen4/gB3iMCYB3DLp6BaT2YZR/WCmI40CSJ8nCbB92kYDPGQLo+W/sWqFyAPgcgh/JwAR+7OijwJc29FiTffME/ACPMQEAVEmgVCqJJOAKCUxhQSM/EI4EMBeA1QA+lNR1hgAlAX6uIBICJgZNpwmj3Pfx+ij55zv4AR5zAgDQlUDYvICkBrLZbIMIGAF8tiAYBkhJQT5INAwJ0LME6aGi6PG5EsDr+f5W2LymKeD1pcYem+THGX7SMI8nFfwATwAB4OIkQPMCk5OT5pCAqAFaKWgQQZAEuBLgwLedIxCGBGg+AMHPS4M3dq0Q4/y4vP7jMMwjjvXEEACATALFoq4GJr741qoGOAlQIpjPbcV0mjCfG2g6RyAMAbgSgQj+kUyXN/DR61tLfA7J/ySDH+AJIwAAj5DAkCDkuQFKBJgoxGRhamELnGt98smAVwIQ/PjYRABhVQCCn54szI8X9wE+r+vToZ2m+v58ivel9cQRAC4fNSDlBujOQik/kM1mFRFQVfAkkIGpFZgSAEp/rgRcKgCBbwsBsC8AE4FTAx2wZ90SMbnHgU/J2hXr2yT/fAI/wBNMAAAeJOBKEloUARIBhgePc66AN/5wwEtXVxjAVQAefOKTC0Bvj4k9F/C1br4K8Gmsb/P6xeL0vJL8fD3RBAAghwQ+akDKD/CyIVcF6XQaUgtbILWwRZFBvRMCB75ECibw08c+KsAE/us9y2Ak0wV71i2B1MIWzdtLmX1bnG8EPvP6xeL8i/el9cQTAC5KAqbcgJMIHIoAiYAqg9TCFtVpWK9kwEmAA990LzUChckF7Fm3RHl62rJr8vaSx3fJfZfXn2+Sn695QwAAnmoggiKQKgf4x8uVAQ0V6okQpJHhEhlIyUCfisDF9iZN2ts8vc3bS1KfAr/h9cOteUUAuEyVgmIxvCKIQgaoDGi4gAphrkhBCgV8FQCfD3Cutax4UNJLgJfM5u15I48P8E0Z/vnu9emalwQAECSBqEQgqQL6R8vJwBYqcFKYLWKQwM89P+0DQLBToFPP7gt4WybfJPOjAL/h9c1r3hIALhsR4LhniQjoZGKXKuBk4CIEEylwckCCQLvYXiULvHcBPzAItL1J+0z8PhLAJbCHAbwk7ynoeXwfBvjFYsPr+6x5TwC4bPmBYtGsCKyqwEMZIBmYQgaRGBZ3WgkiCcNSpy/QTWCXQM8n8uDvjYIer1pyLwTwG+CXV4MA2ApDBBNffBsIDy5duqT90ZrIIAwhcKXAyYETBO1N4IbkYTL8HB+Am4DuA3atfFc514F6epO3dwG/IffDrQYBGJYPEfiqAhsZ2JKIYYjBRBKcLEyPbVeTcZCbwC7KehbTc08vgr7h8WNfDQJwLFOOwJgnqOw1oINKeZehlECUFALvNzApBhNJULKQiIM/Z3q/9H0kj849OyU47d9JEnk2Ty95+wbw410NAvBcLiIoFmVVwJWBTR1IKkFSCkgMNtVge87nNZMSwe/LgR7w7B4enpKjCfQumd8Afm2rQQAhl0QEPmTRpst5AAABr0lEQVSAMwmkUEFKJHJiUKRAwCURg80k0ErPSR4cvbhWkiNxuxS/+4D90qVLKpfCQd8AfvKrQQA1LJsqsCoDMpvARyFwUpDIIUASLLSgisL4GvPc1INzgJtA7uPdTV7eB/QN4Me7GgQQw6KzCX3JIEAIQv5AIoYwBGEiDBeQTZ/hC/IA0FkCz+Tli8UG6Gd7NQgg5uVDBmEIwaYUTMaBycEqEYn0mvSZJpBLmXqXhy8Wp7XfiQn0DeAntxoEkOAykYGNEIpFD1IwkAMliTCEIYGa3qsY3QJwCegc7MWiGfD4O2qAfnZXgwBmaXEycCkETgrF4nQAXJOTk05Axm3Sz8B/zmJxOvBv4QTY8PL1sRoEMEfLhxBMSkEiBzQEpATUsEY/jxv9WXzB3gB8/a0GAdTRouCQwgYfgrARhs/VZfR7+wK9Afj6XQ0CqPMlAUlSDGGMA9gH0BLAG0B//FeDAB7jJYHPRBQcsC4Q26yxnpzVIIDGaqx5vBoE0FiNNY9XgwAaq7Hm8WoQQGM11jxeDQJorMaax6tBAI3VWPN4NQigsRprHq8GATRWY83j9f8BXw26zxg/U0gAAAAASUVORK5CYII=" width="256" height="256"> >+</body></html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/performance/jsGCPause.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/performance/jsGCPause.html >new file mode 100644 >index 00000000000..1391a30f506 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/performance/jsGCPause.html >@@ -0,0 +1,85 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.autorun = false; >+ >+Tests.testInterval = function() { >+ document.getElementById('dtMax').textContent = "Running, please wait..."; >+ setTimeout(function() { >+ var t0 = new Date().getTime(); >+ var t = t0; >+ var dtMax = 0; >+ var frames = []; >+ var iv; >+ iv = setInterval(function() { >+ if (t > t0 + 10000) { >+ var hist = []; >+ var dtMed = 0, maxi = [0, 0]; >+ for (var i=0; i<dtMax; i++) hist[i] = 0; >+ for (var i=0; i<frames.length; i++) >+ hist[frames[i]]++; >+ for (var i=0; i<hist.length; i++) >+ if (hist[i] > maxi[1]) maxi = [i, hist[i]]; >+ dtMed = maxi[0]; >+ var dtAvg = frames.reduce(function(s,i){return s + i;})/frames.length; >+ document.getElementById('dtMax').textContent = "Longest frame: " + dtMax + " ms. Average frame: " + Math.floor(dtAvg*100)*0.01 + " ms. Median frame: " + dtMed + " ms."; >+ clearInterval(iv); >+ var c = document.getElementById('dtCanvas'); >+ c.width = frames.length; >+ c.height = dtMax; >+ var ctx = c.getContext('2d'); >+ for (var i=0; i<frames.length; i++) >+ ctx.fillRect(i,0,1,frames[i]); >+ } >+ var t1 = new Date().getTime(); >+ if (t1-t > dtMax) dtMax = t1-t; >+ frames.push(t1-t); >+ t = t1; >+ var rot = Matrix.rotate((t/400) % (2*Math.PI), [0, 1+(t%1000), 1]); >+ var trans = Matrix.translate3(0, Math.cos(t/1000)*1, Math.sin(t/1000)*3); >+ for (var i=0; i<200; i++) >+ var mat = Matrix.mul4x4(rot, trans); >+ }, 16); >+ }, 0); >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<h3>10 seconds of 60fps 200x mul4x4, frame time statistics</h3> >+<p id="dtMax"></p> >+<canvas id="dtCanvas"></canvas> >+</body></html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/performance/jsMatrixMult.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/performance/jsMatrixMult.html >new file mode 100644 >index 00000000000..bb496fc7d24 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/performance/jsMatrixMult.html >@@ -0,0 +1,77 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.autorun = false; >+Tests.message = "This might take a second or two (or ten)"; >+ >+Tests.testMatrixMultiply = function() { >+ time("testMatrixMultiply", function() { >+ var mat = Matrix.identity; >+ for (var i=0; i<1000000; i++) >+ Matrix.mul4x4(mat, mat); >+ }); >+} >+Tests.testTransformStack = function() { >+ time("testTransformStack", function() { >+ var j = 0; >+ for (var i=0; i<1000; i++) { >+ var t = new Date().getTime(); >+ var pmat = Matrix.perspective(30, 600/400, 1, 100+(t%1000)); >+ var look = Matrix.lookAt([4,-1,8], [-0.2,0+(t%1000),0], [0,1,0]); >+ var rot = Matrix.rotate((t/400) % (2*Math.PI), [0, 1+(t%1000), 1]); >+ var trans = Matrix.translate3(0, Math.cos(t/1000)*1, Math.sin(t/1000)*3); >+ var sca = Matrix.scale1(0.6+(t%1000)); >+ var vmat = Matrix.identity; >+ vmat = Matrix.mul4x4(vmat, pmat); >+ vmat = Matrix.mul4x4(vmat, look); >+ vmat = Matrix.mul4x4(vmat, trans); >+ vmat = Matrix.mul4x4(vmat, sca); >+ vmat = Matrix.mul4x4(vmat, rot); >+ j += vmat.length; >+ } >+ Tests.j = j; >+ }); >+} >+ >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<h3>1000000x JavaScript Matrix.mul4x4</h3> >+<p id="testMatrixMultiply"></p> >+<h3>1000x JavaScript transform stack</h3> >+<p id="testTransformStack"></p> >+</body></html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/performance/jsToGLOverhead.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/performance/jsToGLOverhead.html >new file mode 100644 >index 00000000000..4118204a130 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/performance/jsToGLOverhead.html >@@ -0,0 +1,67 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<!-- >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<link rel="stylesheet" type="text/css" href="../unit.css" /> >+<script type="application/javascript" src="../unit.js"></script> >+<script type="application/javascript" src="../util.js"></script> >+<script type="application/javascript"> >+ >+Tests.autorun = false; >+Tests.message = "This might take a second or two"; >+ >+Tests.testGLOverhead = function() { >+ var gl = document.getElementById("gl").getContext(GL_CONTEXT_ID); >+ var fakeGl = {getError: function(){ return 0; }}; >+ time("testGLOverhead", function() { >+ for (var i=0; i<1000000; i++) >+ gl.getError(); >+ }); >+ time("testJSOverhead", function() { >+ for (var i=0; i<1000000; i++) >+ fakeGl.getError(); >+ }); >+ time("testLoopOverhead", function() { >+ for (var i=0; i<1000000;) >+ i++; >+ }); >+} >+ >+</script> >+<style>canvas{ position:absolute; }</style> >+</head><body> >+<canvas id="gl" width="16" height="16"></canvas> >+<h3>1000000x gl.getError() (measuring JS->GL call overhead)</h3> >+<p id="testGLOverhead"></p> >+<h3>1000000x fakeGl.getError() (measuring JS->JS call overhead)</h3> >+<p id="testJSOverhead"></p> >+<h3>1000000x i++ (measuring loop overhead)</h3> >+<p id="testLoopOverhead"></p> >+</body></html> >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/unit.css b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/unit.css >new file mode 100644 >index 00000000000..0758b43bd9d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/unit.css >@@ -0,0 +1,66 @@ >+/* >+Tests for the OpenGL ES 2.0 HTML Canvas context >+ >+Copyright (C) 2009 Ilmari Heikkinen <ilmari.heikkinen@gmail.com> >+ >+Permission is hereby granted, free of charge, to any person >+obtaining a copy of this software and associated documentation >+files (the "Software"), to deal in the Software without >+restriction, including without limitation the rights to use, >+copy, modify, merge, publish, distribute, sublicense, and/or sell >+copies of the Software, and to permit persons to whom the >+Software is furnished to do so, subject to the following >+conditions: >+ >+The above copyright notice and this permission notice shall be >+included in all copies or substantial portions of the Software. >+ >+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES >+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND >+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT >+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, >+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING >+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR >+OTHER DEALINGS IN THE SOFTWARE. >+ >+*/ >+.ok { >+ color: green; >+} >+.fail { >+ color: red; >+} >+canvas { >+ display: none; >+} >+#test-status { >+ font-size: large; >+} >+ >+#test-log { >+ padding-left: 0.5em; >+ padding-right: 0.5em; >+ background: white; >+ color: black; >+} >+#test-log > div { >+ padding-bottom: 0.5em; >+} >+#test-log h2 { >+ font-size: 1em; >+ margin-bottom: 0em; >+ padding-top: 0.5em; >+} >+#test-log h3 { >+ font-size: small; >+ margin-left: 1.5em; >+ margin-bottom: 0em; >+ margin-top: 0.5em; >+} >+#test-log p { >+ margin-left: 4em; >+ font-size: small; >+ margin-top: 0em; >+ margin-bottom: 0.2em; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/unit.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/unit.js >new file mode 100644 >index 00000000000..2a034790734 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/unit.js >@@ -0,0 +1,988 @@ >+/* >+Unit testing library for the OpenGL ES 2.0 HTML Canvas context >+*/ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+/* -- plaform specific code -- */ >+ >+// WebKit >+if (window.testRunner && !window.layoutTestController) { >+ window.layoutTestController = window.testRunner; >+} >+ >+if (window.layoutTestController) { >+ layoutTestController.overridePreference("WebKitWebGLEnabled", "1"); >+ layoutTestController.dumpAsText(); >+ layoutTestController.waitUntilDone(); >+ >+ // The WebKit testing system compares console output. >+ // Because the output of the WebGL Tests is GPU dependent >+ // we turn off console messages. >+ window.console.log = function() { }; >+ window.console.error = function() { }; >+ >+ // RAF doesn't work in LayoutTests. Disable it so the tests will >+ // use setTimeout instead. >+ window.requestAnimationFrame = undefined; >+ window.webkitRequestAnimationFrame = undefined; >+} >+ >+if (window.internals) { >+ window.internals.settings.setWebGLErrorsToConsoleEnabled(false); >+} >+ >+/* -- end platform specific code --*/ >+Tests = { >+ autorun : true, >+ message : null, >+ delay : 0, >+ autoinit: true, >+ >+ startUnit : function(){ return []; }, >+ setup : function() { return arguments; }, >+ teardown : function() {}, >+ endUnit : function() {} >+} >+ >+var __testSuccess__ = true; >+var __testFailCount__ = 0; >+var __testLog__; >+var __backlog__ = []; >+ >+var getUrlOptions = (function() { >+ var _urlOptionsParsed = false; >+ var _urlOptions = {}; >+ return function() { >+ if (!_urlOptionsParsed) { >+ var s = window.location.href; >+ var q = s.indexOf("?"); >+ var e = s.indexOf("#"); >+ if (e < 0) { >+ e = s.length; >+ } >+ var query = s.substring(q + 1, e); >+ var pairs = query.split("&"); >+ for (var ii = 0; ii < pairs.length; ++ii) { >+ var keyValue = pairs[ii].split("="); >+ var key = keyValue[0]; >+ var value = decodeURIComponent(keyValue[1]); >+ _urlOptions[key] = value; >+ } >+ _urlOptionsParsed = true; >+ } >+ >+ return _urlOptions; >+ } >+})(); >+ >+if (typeof quietMode == 'undefined') { >+ var quietMode = (function() { >+ var _quietModeChecked = false; >+ var _isQuiet = false; >+ return function() { >+ if (!_quietModeChecked) { >+ _isQuiet = (getUrlOptions().quiet == 1); >+ _quietModeChecked = true; >+ } >+ return _isQuiet; >+ } >+ })(); >+} >+ >+Object.toSource = function(a, seen){ >+ if (a == null) return "null"; >+ if (typeof a == 'boolean') return a ? "true" : "false"; >+ if (typeof a == 'string') return '"' + a.replace(/"/g, '\\"') + '"'; >+ if (a instanceof HTMLElement) return a.toString(); >+ if (a.width && a.height && a.data) return "[ImageData]"; >+ if (a instanceof Array) { >+ if (!seen) seen = []; >+ var idx = seen.indexOf(a); >+ if (idx != -1) return '#'+(idx+1)+'#'; >+ seen.unshift(a); >+ var srcs = a.map(function(o){ return Object.toSource(o,seen) }); >+ var prefix = ''; >+ idx = seen.indexOf(a); >+ if (idx != -1) prefix = '#'+(idx+1)+'='; >+ return prefix + '[' + srcs.join(", ") + ']'; >+ } >+ if (typeof a == 'object') { >+ if (!seen) seen = []; >+ var idx = seen.indexOf(a); >+ if (idx != -1) return '#'+(idx+1)+'#'; >+ seen.unshift(a); >+ var members = []; >+ var name; >+ try { >+ for (var i in a) { >+ if (i.search(/^[a-zA-Z0-9]+$/) != -1) >+ name = i; >+ else >+ name = '"' + i.replace(/"/g, '\\"') + '"'; >+ var ai; >+ try { ai = a[i]; } >+ catch(e) { ai = 'null /*ERROR_ACCESSING*/'; } >+ var s = name + ':' + Object.toSource(ai, seen); >+ members.push(s); >+ } >+ } catch (e) {} >+ var prefix = ''; >+ idx = seen.indexOf(a); >+ if (idx != -1) prefix = '#'+(idx+1)+'='; >+ return prefix + '{' + members.join(", ") + '}' >+ } >+ if (typeof a == 'function') >+ return '('+a.toString().replace(/\n/g, " ").replace(/\s+/g, " ")+')'; >+ return a.toString(); >+} >+ >+function formatError(e) { >+ if (window.console) console.log(e); >+ var pathSegs = location.href.toString().split("/"); >+ var currentDoc = e.lineNumber != null ? pathSegs[pathSegs.length - 1] : null; >+ var trace = (e.filename || currentDoc) + ":" + e.lineNumber + (e.trace ? "\n"+e.trace : ""); >+ return e.message + "\n" + trace; >+} >+ >+function runTests() { >+ var h = document.getElementById('test-status'); >+ if (h == null) { >+ h = document.createElement('h1'); >+ h.id = 'test-status'; >+ document.body.appendChild(h); >+ } >+ h.textContent = ""; >+ var log = document.getElementById('test-log'); >+ if (log == null) { >+ log = document.createElement('div'); >+ log.id = 'test-log'; >+ document.body.appendChild(log); >+ } >+ while (log.childNodes.length > 0) >+ log.removeChild(log.firstChild); >+ >+ var setup_args = []; >+ >+ if (Tests.startUnit != null) { >+ __testLog__ = document.createElement('div'); >+ try { >+ setup_args = Tests.startUnit(); >+ if (__testLog__.childNodes.length > 0) >+ log.appendChild(__testLog__); >+ } catch(e) { >+ testFailed("startUnit", formatError(e)); >+ log.appendChild(__testLog__); >+ printTestStatus(); >+ return; >+ } >+ } >+ >+ var testsRun = false; >+ var allTestsSuccessful = true; >+ >+ for (var i in Tests) { >+ if (i.substring(0,4) != "test") continue; >+ __testLog__ = document.createElement('div'); >+ __testSuccess__ = true; >+ try { >+ doTestNotify (i); >+ var args = setup_args; >+ if (Tests.setup != null) >+ args = Tests.setup.apply(Tests, setup_args); >+ Tests[i].apply(Tests, args); >+ if (Tests.teardown != null) >+ Tests.teardown.apply(Tests, args); >+ } >+ catch (e) { >+ testFailed(i, e.name, formatError(e)); >+ } >+ if (__testSuccess__ == false) { >+ ++__testFailCount__; >+ } >+ var h = document.createElement('h2'); >+ h.textContent = i; >+ __testLog__.insertBefore(h, __testLog__.firstChild); >+ log.appendChild(__testLog__); >+ allTestsSuccessful = allTestsSuccessful && __testSuccess__ == true; >+ reportTestResultsToHarness(__testSuccess__, i); >+ doTestNotify (i+"--"+(__testSuccess__?"OK":"FAIL")); >+ testsRun = true; >+ } >+ >+ printTestStatus(testsRun); >+ if (Tests.endUnit != null) { >+ __testLog__ = document.createElement('div'); >+ try { >+ Tests.endUnit.apply(Tests, setup_args); >+ if (__testLog__.childNodes.length > 0) >+ log.appendChild(__testLog__); >+ } catch(e) { >+ testFailed("endUnit", e.name, formatError(e)); >+ log.appendChild(__testLog__); >+ } >+ } >+ notifyFinishedToHarness(allTestsSuccessful, "finished tests"); >+} >+ >+function doTestNotify(name) { >+ //try { >+ // var xhr = new XMLHttpRequest(); >+ // xhr.open("GET", "http://localhost:8888/"+name, true); >+ // xhr.send(null); >+ //} catch(e) {} >+} >+ >+function testFailed(assertName, name) { >+ var d = document.createElement('div'); >+ var h = document.createElement('h3'); >+ var d1 = document.createElement("span"); >+ h.appendChild(d1); >+ d1.appendChild(document.createTextNode("FAIL: ")); >+ d1.style.color = "red"; >+ h.appendChild(document.createTextNode( >+ name==null ? assertName : name + " (in " + assertName + ")")); >+ d.appendChild(h); >+ var args = [] >+ for (var i=2; i<arguments.length; i++) { >+ var a = arguments[i]; >+ var p = document.createElement('p'); >+ p.style.whiteSpace = 'pre'; >+ p.textContent = (a == null) ? "null" : >+ (typeof a == 'boolean' || typeof a == 'string') ? a : Object.toSource(a); >+ args.push(p.textContent); >+ d.appendChild(p); >+ } >+ __testLog__.appendChild(d); >+ __testSuccess__ = false; >+ doTestNotify([assertName, name].concat(args).join("--")); >+} >+ >+function testPassed(assertName, name) { >+ if (!quietMode()) { >+ var d = document.createElement('div'); >+ var h = document.createElement('h3'); >+ var d1 = document.createElement("span"); >+ h.appendChild(d1); >+ d1.appendChild(document.createTextNode("PASS: ")); >+ d1.style.color = "green"; >+ h.appendChild(document.createTextNode( >+ name==null ? assertName : name + " (in " + assertName + ")")); >+ d.appendChild(h); >+ var args = [] >+ for (var i=2; i<arguments.length; i++) { >+ var a = arguments[i]; >+ var p = document.createElement('p'); >+ p.style.whiteSpace = 'pre'; >+ p.textContent = (a == null) ? "null" : >+ (typeof a == 'boolean' || typeof a == 'string') ? a : Object.toSource(a); >+ args.push(p.textContent); >+ d.appendChild(p); >+ } >+ __testLog__.appendChild(d); >+ } >+ doTestNotify([assertName, name].concat(args).join("--")); >+} >+ >+function checkTestSuccess() { >+ return __testFailCount__ == 0; >+} >+ >+window.addEventListener('load', function(){ >+ for (var i=0; i<__backlog__.length; i++) >+ log(__backlog__[i]); >+}, false); >+ >+function log(msg) { >+ var p = document.createElement('p'); >+ var a = []; >+ for (var i=0; i<arguments.length; i++) >+ a.push(arguments[i]); >+ p.textContent = a.join(", "); >+ if (!__testLog__) { >+ if (document.body) >+ document.body.appendChild(p); >+ else >+ __backlog__.push(msg); >+ } else { >+ __testLog__.appendChild(p); >+ } >+} >+ >+function printTestStatus(testsRun) { >+ var status = document.getElementById('test-status'); >+ if (testsRun) { >+ status.className = checkTestSuccess() ? 'ok' : 'fail'; >+ status.textContent = checkTestSuccess() ? "PASS" : "FAIL"; >+ } else { >+ status.className = 'fail'; >+ status.textContent = "NO TESTS FOUND"; >+ } >+} >+ >+function assertFail(name, f) { >+ if (f == null) { f = name; name = null; } >+ var r = false; >+ try { f(); } catch(e) { r=true; } >+ if (!r) { >+ testFailed("assertFail", name, f); >+ return false; >+ } else { >+ testPassed("assertFail", name, f); >+ return true; >+ } >+} >+ >+function assertOk(name, f) { >+ if (f == null) { f = name; name = null; } >+ var r = false; >+ var err; >+ try { f(); r=true; } catch(e) { err = e; } >+ if (!r) { >+ testFailed("assertOk", name, f, err.toString()); >+ return false; >+ } else { >+ testPassed("assertOk", name, f); >+ return true; >+ } >+} >+ >+function assert(name, v) { >+ if (v == null) { v = name; name = null; } >+ if (!v) { >+ testFailed("assert", name, v); >+ return false; >+ } else { >+ testPassed("assert", name, v); >+ return true; >+ } >+} >+ >+function assertProperty(name, v, p) { >+ if (p == null) { p = v; v = name; name = p; } >+ if (v[p] == null) { >+ testFailed("assertProperty", name); >+ return false; >+ } else { >+ testPassed("assertProperty", name); >+ return true; >+ } >+} >+ >+function compare(a,b) { >+ if (typeof a == 'number' && typeof b == 'number') { >+ return a == b; >+ } else { >+ return Object.toSource(a) == Object.toSource(b); >+ } >+} >+ >+function assertEquals(name, v, p) { >+ if (p == null) { p = v; v = name; name = null; } >+ if (!compare(v, p)) { >+ testFailed("assertEquals", name, v, p); >+ return false; >+ } else { >+ testPassed("assertEquals", name, v, p); >+ return true; >+ } >+} >+ >+function assertArrayEquals(name, v, p) { >+ if (p == null) { p = v; v = name; name = null; } >+ if (!v) { >+ testFailed("assertArrayEquals: first array undefined", name, v, p); >+ return false; >+ } >+ if (!p) { >+ testFailed("assertArrayEquals: second array undefined", name, v, p); >+ return false; >+ } >+ if (v.length != p.length) { >+ testFailed("assertArrayEquals", name, v, p); >+ return false; >+ } >+ for (var ii = 0; ii < v.length; ++ii) { >+ if (v[ii] != p[ii]) { >+ testFailed("assertArrayEquals", name, v, p); >+ return false; >+ } >+ } >+ testPassed("assertArrayEquals", name, v, p); >+ return true; >+} >+ >+function assertArrayEqualsWithEpsilon(name, v, p, l) { >+ if (l == null) { l = p; p = v; v = name; name = null; } >+ if (!v) { >+ testFailed("assertArrayEqualsWithEpsilon: first array undefined", name, v, p); >+ return false; >+ } >+ if (!p) { >+ testFailed("assertArrayEqualsWithEpsilon: second array undefined", name, v, p); >+ return false; >+ } >+ if (!l) { >+ testFailed("assertArrayEqualsWithEpsilon: limit array undefined", name, v, p); >+ return false; >+ } >+ if (v.length != p.length) { >+ testFailed("assertArrayEqualsWithEpsilon", name, v, p, l); >+ return false; >+ } >+ if (v.length != l.length) { >+ testFailed("assertArrayEqualsWithEpsilon", name, v, p, l); >+ return false; >+ } >+ for (var ii = 0; ii < v.length; ++ii) { >+ if (Math.abs(v[ii]- p[ii])>l[ii]) { >+ testFailed("assertArrayEqualsWithEpsilon", name, v, p, l); >+ return false; >+ } >+ } >+ testPassed("assertArrayEqualsWithEpsilon", name, v, p, l); >+ return true; >+} >+ >+function assertNotEquals(name, v, p) { >+ if (p == null) { p = v; v = name; name = null; } >+ if (compare(v, p)) { >+ testFailed("assertNotEquals", name, v, p) >+ return false; >+ } else { >+ testPassed("assertNotEquals", name, v, p) >+ return true; >+ } >+} >+ >+function time(elementId, f) { >+ var s = document.getElementById(elementId); >+ var t0 = new Date().getTime(); >+ f(); >+ var t1 = new Date().getTime(); >+ s.textContent = 'Elapsed: '+(t1-t0)+' ms'; >+} >+ >+function randomFloat () { >+ // note that in fuzz-testing, this can used as the size of a buffer to allocate. >+ // so it shouldn't return astronomic values. The maximum value 10000000 is already quite big. >+ var fac = 1.0; >+ var r = Math.random(); >+ if (r < 0.25) >+ fac = 10; >+ else if (r < 0.4) >+ fac = 100; >+ else if (r < 0.5) >+ fac = 1000; >+ else if (r < 0.6) >+ fac = 100000; >+ else if (r < 0.7) >+ fac = 10000000; >+ else if (r < 0.8) >+ fac = NaN; >+ return -0.5*fac + Math.random() * fac; >+} >+function randomFloatFromRange(lo, hi) { >+ var r = Math.random(); >+ if (r < 0.05) >+ return lo; >+ else if (r > 0.95) >+ return hi; >+ else >+ return lo + Math.random()*(hi-lo); >+} >+function randomInt (sz) { >+ if (sz != null) >+ return Math.floor(Math.random()*sz); >+ else >+ return Math.floor(randomFloat()); >+} >+function randomIntFromRange(lo, hi) { >+ return Math.floor(randomFloatFromRange(lo, hi)); >+} >+function randomLength () { >+ var l = Math.floor(Math.random() * 256); >+ if (Math.random < 0.5) l = l / 10; >+ if (Math.random < 0.3) l = l / 10; >+ return l; >+} >+function randomSmallIntArray () { >+ var l = randomLength(); >+ var s = new Array(l); >+ for (var i=0; i<l; i++) >+ s[i] = Math.floor(Math.random() * 256)-1; >+ return s; >+} >+function randomFloatArray () { >+ var l = randomLength(); >+ var s = new Array(l); >+ for (var i=0; i<l; i++) >+ s[i] = randomFloat(); >+ return s; >+} >+function randomIntArray () { >+ var l = randomLength(); >+ var s = new Array(l); >+ for (var i=0; i<l; i++) >+ s[i] = randomFloat(); >+ return s; >+} >+function randomMixedArray () { >+ var l = randomLength(); >+ var s = new Array(l); >+ for (var i=0; i<l; i++) >+ s[i] = randomNonArray(); >+ return s; >+} >+function randomArray () { >+ var r = Math.random(); >+ if (r < 0.3) >+ return randomFloatArray(); >+ else if (r < 0.6) >+ return randomIntArray(); >+ else if (r < 0.8) >+ return randomSmallIntArray(); >+ else >+ return randomMixedArray(); >+} >+function randomString () { >+ return String.fromCharCode.apply(String, randomSmallIntArray()); >+} >+function randomGLConstant () { >+ return GLConstants[Math.floor(Math.random() * GLConstants.length)]; >+} >+ >+function randomNonArray() { >+ var r = Math.random(); >+ if (r < 0.25) { >+ return randomFloat(); >+ } else if (r < 0.6) { >+ return randomInt(); >+ } else if (r < 0.7) { >+ return (r < 0.65); >+ } else if (r < 0.87) { >+ return randomString(); >+ } else if (r < 0.98) { >+ return randomGLConstant(); >+ } else { >+ return null; >+ } >+} >+ >+function generateRandomArg(pos, count) { >+ if (pos == 0 && Math.random() < 0.5) >+ return randomGLConstant(); >+ if (pos == count-1 && Math.random() < 0.25) >+ if (Math.random() < 0.5) >+ return randomString(); >+ else >+ return randomArray(); >+ var r = Math.random(); >+ if (r < 0.25) { >+ return randomFloat(); >+ } else if (r < 0.6) { >+ return randomInt(); >+ } else if (r < 0.7) { >+ return (r < 0.65); >+ } else if (r < 0.77) { >+ return randomString(); >+ } else if (r < 0.84) { >+ return randomArray(); >+ } else if (r < 0.98) { >+ return randomGLConstant(); >+ } else { >+ return null; >+ } >+} >+ >+ >+function generateRandomArgs(count) { >+ var arr = new Array(count); >+ for (var i=0; i<count; i++) >+ arr[i] = generateRandomArg(i, count); >+ return arr; >+} >+ >+// qc (arg1gen, arg2gen, ..., predicate) >+// qc (randomString, randomInt, randomInt, function(s,i,j){ s.substring(i,j) }) >+function qc() { >+} >+ >+GLConstants = [ >+1, >+0x00000100, >+0x00000400, >+0x00004000, >+0x0000, >+0x0001, >+0x0002, >+0x0003, >+0x0004, >+0x0005, >+0x0006, >+0, >+1, >+0x0300, >+0x0301, >+0x0302, >+0x0303, >+0x0304, >+0x0305, >+0x0306, >+0x0307, >+0x0308, >+0x8006, >+0x8009, >+0x8009, >+0x883D, >+0x800A, >+0x800B, >+0x80C8, >+0x80C9, >+0x80CA, >+0x80CB, >+0x8001, >+0x8002, >+0x8003, >+0x8004, >+0x8005, >+0x8892, >+0x8893, >+0x8894, >+0x8895, >+0x88E0, >+0x88E4, >+0x88E8, >+0x8764, >+0x8765, >+0x8626, >+0x0404, >+0x0405, >+0x0408, >+0x0DE1, >+0x0B44, >+0x0BE2, >+0x0BD0, >+0x0B90, >+0x0B71, >+0x0C11, >+0x8037, >+0x809E, >+0x80A0, >+0, >+0x0500, >+0x0501, >+0x0502, >+0x0505, >+0x0900, >+0x0901, >+0x0B21, >+0x846D, >+0x846E, >+0x0B45, >+0x0B46, >+0x0B70, >+0x0B72, >+0x0B73, >+0x0B74, >+0x0B91, >+0x0B92, >+0x0B94, >+0x0B95, >+0x0B96, >+0x0B97, >+0x0B93, >+0x0B98, >+0x8800, >+0x8801, >+0x8802, >+0x8803, >+0x8CA3, >+0x8CA4, >+0x8CA5, >+0x0BA2, >+0x0C10, >+0x0C22, >+0x0C23, >+0x0CF5, >+0x0D05, >+0x0D33, >+0x0D3A, >+0x0D50, >+0x0D52, >+0x0D53, >+0x0D54, >+0x0D55, >+0x0D56, >+0x0D57, >+0x2A00, >+0x8038, >+0x8069, >+0x80A8, >+0x80A9, >+0x80AA, >+0x80AB, >+0x86A2, >+0x86A3, >+0x1100, >+0x1101, >+0x1102, >+0x8192, >+0x1400, >+0x1401, >+0x1402, >+0x1403, >+0x1404, >+0x1405, >+0x1406, >+0x140C, >+0x1902, >+0x1906, >+0x1907, >+0x1908, >+0x1909, >+0x190A, >+0x8033, >+0x8034, >+0x8363, >+0x8B30, >+0x8B31, >+0x8869, >+0x8DFB, >+0x8DFC, >+0x8B4D, >+0x8B4C, >+0x8872, >+0x8DFD, >+0x8B4F, >+0x8B80, >+0x8B82, >+0x8B83, >+0x8B85, >+0x8B86, >+0x8B87, >+0x8B89, >+0x8B8A, >+0x8B8C, >+0x8B8D, >+0x0200, >+0x0201, >+0x0202, >+0x0203, >+0x0204, >+0x0205, >+0x0206, >+0x0207, >+0x1E00, >+0x1E01, >+0x1E02, >+0x1E03, >+0x150A, >+0x8507, >+0x8508, >+0x1F00, >+0x1F01, >+0x1F02, >+0x1F03, >+0x2600, >+0x2601, >+0x2700, >+0x2701, >+0x2702, >+0x2703, >+0x2800, >+0x2801, >+0x2802, >+0x2803, >+0x1702, >+0x8513, >+0x8514, >+0x8515, >+0x8516, >+0x8517, >+0x8518, >+0x8519, >+0x851A, >+0x851C, >+0x84C0, >+0x84C1, >+0x84C2, >+0x84C3, >+0x84C4, >+0x84C5, >+0x84C6, >+0x84C7, >+0x84C8, >+0x84C9, >+0x84CA, >+0x84CB, >+0x84CC, >+0x84CD, >+0x84CE, >+0x84CF, >+0x84D0, >+0x84D1, >+0x84D2, >+0x84D3, >+0x84D4, >+0x84D5, >+0x84D6, >+0x84D7, >+0x84D8, >+0x84D9, >+0x84DA, >+0x84DB, >+0x84DC, >+0x84DD, >+0x84DE, >+0x84DF, >+0x84E0, >+0x2901, >+0x812F, >+0x8370, >+0x8B50, >+0x8B51, >+0x8B52, >+0x8B53, >+0x8B54, >+0x8B55, >+0x8B56, >+0x8B57, >+0x8B58, >+0x8B59, >+0x8B5A, >+0x8B5B, >+0x8B5C, >+0x8B5E, >+0x8B60, >+0x8622, >+0x8623, >+0x8624, >+0x8625, >+0x886A, >+0x8645, >+0x889F, >+0x8B9A, >+0x8B9B, >+0x8B81, >+0x8B84, >+0x8B88, >+0x8DFA, >+0x8DF8, >+0x8DF9, >+0x8DF0, >+0x8DF1, >+0x8DF2, >+0x8DF3, >+0x8DF4, >+0x8DF5, >+0x8D40, >+0x8D41, >+0x8056, >+0x8057, >+0x8D62, >+0x81A5, >+0x1901, >+0x8D48, >+0x8D42, >+0x8D43, >+0x8D44, >+0x8D50, >+0x8D51, >+0x8D52, >+0x8D53, >+0x8D54, >+0x8D55, >+0x8CD0, >+0x8CD1, >+0x8CD2, >+0x8CD3, >+0x8CE0, >+0x8D00, >+0x8D20, >+0, >+0x8CD5, >+0x8CD6, >+0x8CD7, >+0x8CD9, >+0x8CDD, >+0x8CA6, >+0x8CA7, >+0x84E8, >+0x0506, >+0x809D >+]; >+ >+function reportTestResultsToHarness(success, msg) { >+ if (window.parent.webglTestHarness) { >+ window.parent.webglTestHarness.reportResults(window.location.pathname, success, msg); >+ } >+} >+ >+function notifyFinishedToHarness() { >+ if (window.parent.webglTestHarness) { >+ window.parent.webglTestHarness.notifyFinished(window.location.pathname); >+ } >+} >+ >+function initTests() { >+ if (Tests.message != null) { >+ var h = document.getElementById('test-message'); >+ if (h == null) { >+ h = document.createElement('p'); >+ h.id = 'test-message'; >+ document.body.insertBefore(h, document.body.firstChild); >+ } >+ h.textContent = Tests.message; >+ } >+ if (Tests.autorun) { >+ runTests(); >+ } else { >+ var h = document.getElementById('test-run'); >+ if (h == null) { >+ h = document.createElement('input'); >+ h.type = 'submit'; >+ h.value = "Run tests"; >+ h.addEventListener('click', function(ev){ >+ runTests(); >+ ev.preventDefault(); >+ }, false); >+ h.id = 'test-run'; >+ document.body.insertBefore(h, document.body.firstChild); >+ } >+ h.textContent = Tests.message; >+ } >+ >+} >+ >+window.addEventListener('load', function(){ >+ if (Tests.autoinit) { >+ // let the browser hopefully finish updating the gl canvas surfaces if we are given a delay >+ if (Tests.delay) >+ setTimeout(initTests, Tests.delay); >+ else >+ initTests() >+ } >+}, false); >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/util.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/util.js >new file mode 100644 >index 00000000000..e1d5d638a61 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/more/util.js >@@ -0,0 +1,1286 @@ >+/* >+Utilities for the OpenGL ES 2.0 HTML Canvas context >+*/ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+function loadTexture(gl, elem, mipmaps) { >+ var tex = gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, elem); >+ if (mipmaps != false) >+ gl.generateMipmap(gl.TEXTURE_2D); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ if (mipmaps) >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_LINEAR); >+ else >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+ return tex; >+} >+ >+function getShader(gl, id) { >+ var shaderScript = document.getElementById(id); >+ if (!shaderScript) { >+ throw(new Error("No shader element with id: "+id)); >+ } >+ >+ var str = ""; >+ var k = shaderScript.firstChild; >+ while (k) { >+ if (k.nodeType == 3) >+ str += k.textContent; >+ k = k.nextSibling; >+ } >+ >+ var shader; >+ if (shaderScript.type == "x-shader/x-fragment") { >+ shader = gl.createShader(gl.FRAGMENT_SHADER); >+ } else if (shaderScript.type == "x-shader/x-vertex") { >+ shader = gl.createShader(gl.VERTEX_SHADER); >+ } else { >+ throw(new Error("Unknown shader type "+shaderScript.type)); >+ } >+ >+ gl.shaderSource(shader, str); >+ gl.compileShader(shader); >+ >+ if (gl.getShaderParameter(shader, gl.COMPILE_STATUS) != 1) { >+ var ilog = gl.getShaderInfoLog(shader); >+ gl.deleteShader(shader); >+ throw(new Error("Failed to compile shader "+shaderScript.id + ", Shader info log: " + ilog)); >+ } >+ return shader; >+} >+ >+function loadShaderArray(gl, shaders) { >+ var id = gl.createProgram(); >+ var shaderObjs = []; >+ for (var i=0; i<shaders.length; ++i) { >+ try { >+ var sh = getShader(gl, shaders[i]); >+ shaderObjs.push(sh); >+ gl.attachShader(id, sh); >+ } catch (e) { >+ var pr = {program: id, shaders: shaderObjs}; >+ deleteShader(gl, pr); >+ throw (e); >+ } >+ } >+ var prog = {program: id, shaders: shaderObjs}; >+ gl.linkProgram(id); >+ gl.validateProgram(id); >+ if (gl.getProgramParameter(id, gl.LINK_STATUS) != 1) { >+ deleteShader(gl,prog); >+ throw(new Error("Failed to link shader")); >+ } >+ if (gl.getProgramParameter(id, gl.VALIDATE_STATUS) != 1) { >+ deleteShader(gl,prog); >+ throw(new Error("Failed to validate shader")); >+ } >+ return prog; >+} >+function loadShader(gl) { >+ var sh = []; >+ for (var i=1; i<arguments.length; ++i) >+ sh.push(arguments[i]); >+ return loadShaderArray(gl, sh); >+} >+ >+function deleteShader(gl, sh) { >+ gl.useProgram(null); >+ sh.shaders.forEach(function(s){ >+ gl.detachShader(sh.program, s); >+ gl.deleteShader(s); >+ }); >+ gl.deleteProgram(sh.program); >+} >+ >+function getGLErrorAsString(ctx, err) { >+ if (err === ctx.NO_ERROR) { >+ return "NO_ERROR"; >+ } >+ for (var name in ctx) { >+ if (ctx[name] === err) { >+ return name; >+ } >+ } >+ return err.toString(); >+} >+ >+function checkError(gl, msg) { >+ var e = gl.getError(); >+ if (e != gl.NO_ERROR) { >+ log("Error " + getGLErrorAsString(gl, e) + " at " + msg); >+ } >+ return e; >+} >+ >+function throwError(gl, msg) { >+ var e = gl.getError(); >+ if (e != 0) { >+ throw(new Error("Error " + getGLErrorAsString(gl, e) + " at " + msg)); >+ } >+} >+ >+Math.cot = function(z) { return 1.0 / Math.tan(z); } >+ >+/* >+ Matrix utilities, using the OpenGL element order where >+ the last 4 elements are the translation column. >+ >+ Uses flat arrays as matrices for performance. >+ >+ Most operations have in-place variants to avoid allocating temporary matrices. >+ >+ Naming logic: >+ Matrix.method operates on a 4x4 Matrix and returns a new Matrix. >+ Matrix.method3x3 operates on a 3x3 Matrix and returns a new Matrix. Not all operations have a 3x3 version (as 3x3 is usually only used for the normal matrix: Matrix.transpose3x3(Matrix.inverseTo3x3(mat4x4))) >+ Matrix.method[3x3]InPlace(args, target) stores its result in the target matrix. >+ >+ Matrix.scale([sx, sy, sz]) -- non-uniform scale by vector >+ Matrix.scale1(s) -- uniform scale by scalar >+ Matrix.scale3(sx, sy, sz) -- non-uniform scale by scalars >+ >+ Ditto for translate. >+*/ >+Matrix = { >+ identity : [ >+ 1.0, 0.0, 0.0, 0.0, >+ 0.0, 1.0, 0.0, 0.0, >+ 0.0, 0.0, 1.0, 0.0, >+ 0.0, 0.0, 0.0, 1.0 >+ ], >+ >+ newIdentity : function() { >+ return [ >+ 1.0, 0.0, 0.0, 0.0, >+ 0.0, 1.0, 0.0, 0.0, >+ 0.0, 0.0, 1.0, 0.0, >+ 0.0, 0.0, 0.0, 1.0 >+ ]; >+ }, >+ >+ newIdentity3x3 : function() { >+ return [ >+ 1.0, 0.0, 0.0, >+ 0.0, 1.0, 0.0, >+ 0.0, 0.0, 1.0 >+ ]; >+ }, >+ >+ copyMatrix : function(src, dst) { >+ for (var i=0; i<16; i++) dst[i] = src[i]; >+ return dst; >+ }, >+ >+ to3x3 : function(m) { >+ return [ >+ m[0], m[1], m[2], >+ m[4], m[5], m[6], >+ m[8], m[9], m[10] >+ ]; >+ }, >+ >+ // orthonormal matrix inverse >+ inverseON : function(m) { >+ var n = this.transpose4x4(m); >+ var t = [m[12], m[13], m[14]]; >+ n[3] = n[7] = n[11] = 0; >+ n[12] = -Vec3.dot([n[0], n[4], n[8]], t); >+ n[13] = -Vec3.dot([n[1], n[5], n[9]], t); >+ n[14] = -Vec3.dot([n[2], n[6], n[10]], t); >+ return n; >+ }, >+ >+ inverseTo3x3 : function(m) { >+ return this.inverse4x4to3x3InPlace(m, this.newIdentity3x3()); >+ }, >+ >+ inverseTo3x3InPlace : function(m,n) { >+ var a11 = m[10]*m[5]-m[6]*m[9], >+ a21 = -m[10]*m[1]+m[2]*m[9], >+ a31 = m[6]*m[1]-m[2]*m[5], >+ a12 = -m[10]*m[4]+m[6]*m[8], >+ a22 = m[10]*m[0]-m[2]*m[8], >+ a32 = -m[6]*m[0]+m[2]*m[4], >+ a13 = m[9]*m[4]-m[5]*m[8], >+ a23 = -m[9]*m[0]+m[1]*m[8], >+ a33 = m[5]*m[0]-m[1]*m[4]; >+ var det = m[0]*(a11) + m[1]*(a12) + m[2]*(a13); >+ if (det == 0) // no inverse >+ return [1,0,0,0,1,0,0,0,1]; >+ var idet = 1 / det; >+ n[0] = idet*a11; >+ n[1] = idet*a21; >+ n[2] = idet*a31; >+ n[3] = idet*a12; >+ n[4] = idet*a22; >+ n[5] = idet*a32; >+ n[6] = idet*a13; >+ n[7] = idet*a23; >+ n[8] = idet*a33; >+ return n; >+ }, >+ >+ inverse3x3 : function(m) { >+ return this.inverse3x3InPlace(m, this.newIdentity3x3()); >+ }, >+ >+ inverse3x3InPlace : function(m,n) { >+ var a11 = m[8]*m[4]-m[5]*m[7], >+ a21 = -m[8]*m[1]+m[2]*m[7], >+ a31 = m[5]*m[1]-m[2]*m[4], >+ a12 = -m[8]*m[3]+m[5]*m[6], >+ a22 = m[8]*m[0]-m[2]*m[6], >+ a32 = -m[5]*m[0]+m[2]*m[3], >+ a13 = m[7]*m[4]-m[4]*m[8], >+ a23 = -m[7]*m[0]+m[1]*m[6], >+ a33 = m[4]*m[0]-m[1]*m[3]; >+ var det = m[0]*(a11) + m[1]*(a12) + m[2]*(a13); >+ if (det == 0) // no inverse >+ return [1,0,0,0,1,0,0,0,1]; >+ var idet = 1 / det; >+ n[0] = idet*a11; >+ n[1] = idet*a21; >+ n[2] = idet*a31; >+ n[3] = idet*a12; >+ n[4] = idet*a22; >+ n[5] = idet*a32; >+ n[6] = idet*a13; >+ n[7] = idet*a23; >+ n[8] = idet*a33; >+ return n; >+ }, >+ >+ frustum : function (left, right, bottom, top, znear, zfar) { >+ var X = 2*znear/(right-left); >+ var Y = 2*znear/(top-bottom); >+ var A = (right+left)/(right-left); >+ var B = (top+bottom)/(top-bottom); >+ var C = -(zfar+znear)/(zfar-znear); >+ var D = -2*zfar*znear/(zfar-znear); >+ >+ return [ >+ X, 0, 0, 0, >+ 0, Y, 0, 0, >+ A, B, C, -1, >+ 0, 0, D, 0 >+ ]; >+ }, >+ >+ perspective : function (fovy, aspect, znear, zfar) { >+ var ymax = znear * Math.tan(fovy * Math.PI / 360.0); >+ var ymin = -ymax; >+ var xmin = ymin * aspect; >+ var xmax = ymax * aspect; >+ >+ return this.frustum(xmin, xmax, ymin, ymax, znear, zfar); >+ }, >+ >+ mul4x4 : function (a,b) { >+ return this.mul4x4InPlace(a,b,this.newIdentity()); >+ }, >+ >+ mul4x4InPlace : function (a, b, c) { >+ c[0] = b[0] * a[0] + >+ b[0+1] * a[4] + >+ b[0+2] * a[8] + >+ b[0+3] * a[12]; >+ c[0+1] = b[0] * a[1] + >+ b[0+1] * a[5] + >+ b[0+2] * a[9] + >+ b[0+3] * a[13]; >+ c[0+2] = b[0] * a[2] + >+ b[0+1] * a[6] + >+ b[0+2] * a[10] + >+ b[0+3] * a[14]; >+ c[0+3] = b[0] * a[3] + >+ b[0+1] * a[7] + >+ b[0+2] * a[11] + >+ b[0+3] * a[15]; >+ c[4] = b[4] * a[0] + >+ b[4+1] * a[4] + >+ b[4+2] * a[8] + >+ b[4+3] * a[12]; >+ c[4+1] = b[4] * a[1] + >+ b[4+1] * a[5] + >+ b[4+2] * a[9] + >+ b[4+3] * a[13]; >+ c[4+2] = b[4] * a[2] + >+ b[4+1] * a[6] + >+ b[4+2] * a[10] + >+ b[4+3] * a[14]; >+ c[4+3] = b[4] * a[3] + >+ b[4+1] * a[7] + >+ b[4+2] * a[11] + >+ b[4+3] * a[15]; >+ c[8] = b[8] * a[0] + >+ b[8+1] * a[4] + >+ b[8+2] * a[8] + >+ b[8+3] * a[12]; >+ c[8+1] = b[8] * a[1] + >+ b[8+1] * a[5] + >+ b[8+2] * a[9] + >+ b[8+3] * a[13]; >+ c[8+2] = b[8] * a[2] + >+ b[8+1] * a[6] + >+ b[8+2] * a[10] + >+ b[8+3] * a[14]; >+ c[8+3] = b[8] * a[3] + >+ b[8+1] * a[7] + >+ b[8+2] * a[11] + >+ b[8+3] * a[15]; >+ c[12] = b[12] * a[0] + >+ b[12+1] * a[4] + >+ b[12+2] * a[8] + >+ b[12+3] * a[12]; >+ c[12+1] = b[12] * a[1] + >+ b[12+1] * a[5] + >+ b[12+2] * a[9] + >+ b[12+3] * a[13]; >+ c[12+2] = b[12] * a[2] + >+ b[12+1] * a[6] + >+ b[12+2] * a[10] + >+ b[12+3] * a[14]; >+ c[12+3] = b[12] * a[3] + >+ b[12+1] * a[7] + >+ b[12+2] * a[11] + >+ b[12+3] * a[15]; >+ return c; >+ }, >+ >+ mulv4 : function (a, v) { >+ c = new Array(4); >+ for (var i=0; i<4; ++i) { >+ var x = 0; >+ for (var k=0; k<4; ++k) >+ x += v[k] * a[k*4+i]; >+ c[i] = x; >+ } >+ return c; >+ }, >+ >+ rotate : function (angle, axis) { >+ axis = Vec3.normalize(axis); >+ var x=axis[0], y=axis[1], z=axis[2]; >+ var c = Math.cos(angle); >+ var c1 = 1-c; >+ var s = Math.sin(angle); >+ return [ >+ x*x*c1+c, y*x*c1+z*s, z*x*c1-y*s, 0, >+ x*y*c1-z*s, y*y*c1+c, y*z*c1+x*s, 0, >+ x*z*c1+y*s, y*z*c1-x*s, z*z*c1+c, 0, >+ 0,0,0,1 >+ ]; >+ }, >+ rotateInPlace : function(angle, axis, m) { >+ axis = Vec3.normalize(axis); >+ var x=axis[0], y=axis[1], z=axis[2]; >+ var c = Math.cos(angle); >+ var c1 = 1-c; >+ var s = Math.sin(angle); >+ var tmpMatrix = this.tmpMatrix; >+ var tmpMatrix2 = this.tmpMatrix2; >+ tmpMatrix[0] = x*x*c1+c; tmpMatrix[1] = y*x*c1+z*s; tmpMatrix[2] = z*x*c1-y*s; tmpMatrix[3] = 0; >+ tmpMatrix[4] = x*y*c1-z*s; tmpMatrix[5] = y*y*c1+c; tmpMatrix[6] = y*z*c1+x*s; tmpMatrix[7] = 0; >+ tmpMatrix[8] = x*z*c1+y*s; tmpMatrix[9] = y*z*c1-x*s; tmpMatrix[10] = z*z*c1+c; tmpMatrix[11] = 0; >+ tmpMatrix[12] = 0; tmpMatrix[13] = 0; tmpMatrix[14] = 0; tmpMatrix[15] = 1; >+ this.copyMatrix(m, tmpMatrix2); >+ return this.mul4x4InPlace(tmpMatrix2, tmpMatrix, m); >+ }, >+ >+ scale : function(v) { >+ return [ >+ v[0], 0, 0, 0, >+ 0, v[1], 0, 0, >+ 0, 0, v[2], 0, >+ 0, 0, 0, 1 >+ ]; >+ }, >+ scale3 : function(x,y,z) { >+ return [ >+ x, 0, 0, 0, >+ 0, y, 0, 0, >+ 0, 0, z, 0, >+ 0, 0, 0, 1 >+ ]; >+ }, >+ scale1 : function(s) { >+ return [ >+ s, 0, 0, 0, >+ 0, s, 0, 0, >+ 0, 0, s, 0, >+ 0, 0, 0, 1 >+ ]; >+ }, >+ scale3InPlace : function(x, y, z, m) { >+ var tmpMatrix = this.tmpMatrix; >+ var tmpMatrix2 = this.tmpMatrix2; >+ tmpMatrix[0] = x; tmpMatrix[1] = 0; tmpMatrix[2] = 0; tmpMatrix[3] = 0; >+ tmpMatrix[4] = 0; tmpMatrix[5] = y; tmpMatrix[6] = 0; tmpMatrix[7] = 0; >+ tmpMatrix[8] = 0; tmpMatrix[9] = 0; tmpMatrix[10] = z; tmpMatrix[11] = 0; >+ tmpMatrix[12] = 0; tmpMatrix[13] = 0; tmpMatrix[14] = 0; tmpMatrix[15] = 1; >+ this.copyMatrix(m, tmpMatrix2); >+ return this.mul4x4InPlace(tmpMatrix2, tmpMatrix, m); >+ }, >+ scale1InPlace : function(s, m) { return this.scale3InPlace(s, s, s, m); }, >+ scaleInPlace : function(s, m) { return this.scale3InPlace(s[0],s[1],s[2],m); }, >+ >+ translate3 : function(x,y,z) { >+ return [ >+ 1, 0, 0, 0, >+ 0, 1, 0, 0, >+ 0, 0, 1, 0, >+ x, y, z, 1 >+ ]; >+ }, >+ >+ translate : function(v) { >+ return this.translate3(v[0], v[1], v[2]); >+ }, >+ tmpMatrix : [0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0], >+ tmpMatrix2 : [0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0], >+ translate3InPlace : function(x,y,z,m) { >+ var tmpMatrix = this.tmpMatrix; >+ var tmpMatrix2 = this.tmpMatrix2; >+ tmpMatrix[0] = 1; tmpMatrix[1] = 0; tmpMatrix[2] = 0; tmpMatrix[3] = 0; >+ tmpMatrix[4] = 0; tmpMatrix[5] = 1; tmpMatrix[6] = 0; tmpMatrix[7] = 0; >+ tmpMatrix[8] = 0; tmpMatrix[9] = 0; tmpMatrix[10] = 1; tmpMatrix[11] = 0; >+ tmpMatrix[12] = x; tmpMatrix[13] = y; tmpMatrix[14] = z; tmpMatrix[15] = 1; >+ this.copyMatrix(m, tmpMatrix2); >+ return this.mul4x4InPlace(tmpMatrix2, tmpMatrix, m); >+ }, >+ translateInPlace : function(v,m){ return this.translate3InPlace(v[0], v[1], v[2], m); }, >+ >+ lookAt : function (eye, center, up) { >+ var z = Vec3.direction(eye, center); >+ var x = Vec3.normalizeInPlace(Vec3.cross(up, z)); >+ var y = Vec3.normalizeInPlace(Vec3.cross(z, x)); >+ >+ var m = [ >+ x[0], y[0], z[0], 0, >+ x[1], y[1], z[1], 0, >+ x[2], y[2], z[2], 0, >+ 0, 0, 0, 1 >+ ]; >+ >+ var t = [ >+ 1, 0, 0, 0, >+ 0, 1, 0, 0, >+ 0, 0, 1, 0, >+ -eye[0], -eye[1], -eye[2], 1 >+ ]; >+ >+ return this.mul4x4(m,t); >+ }, >+ >+ transpose4x4 : function(m) { >+ return [ >+ m[0], m[4], m[8], m[12], >+ m[1], m[5], m[9], m[13], >+ m[2], m[6], m[10], m[14], >+ m[3], m[7], m[11], m[15] >+ ]; >+ }, >+ >+ transpose4x4InPlace : function(m) { >+ var tmp = 0.0; >+ tmp = m[1]; m[1] = m[4]; m[4] = tmp; >+ tmp = m[2]; m[2] = m[8]; m[8] = tmp; >+ tmp = m[3]; m[3] = m[12]; m[12] = tmp; >+ tmp = m[6]; m[6] = m[9]; m[9] = tmp; >+ tmp = m[7]; m[7] = m[13]; m[13] = tmp; >+ tmp = m[11]; m[11] = m[14]; m[14] = tmp; >+ return m; >+ }, >+ >+ transpose3x3 : function(m) { >+ return [ >+ m[0], m[3], m[6], >+ m[1], m[4], m[7], >+ m[2], m[5], m[8] >+ ]; >+ }, >+ >+ transpose3x3InPlace : function(m) { >+ var tmp = 0.0; >+ tmp = m[1]; m[1] = m[3]; m[3] = tmp; >+ tmp = m[2]; m[2] = m[6]; m[6] = tmp; >+ tmp = m[5]; m[5] = m[7]; m[7] = tmp; >+ return m; >+ }, >+} >+ >+Vec3 = { >+ make : function() { return [0,0,0]; }, >+ copy : function(v) { return [v[0],v[1],v[2]]; }, >+ >+ add : function (u,v) { >+ return [u[0]+v[0], u[1]+v[1], u[2]+v[2]]; >+ }, >+ >+ sub : function (u,v) { >+ return [u[0]-v[0], u[1]-v[1], u[2]-v[2]]; >+ }, >+ >+ negate : function (u) { >+ return [-u[0], -u[1], -u[2]]; >+ }, >+ >+ direction : function (u,v) { >+ return this.normalizeInPlace(this.sub(u,v)); >+ }, >+ >+ normalizeInPlace : function(v) { >+ var imag = 1.0 / Math.sqrt(v[0]*v[0] + v[1]*v[1] + v[2]*v[2]); >+ v[0] *= imag; v[1] *= imag; v[2] *= imag; >+ return v; >+ }, >+ >+ normalize : function(v) { >+ return this.normalizeInPlace(this.copy(v)); >+ }, >+ >+ scale : function(f, v) { >+ return [f*v[0], f*v[1], f*v[2]]; >+ }, >+ >+ dot : function(u,v) { >+ return u[0]*v[0] + u[1]*v[1] + u[2]*v[2]; >+ }, >+ >+ inner : function(u,v) { >+ return [u[0]*v[0], u[1]*v[1], u[2]*v[2]]; >+ }, >+ >+ cross : function(u,v) { >+ return [ >+ u[1]*v[2] - u[2]*v[1], >+ u[2]*v[0] - u[0]*v[2], >+ u[0]*v[1] - u[1]*v[0] >+ ]; >+ } >+} >+ >+Shader = function(gl){ >+ this.gl = gl; >+ this.shaders = []; >+ this.uniformLocations = {}; >+ this.attribLocations = {}; >+ for (var i=1; i<arguments.length; i++) { >+ this.shaders.push(arguments[i]); >+ } >+} >+Shader.prototype = { >+ id : null, >+ gl : null, >+ compiled : false, >+ shader : null, >+ shaders : [], >+ >+ destroy : function() { >+ if (this.shader != null) deleteShader(this.gl, this.shader); >+ }, >+ >+ compile : function() { >+ this.shader = loadShaderArray(this.gl, this.shaders); >+ }, >+ >+ use : function() { >+ if (this.shader == null) >+ this.compile(); >+ this.gl.useProgram(this.shader.program); >+ }, >+ >+ uniform1fv : function(name, value) { >+ var loc = this.uniform(name); >+ this.gl.uniform1fv(loc, value); >+ }, >+ >+ uniform2fv : function(name, value) { >+ var loc = this.uniform(name); >+ this.gl.uniform2fv(loc, value); >+ }, >+ >+ uniform3fv : function(name, value) { >+ var loc = this.uniform(name); >+ this.gl.uniform3fv(loc, value); >+ }, >+ >+ uniform4fv : function(name, value) { >+ var loc = this.uniform(name); >+ this.gl.uniform4fv(loc, value); >+ }, >+ >+ uniform1f : function(name, value) { >+ var loc = this.uniform(name); >+ this.gl.uniform1f(loc, value); >+ }, >+ >+ uniform2f : function(name, v1,v2) { >+ var loc = this.uniform(name); >+ this.gl.uniform2f(loc, v1,v2); >+ }, >+ >+ uniform3f : function(name, v1,v2,v3) { >+ var loc = this.uniform(name); >+ this.gl.uniform3f(loc, v1,v2,v3); >+ }, >+ >+ uniform4f : function(name, v1,v2,v3,v4) { >+ var loc = this.uniform(name); >+ this.gl.uniform4f(loc, v1, v2, v3, v4); >+ }, >+ >+ uniform1iv : function(name, value) { >+ var loc = this.uniform(name); >+ this.gl.uniform1iv(loc, value); >+ }, >+ >+ uniform2iv : function(name, value) { >+ var loc = this.uniform(name); >+ this.gl.uniform2iv(loc, value); >+ }, >+ >+ uniform3iv : function(name, value) { >+ var loc = this.uniform(name); >+ this.gl.uniform3iv(loc, value); >+ }, >+ >+ uniform4iv : function(name, value) { >+ var loc = this.uniform(name); >+ this.gl.uniform4iv(loc, value); >+ }, >+ >+ uniform1i : function(name, value) { >+ var loc = this.uniform(name); >+ this.gl.uniform1i(loc, value); >+ }, >+ >+ uniform2i : function(name, v1,v2) { >+ var loc = this.uniform(name); >+ this.gl.uniform2i(loc, v1,v2); >+ }, >+ >+ uniform3i : function(name, v1,v2,v3) { >+ var loc = this.uniform(name); >+ this.gl.uniform3i(loc, v1,v2,v3); >+ }, >+ >+ uniform4i : function(name, v1,v2,v3,v4) { >+ var loc = this.uniform(name); >+ this.gl.uniform4i(loc, v1, v2, v3, v4); >+ }, >+ >+ uniformMatrix4fv : function(name, value) { >+ var loc = this.uniform(name); >+ this.gl.uniformMatrix4fv(loc, false, value); >+ }, >+ >+ uniformMatrix3fv : function(name, value) { >+ var loc = this.uniform(name); >+ this.gl.uniformMatrix3fv(loc, false, value); >+ }, >+ >+ uniformMatrix2fv : function(name, value) { >+ var loc = this.uniform(name); >+ this.gl.uniformMatrix2fv(loc, false, value); >+ }, >+ >+ attrib : function(name) { >+ if (this.attribLocations[name] == null) { >+ var loc = this.gl.getAttribLocation(this.shader.program, name); >+ this.attribLocations[name] = loc; >+ } >+ return this.attribLocations[name]; >+ }, >+ >+ uniform : function(name) { >+ if (this.uniformLocations[name] == null) { >+ var loc = this.gl.getUniformLocation(this.shader.program, name); >+ this.uniformLocations[name] = loc; >+ } >+ return this.uniformLocations[name]; >+ } >+} >+Filter = function(gl, shader) { >+ Shader.apply(this, arguments); >+} >+Filter.prototype = new Shader(); >+Filter.prototype.apply = function(init) { >+ this.use(); >+ var va = this.attrib("Vertex"); >+ var ta = this.attrib("Tex"); >+ var vbo = Quad.getCachedVBO(this.gl); >+ if (init) init(this); >+ vbo.draw(va, null, ta); >+} >+ >+ >+VBO = function(gl) { >+ this.gl = gl; >+ this.data = []; >+ this.elementsVBO = null; >+ for (var i=1; i<arguments.length; i++) { >+ if (arguments[i].elements) >+ this.elements = arguments[i]; >+ else >+ this.data.push(arguments[i]); >+ } >+} >+ >+VBO.prototype = { >+ initialized : false, >+ length : 0, >+ vbos : null, >+ type : 'TRIANGLES', >+ elementsVBO : null, >+ elements : null, >+ >+ setData : function() { >+ this.destroy(); >+ this.data = []; >+ for (var i=0; i<arguments.length; i++) { >+ if (arguments[i].elements) >+ this.elements = arguments[i]; >+ else >+ this.data.push(arguments[i]); >+ } >+ }, >+ >+ destroy : function() { >+ if (this.vbos != null) >+ for (var i=0; i<this.vbos.length; i++) >+ this.gl.deleteBuffer(this.vbos[i]); >+ if (this.elementsVBO != null) >+ this.gl.deleteBuffer(this.elementsVBO); >+ this.length = this.elementsLength = 0; >+ this.vbos = this.elementsVBO = null; >+ this.initialized = false; >+ }, >+ >+ init : function() { >+ this.destroy(); >+ var gl = this.gl; >+ >+ gl.getError(); >+ var vbos = []; >+ var length = 0; >+ for (var i=0; i<this.data.length; i++) >+ vbos.push(gl.createBuffer()); >+ if (this.elements != null) >+ this.elementsVBO = gl.createBuffer(); >+ try { >+ throwError(gl, "genBuffers"); >+ for (var i = 0; i<this.data.length; i++) { >+ var d = this.data[i]; >+ var dlen = Math.floor(d.data.length / d.size); >+ if (i == 0 || dlen < length) >+ length = dlen; >+ if (!d.floatArray) >+ d.floatArray = new Float32Array(d.data); >+ gl.bindBuffer(gl.ARRAY_BUFFER, vbos[i]); >+ throwError(gl, "bindBuffer"); >+ gl.bufferData(gl.ARRAY_BUFFER, d.floatArray, gl.STATIC_DRAW); >+ throwError(gl, "bufferData"); >+ } >+ if (this.elementsVBO != null) { >+ var d = this.elements; >+ this.elementsLength = d.data.length; >+ this.elementsType = d.type == gl.UNSIGNED_BYTE ? d.type : gl.UNSIGNED_SHORT; >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.elementsVBO); >+ throwError(gl, "bindBuffer ELEMENT_ARRAY_BUFFER"); >+ if (this.elementsType == gl.UNSIGNED_SHORT && !d.ushortArray) { >+ d.ushortArray = new Uint16Array(d.data); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, d.ushortArray, gl.STATIC_DRAW); >+ } else if (this.elementsType == gl.UNSIGNED_BYTE && !d.ubyteArray) { >+ d.ubyteArray = new Uint8Array(d.data); >+ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, d.ubyteArray, gl.STATIC_DRAW); >+ } >+ throwError(gl, "bufferData ELEMENT_ARRAY_BUFFER"); >+ } >+ } catch(e) { >+ for (var i=0; i<vbos.length; i++) >+ gl.deleteBuffer(vbos[i]); >+ throw(e); >+ } >+ >+ gl.bindBuffer(gl.ARRAY_BUFFER, null); >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); >+ >+ this.length = length; >+ this.vbos = vbos; >+ >+ this.initialized = true; >+ }, >+ >+ use : function() { >+ if (!this.initialized) this.init(); >+ var gl = this.gl; >+ for (var i=0; i<arguments.length; i++) { >+ if (arguments[i] == null || arguments[i] == -1) continue; >+ gl.bindBuffer(gl.ARRAY_BUFFER, this.vbos[i]); >+ gl.vertexAttribPointer(arguments[i], this.data[i].size, gl.FLOAT, false, 0, 0); >+ gl.enableVertexAttribArray(arguments[i]); >+ } >+ if (this.elementsVBO != null) { >+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.elementsVBO); >+ } >+ }, >+ >+ draw : function() { >+ var args = []; >+ this.use.apply(this, arguments); >+ var gl = this.gl; >+ if (this.elementsVBO != null) { >+ gl.drawElements(gl[this.type], this.elementsLength, this.elementsType, 0); >+ } else { >+ gl.drawArrays(gl[this.type], 0, this.length); >+ } >+ } >+} >+ >+FBO = function(gl, width, height, use_depth) { >+ this.gl = gl; >+ this.width = width; >+ this.height = height; >+ if (use_depth != null) >+ this.useDepth = use_depth; >+} >+FBO.prototype = { >+ initialized : false, >+ useDepth : true, >+ fbo : null, >+ rbo : null, >+ texture : null, >+ >+ destroy : function() { >+ if (this.fbo) this.gl.deleteFramebuffer(this.fbo); >+ if (this.rbo) this.gl.deleteRenderbuffer(this.rbo); >+ if (this.texture) this.gl.deleteTexture(this.texture); >+ }, >+ >+ init : function() { >+ var gl = this.gl; >+ var w = this.width, h = this.height; >+ var fbo = this.fbo != null ? this.fbo : gl.createFramebuffer(); >+ var rb; >+ >+ gl.bindFramebuffer(gl.FRAMEBUFFER, fbo); >+ checkError(gl, "FBO.init bindFramebuffer"); >+ if (this.useDepth) { >+ rb = this.rbo != null ? this.rbo : gl.createRenderbuffer(); >+ gl.bindRenderbuffer(gl.RENDERBUFFER, rb); >+ checkError(gl, "FBO.init bindRenderbuffer"); >+ gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, w, h); >+ checkError(gl, "FBO.init renderbufferStorage"); >+ } >+ >+ var tex = this.texture != null ? this.texture : gl.createTexture(); >+ gl.bindTexture(gl.TEXTURE_2D, tex); >+ try { >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, w, h, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); >+ } catch (e) { // argh, no null texture support >+ var tmp = this.getTempCanvas(w,h); >+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, tmp); >+ } >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); >+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); >+ checkError(gl, "FBO.init tex"); >+ >+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex, 0); >+ checkError(gl, "FBO.init bind tex"); >+ >+ if (this.useDepth) { >+ gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, rb); >+ checkError(gl, "FBO.init bind depth buffer"); >+ } >+ >+ var fbstat = gl.checkFramebufferStatus(gl.FRAMEBUFFER); >+ if (fbstat != gl.FRAMEBUFFER_COMPLETE) { >+ var glv; >+ for (var v in gl) { >+ try { glv = gl[v]; } catch (e) { glv = null; } >+ if (glv == fbstat) { fbstat = v; break; }} >+ log("Framebuffer status: " + fbstat); >+ } >+ checkError(gl, "FBO.init check fbo"); >+ >+ this.fbo = fbo; >+ this.rbo = rb; >+ this.texture = tex; >+ this.initialized = true; >+ }, >+ >+ getTempCanvas : function(w, h) { >+ if (!FBO.tempCanvas) { >+ FBO.tempCanvas = document.createElement('canvas'); >+ } >+ FBO.tempCanvas.width = w; >+ FBO.tempCanvas.height = h; >+ return FBO.tempCanvas; >+ }, >+ >+ use : function() { >+ if (!this.initialized) this.init(); >+ this.gl.bindFramebuffer(this.gl.FRAMEBUFFER, this.fbo); >+ } >+} >+ >+function GLError(err, msg, fileName, lineNumber) { >+ this.message = msg; >+ this.glError = err; >+} >+ >+GLError.prototype = new Error(); >+ >+function makeGLErrorWrapper(gl, fname) { >+ return (function() { >+ try { >+ var rv = gl[fname].apply(gl, arguments); >+ var err = gl.getError(); >+ if (err != gl.NO_ERROR) { >+ throw(new GLError( >+ err, "GL error "+getGLErrorAsString(gl, err)+" in "+fname)); >+ } >+ return rv; >+ } catch (e) { >+ if (e.glError !== undefined) { >+ throw e; >+ } >+ throw(new Error("Threw " + e.name + >+ " in " + fname + "\n" + >+ e.message + "\n" + >+ arguments.callee.caller)); >+ } >+ }); >+} >+ >+function wrapGLContext(gl) { >+ var wrap = {}; >+ for (var i in gl) { >+ try { >+ if (typeof gl[i] == 'function') { >+ wrap[i] = makeGLErrorWrapper(gl, i); >+ } else { >+ wrap[i] = gl[i]; >+ } >+ } catch (e) { >+ // log("wrapGLContext: Error accessing " + i); >+ } >+ } >+ wrap.getError = function(){ return gl.getError(); }; >+ return wrap; >+} >+ >+function getGLContext(canvas) { >+ return canvas.getContext(GL_CONTEXT_ID, {antialias: false}); >+} >+ >+// Assert that f generates a specific GL error. >+function assertGLError(gl, err, name, f) { >+ if (f == null) { f = name; name = null; } >+ var r = false; >+ var glErr = 0; >+ try { f(); } catch(e) { r=true; glErr = e.glError; } >+ if (glErr !== err) { >+ if (glErr === undefined) { >+ testFailed("assertGLError: UNEXPECTED EXCEPTION", name, f); >+ } else { >+ testFailed("assertGLError: expected: " + getGLErrorAsString(gl, err) + >+ " actual: " + getGLErrorAsString(gl, glErr), name, f); >+ } >+ return false; >+ } >+ return true; >+} >+ >+// Assert that f generates a GL error from a list. >+function assertGLErrorIn(gl, expectedErrorList, name, f) { >+ if (f == null) { f = name; name = null; } >+ >+ var actualError = 0; >+ try { >+ f(); >+ } catch(e) { >+ if ('glError' in e) { >+ actualError = e.glError; >+ } else { >+ testFailed("assertGLError: UNEXPCETED EXCEPTION", name, f); >+ return false; >+ } >+ } >+ >+ var expectedErrorStrList = []; >+ var expectedErrorSet = {}; >+ for (var i in expectedErrorList) { >+ var cur = expectedErrorList[i]; >+ expectedErrorSet[cur] = true; >+ expectedErrorStrList.push(getGLErrorAsString(gl, cur)); >+ } >+ var expectedErrorListStr = "[" + expectedErrorStrList.join(", ") + "]"; >+ >+ if (actualError in expectedErrorSet) { >+ return true; >+ } >+ >+ testFailed("assertGLError: expected: " + expectedErrorListStr + >+ " actual: " + getGLErrorAsString(gl, actualError), name, f); >+ return false; >+} >+ >+// Assert that f generates some GL error. Used in situations where it's >+// ambigious which of multiple possible errors will be generated. >+function assertSomeGLError(gl, name, f) { >+ if (f == null) { f = name; name = null; } >+ var r = false; >+ var glErr = 0; >+ var err = 0; >+ try { f(); } catch(e) { r=true; glErr = e.glError; } >+ if (glErr === 0) { >+ if (glErr === undefined) { >+ testFailed("assertGLError: UNEXPECTED EXCEPTION", name, f); >+ } else { >+ testFailed("assertGLError: expected: " + getGLErrorAsString(gl, err) + >+ " actual: " + getGLErrorAsString(gl, glErr), name, f); >+ } >+ return false; >+ } >+ return true; >+} >+ >+// Assert that f throws an exception but does not generate a GL error. >+function assertThrowNoGLError(gl, name, f) { >+ if (f == null) { f = name; name = null; } >+ var r = false; >+ var glErr = undefined; >+ var exp; >+ try { f(); } catch(e) { r=true; glErr = e.glError; exp = e;} >+ if (!r) { >+ testFailed( >+ "assertThrowNoGLError: should have thrown exception", name, f); >+ return false; >+ } else { >+ if (glErr !== undefined) { >+ testFailed( >+ "assertThrowNoGLError: should be no GL error but generated: " + >+ getGLErrorAsString(gl, glErr), name, f); >+ return false; >+ } >+ } >+ testPassed("assertThrowNoGLError", name, f); >+ return true; >+} >+ >+Quad = { >+ vertices : [ >+ -1,-1,0, >+ 1,-1,0, >+ -1,1,0, >+ 1,-1,0, >+ 1,1,0, >+ -1,1,0 >+ ], >+ normals : [ >+ 0,0,-1, >+ 0,0,-1, >+ 0,0,-1, >+ 0,0,-1, >+ 0,0,-1, >+ 0,0,-1 >+ ], >+ texcoords : [ >+ 0,0, >+ 1,0, >+ 0,1, >+ 1,0, >+ 1,1, >+ 0,1 >+ ], >+ indices : [0,1,2,1,5,2], >+ makeVBO : function(gl) { >+ return new VBO(gl, >+ {size:3, data: Quad.vertices}, >+ {size:3, data: Quad.normals}, >+ {size:2, data: Quad.texcoords} >+ ) >+ }, >+ cache: {}, >+ getCachedVBO : function(gl) { >+ if (!this.cache[gl]) >+ this.cache[gl] = this.makeVBO(gl); >+ return this.cache[gl]; >+ } >+} >+Cube = { >+ vertices : [ 0.5, -0.5, 0.5, // +X >+ 0.5, -0.5, -0.5, >+ 0.5, 0.5, -0.5, >+ 0.5, 0.5, 0.5, >+ >+ 0.5, 0.5, 0.5, // +Y >+ 0.5, 0.5, -0.5, >+ -0.5, 0.5, -0.5, >+ -0.5, 0.5, 0.5, >+ >+ 0.5, 0.5, 0.5, // +Z >+ -0.5, 0.5, 0.5, >+ -0.5, -0.5, 0.5, >+ 0.5, -0.5, 0.5, >+ >+ -0.5, -0.5, 0.5, // -X >+ -0.5, 0.5, 0.5, >+ -0.5, 0.5, -0.5, >+ -0.5, -0.5, -0.5, >+ >+ -0.5, -0.5, 0.5, // -Y >+ -0.5, -0.5, -0.5, >+ 0.5, -0.5, -0.5, >+ 0.5, -0.5, 0.5, >+ >+ -0.5, -0.5, -0.5, // -Z >+ -0.5, 0.5, -0.5, >+ 0.5, 0.5, -0.5, >+ 0.5, -0.5, -0.5, >+ ], >+ >+ normals : [ 1, 0, 0, >+ 1, 0, 0, >+ 1, 0, 0, >+ 1, 0, 0, >+ >+ 0, 1, 0, >+ 0, 1, 0, >+ 0, 1, 0, >+ 0, 1, 0, >+ >+ 0, 0, 1, >+ 0, 0, 1, >+ 0, 0, 1, >+ 0, 0, 1, >+ >+ -1, 0, 0, >+ -1, 0, 0, >+ -1, 0, 0, >+ -1, 0, 0, >+ >+ 0,-1, 0, >+ 0,-1, 0, >+ 0,-1, 0, >+ 0,-1, 0, >+ >+ 0, 0,-1, >+ 0, 0,-1, >+ 0, 0,-1, >+ 0, 0,-1 >+ ], >+ >+ indices : [], >+ create : function(){ >+ for (var i = 0; i < 6; i++) { >+ Cube.indices.push(i*4 + 0); >+ Cube.indices.push(i*4 + 1); >+ Cube.indices.push(i*4 + 3); >+ Cube.indices.push(i*4 + 1); >+ Cube.indices.push(i*4 + 2); >+ Cube.indices.push(i*4 + 3); >+ } >+ }, >+ >+ makeVBO : function(gl) { >+ return new VBO(gl, >+ {size:3, data: Cube.vertices}, >+ {size:3, data: Cube.normals}, >+ {elements: true, data: Cube.indices} >+ ) >+ }, >+ cache : {}, >+ getCachedVBO : function(gl) { >+ if (!this.cache[gl]) >+ this.cache[gl] = this.makeVBO(gl); >+ return this.cache[gl]; >+ } >+} >+Cube.create(); >+ >+Sphere = { >+ vertices : [], >+ normals : [], >+ indices : [], >+ create : function(){ >+ var r = 0.75; >+ function vert(theta, phi) >+ { >+ var r = 0.75; >+ var x, y, z, nx, ny, nz; >+ >+ nx = Math.sin(theta) * Math.cos(phi); >+ ny = Math.sin(phi); >+ nz = Math.cos(theta) * Math.cos(phi); >+ Sphere.normals.push(nx); >+ Sphere.normals.push(ny); >+ Sphere.normals.push(nz); >+ >+ x = r * Math.sin(theta) * Math.cos(phi); >+ y = r * Math.sin(phi); >+ z = r * Math.cos(theta) * Math.cos(phi); >+ Sphere.vertices.push(x); >+ Sphere.vertices.push(y); >+ Sphere.vertices.push(z); >+ } >+ for (var phi = -Math.PI/2; phi < Math.PI/2; phi += Math.PI/20) { >+ var phi2 = phi + Math.PI/20; >+ for (var theta = -Math.PI/2; theta <= Math.PI/2; theta += Math.PI/20) { >+ vert(theta, phi); >+ vert(theta, phi2); >+ } >+ } >+ } >+} >+ >+Sphere.create(); >+ >+initGL_CONTEXT_ID = function(){ >+ var c = document.createElement('canvas'); >+ var contextNames = ['webgl', 'experimental-webgl']; >+ GL_CONTEXT_ID = null; >+ for (var i=0; i<contextNames.length; i++) { >+ try { >+ if (c.getContext(contextNames[i])) { >+ GL_CONTEXT_ID = contextNames[i]; >+ break; >+ } >+ } catch (e) { >+ } >+ } >+ if (!GL_CONTEXT_ID) { >+ log("No WebGL context found. Unable to run tests."); >+ } >+} >+ >+initGL_CONTEXT_ID(); >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/00_test_list.txt >new file mode 100644 >index 00000000000..b925d462605 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/00_test_list.txt >@@ -0,0 +1,11 @@ >+context-attribute-preserve-drawing-buffer.html >+context-creation.html >+context-creation-worker.html >+context-lost.html >+context-lost-worker.html >+context-lost-restored.html >+context-lost-restored-worker.html >+methods.html >+methods-worker.html >+offscreencanvas-resize.html >+--min-version 1.0.4 offscreencanvas-transfer-image-bitmap.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-attribute-preserve-drawing-buffer.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-attribute-preserve-drawing-buffer.html >new file mode 100644 >index 00000000000..cc7fee8e9bc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-attribute-preserve-drawing-buffer.html >@@ -0,0 +1,76 @@ >+<!-- >+ >+/* >+** Copyright (c) 2017 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>OffscreenCanavs context attribute preserveDrawingBuffer</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/canvas-tests-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description("This test checks whether OffscreenCanvas webgl context honors the preserveDrawingBuffer flag."); >+ >+function getPixelsFromOffscreenWebgl(preserveFlag) { >+ var canvas = document.createElement("canvas"); >+ var offscreenCanvas = transferredOffscreenCanvasCreation(canvas, 10, 10); >+ var gl = offscreenCanvas.getContext("webgl", {preserveDrawingBuffer: preserveFlag}); >+ >+ // Draw some color on gl and commit >+ gl.clearColor(1, 0, 1, 1); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ gl.commit(); >+ >+ var pixels = new Uint8Array(4); >+ gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, pixels); >+ return pixels; >+} >+ >+if (!window.OffscreenCanvas) { >+ testPassed("No OffscreenCanvas support"); >+} else { >+ // Test if OffscreenCanvas.webgl retains context if preserveDrawingBuffer is true. >+ var pixelsPreserve = getPixelsFromOffscreenWebgl(true); >+ shouldBe(pixelsPreserve, [255,0,255,255]); >+ >+ // Test if OffscreenCanvas.webgl loses context if presereDrawingbuffer is false. >+ var pixelsNoPreserve = getPixelsFromOffscreenWebgl(false); >+ shouldBe(pixelsNoPreserve, [0,0,0,0]); >+} >+ >+var successfullyParsed = true; >+ >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-creation-worker.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-creation-worker.html >new file mode 100644 >index 00000000000..3ce19c0adc5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-creation-worker.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Context Creation Test for OffscreenCanvas in a worker</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+description("This test ensures that the WebGL context can be created on an OffscreenCanvas."); >+ >+if (!window.OffscreenCanvas) { >+ testPassed("No OffscreenCanvas support"); >+ finishTest(); >+} else { >+ var worker = new Worker('context-creation-worker.js'); >+ worker.postMessage("Start worker"); >+ worker.onmessage = function(e) { >+ if (e.data == "Test passed") { >+ testPassed("All tests have passed"); >+ } else { >+ testFailed("Some tests failed"); >+ } >+ finishTest(); >+ } >+} >+ >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-creation-worker.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-creation-worker.js >new file mode 100644 >index 00000000000..0a1c3cb0308 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-creation-worker.js >@@ -0,0 +1,30 @@ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+importScripts("../../js/tests/canvas-tests-utils.js"); >+self.onmessage = function(e) { >+ if (contextCreation('webgl')) >+ self.postMessage("Test passed"); >+ else >+ self.postMessage("Test failed"); >+}; >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-creation.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-creation.html >new file mode 100644 >index 00000000000..a2c96003335 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-creation.html >@@ -0,0 +1,58 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Context Creation Test for OffscreenCanvas</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/canvas-tests-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description("This test ensures that the WebGL context can be created on an OffscreenCanvas."); >+ >+if (!window.OffscreenCanvas) { >+ testPassed("No OffscreenCanvas support"); >+} else { >+ if (contextCreation('webgl')) { >+ testPassed("WebGL context created correctly."); >+ } else { >+ testFailed("WebGL context creation failed"); >+ } >+} >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-lost-restored-worker.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-lost-restored-worker.html >new file mode 100644 >index 00000000000..e4bfa1d46b3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-lost-restored-worker.html >@@ -0,0 +1,64 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script> >+function init() >+{ >+ description("Tests behavior under a restored context for OffscreenCanvas in a worker."); >+ >+ if (!window.OffscreenCanvas) { >+ testPassed("No OffscreenCanvas support"); >+ finishTest(); >+ return; >+ } >+ >+ var worker = new Worker('context-lost-restored-worker.js'); >+ worker.postMessage("Start worker"); >+ worker.onmessage = function(e) { >+ if (e.data == "Test passed") { >+ testPassed("All tests have passed"); >+ } else { >+ testFailed("Some test failed"); >+ } >+ finishTest(); >+ return; >+ } >+} >+ >+</script> >+</head> >+<body onload="init()"> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-lost-restored-worker.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-lost-restored-worker.js >new file mode 100644 >index 00000000000..9c722673d12 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-lost-restored-worker.js >@@ -0,0 +1,68 @@ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+importScripts("../../js/tests/canvas-tests-utils.js"); >+self.onmessage = function(e) { >+ if (!setupTest()) >+ self.postMessage("Test failed"); >+ >+ canvas.addEventListener("webglcontextlost", function(e) { >+ if (!testLostContext(e)) >+ self.postMessage("Test failed"); >+ // restore the context after this event has exited. >+ setTimeout(function() { >+ // we didn't call prevent default so we should not be able to restore the context >+ if (!compareGLError(gl.INVALID_OPERATION, "WEBGL_lose_context.restoreContext()")) >+ self.postMessage("Test failed"); >+ testLosingAndRestoringContext().then(function() { >+ self.postMessage("Test passed"); >+ }, function() { >+ self.postMessage("Test failed"); >+ }); >+ }, 0); >+ }); >+ canvas.addEventListener("webglcontextrestored", function() { >+ self.postMessage("Test failed"); >+ }); >+ allowRestore = false; >+ contextLostEventFired = false; >+ contextRestoredEventFired = false; >+ >+ if (!testOriginalContext()) >+ self.postMessage("Test failed"); >+ WEBGL_lose_context.loseContext(); >+ // The context should be lost immediately. >+ if (!gl.isContextLost()) >+ self.postMessage("Test failed"); >+ if (gl.getError() != gl.CONTEXT_LOST_WEBGL) >+ self.postMessage("Test failed"); >+ if (gl.getError() != gl.NO_ERROR) >+ self.postMessage("Test failed"); >+ // gl methods should be no-ops >+ if (!compareGLError(gl.NO_ERROR, "gl.blendFunc(gl.TEXTURE_2D, gl.TEXTURE_CUBE_MAP)")) >+ self.postMessage("Test failed"); >+ // but the event should not have been fired. >+ if (contextLostEventFired) >+ self.postMessage("Test failed"); >+} >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-lost-restored.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-lost-restored.html >new file mode 100644 >index 00000000000..0157e0021ea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-lost-restored.html >@@ -0,0 +1,109 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/canvas-tests-utils.js"></script> >+<script> >+ >+function init() >+{ >+ description("Tests behavior under a restored context for OffscreenCanvas."); >+ >+ if (!window.OffscreenCanvas) { >+ testPassed("No OffscreenCanvas support"); >+ finishTest(); >+ return; >+ } >+ >+ if (!setupTest()) { >+ testFailed("Cannot initialize test"); >+ finishTest(); >+ return; >+ } >+ >+ canvas.addEventListener("webglcontextlost", function(e) { >+ if (!testLostContext(e)) { >+ testFailed("Some test failed"); >+ finishTest(); >+ return; >+ } >+ // restore the context after this event has exited. >+ setTimeout(function() { >+ // we didn't call prevent default so we should not be able to restore the context >+ if (!compareGLError(gl.INVALID_OPERATION, "WEBGL_lose_context.restoreContext()")) { >+ testFailed("Some test failed"); >+ finishTest(); >+ return; >+ } >+ testLosingAndRestoringContext().then(function() { >+ testPassed("Test passed"); >+ finishTest(); >+ return; >+ }, function() { >+ testFailed("Some test failed"); >+ finishTest(); >+ return; >+ }); >+ }, 0); >+ }); >+ canvas.addEventListener("webglcontextrestored", function() { >+ testFailed("Some test failed"); >+ finishTest(); >+ return; >+ }); >+ allowRestore = false; >+ contextLostEventFired = false; >+ contextRestoredEventFired = false; >+ >+ if (!testOriginalContext()) { >+ testFailed("Some test failed"); >+ finishTest(); >+ return; >+ } >+ WEBGL_lose_context.loseContext(); >+ // The context should be lost immediately. >+ shouldBeTrue("gl.isContextLost()"); >+ shouldBe("gl.getError()", "gl.CONTEXT_LOST_WEBGL"); >+ shouldBe("gl.getError()", "gl.NO_ERROR"); >+ // gl methods should be no-ops >+ shouldBeTrue(compareGLError(gl.NO_ERROR, "gl.blendFunc(gl.TEXTURE_2D, gl.TEXTURE_CUBE_MAP)")); >+ // but the event should not have been fired. >+ shouldBeFalse("contextLostEventFired"); >+} >+ >+</script> >+</head> >+<body onload="init()"> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-lost-worker.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-lost-worker.html >new file mode 100644 >index 00000000000..8d02e01bdda >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-lost-worker.html >@@ -0,0 +1,64 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script> >+function init() >+{ >+ description("Tests behavior under a lost context for OffscreenCanvas in a worker"); >+ >+ if (!window.OffscreenCanvas) { >+ testPassed("No OffscreenCanvas support"); >+ finishTest(); >+ return; >+ } >+ >+ var worker = new Worker('context-lost-worker.js'); >+ worker.postMessage("Start worker"); >+ worker.onmessage = function(e) { >+ if (e.data == "Test passed") { >+ testPassed("All tests have passed"); >+ } else { >+ testFailed("Some tests failed"); >+ } >+ finishTest(); >+ return; >+ } >+} >+ >+</script> >+</head> >+<body onload="init()"> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-lost-worker.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-lost-worker.js >new file mode 100644 >index 00000000000..ba94b935859 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-lost-worker.js >@@ -0,0 +1,52 @@ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+importScripts("../../js/tests/canvas-tests-utils.js"); >+self.onmessage = function(e) { >+ canvas = new OffscreenCanvas(10, 10); >+ gl = canvas.getContext('webgl'); >+ >+ // call testValidContext() before checking for the extension, because this is where we check >+ // for the isContextLost() method, which we want to do regardless of the extension's presence. >+ if (!testValidContext()) >+ self.postMessage("Test failed"); >+ >+ extension = gl.getExtension("WEBGL_lose_context"); >+ // need an extension that exposes new API methods. >+ OES_vertex_array_object = gl.getExtension("OES_vertex_array_object"); >+ if (extension == null || OES_vertex_array_object == null) >+ self.postMessage("Test failed"); >+ >+ // We need to initialize |uniformLocation| before losing context. >+ // Otherwise gl.getUniform() when context is lost will throw. >+ uniformLocation = gl.getUniformLocation(program, "tex"); >+ extension.loseContext(); >+ >+ canvas.addEventListener("webglcontextlost", function() { >+ if (testLostContextWithoutRestore()) >+ self.postMessage("Test passed"); >+ else >+ self.postMessage("Test failed"); >+ }, false); >+} >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-lost.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-lost.html >new file mode 100644 >index 00000000000..77e75fb6db7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/context-lost.html >@@ -0,0 +1,90 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/canvas-tests-utils.js"></script> >+<script> >+function init() >+{ >+ description("Tests behavior under a lost context for OffscreenCanvas"); >+ >+ if (!window.OffscreenCanvas) { >+ testPassed("No OffscreenCanvas support"); >+ finishTest(); >+ return; >+ } >+ >+ canvas = new OffscreenCanvas(10, 10); >+ gl = canvas.getContext('webgl'); >+ >+ // call testValidContext() before checking for the extension, because this is where we check >+ // for the isContextLost() method, which we want to do regardless of the extension's presence. >+ if (!testValidContext()) { >+ testFailed("Some tests failed"); >+ finishTest(); >+ return; >+ } >+ >+ extension = gl.getExtension("WEBGL_lose_context"); >+ // need an extension that exposes new API methods. >+ OES_vertex_array_object = gl.getExtension("OES_vertex_array_object"); >+ if (extension == null || OES_vertex_array_object == null) { >+ testFailed("Some tests failed"); >+ finishTest(); >+ return; >+ } >+ >+ // We need to initialize |uniformLocation| before losing context. >+ // Otherwise gl.getUniform() when context is lost will throw. >+ uniformLocation = gl.getUniformLocation(program, "tex"); >+ extension.loseContext(); >+ >+ canvas.addEventListener("webglcontextlost", function() { >+ if (testLostContextWithoutRestore()) { >+ testPassed("All tests passed"); >+ finishTest(); >+ return; >+ } else { >+ testFailed("Some tests failed"); >+ finishTest(); >+ return; >+ } >+ }, false); >+} >+ >+</script> >+</head> >+<body onload="init()"> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/methods-worker.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/methods-worker.html >new file mode 100644 >index 00000000000..afe5f362c60 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/methods-worker.html >@@ -0,0 +1,60 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Methods Test for OffscreenCanvas in a worker</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+description("This test ensures that the WebGL context created for an OffscreenCanvas has all the methods in the specification."); >+ >+if (!window.OffscreenCanvas) { >+ testPassed("No OffscreenCanvas support"); >+ finishTest(); >+} else { >+ var worker = new Worker("methods-worker.js"); >+ worker.postMessage("Start worker"); >+ worker.onmessage = function(e) { >+ if (e.data == "Test passed") { >+ testPassed("All tests have passed"); >+ } else { >+ testFailed("Some tests failed"); >+ } >+ finishTest(); >+ } >+} >+ >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/methods-worker.js b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/methods-worker.js >new file mode 100644 >index 00000000000..c7d898f5b78 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/methods-worker.js >@@ -0,0 +1,30 @@ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+importScripts("../../js/tests/canvas-tests-utils.js"); >+self.onmessage = function(e) { >+ if (testAPIs('webgl')) >+ self.postMessage("Test passed"); >+ else >+ self.postMessage("Test failed"); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/methods.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/methods.html >new file mode 100644 >index 00000000000..5717592f9c7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/methods.html >@@ -0,0 +1,57 @@ >+<!-- >+ >+/* >+** Copyright (c) 2016 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL Methods Test for OffscreenCanvas</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/canvas-tests-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+description("This test ensures that the WebGL context created for an OffscreenCanvas has all the methods in the specification."); >+ >+if (!window.OffscreenCanvas) { >+ testPassed("No OffscreenCanvas support"); >+} else { >+ if (testAPIs('webgl')) { >+ testPassed("All WebGL methods found"); >+ } else { >+ testFailed("Some WebGL methods not found"); >+ } >+} >+ >+var successfullyParsed = true; >+</script> >+<script src="../../js/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/offscreencanvas-resize.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/offscreencanvas-resize.html >new file mode 100644 >index 00000000000..d591d3f10fe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/offscreencanvas-resize.html >@@ -0,0 +1,111 @@ >+<!-- >+ >+/* >+** Copyright (c) 2017 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Resizing Test for OffscreenCanvas</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/canvas-tests-utils.js"></script> >+</head> >+<body> >+<div id="description"></div> >+<div id="console"></div> >+<script> >+"use strict"; >+description("This test ensures that the OffscreenCanvas context returns the correct image size after resizing."); >+ >+function testResizeOnNewOffscreenCanvas() { >+ var canvas = new OffscreenCanvas(10, 20); >+ canvas.getContext("webgl"); >+ canvas.width = 30; >+ canvas.height = 40; >+ assertWidthAndHeight(canvas, "canvas", 30, 40); >+ var imagebitmap = canvas.transferToImageBitmap(); >+ assertWidthAndHeight(imagebitmap, "imagebitmap", 30, 40); >+} >+ >+function testResizeOnTransferredOffscreenCanvas() { >+ var placeholder = document.createElement("canvas"); >+ var offscreencanvas = transferredOffscreenCanvasCreation(placeholder, 10, 20); >+ var ctx = offscreencanvas.getContext("webgl"); >+ >+ // Verify that setting the size of an OffscreenCanvas that has a placeholder works. >+ offscreencanvas.width = 30; >+ offscreencanvas.height = 40; >+ assertWidthAndHeight(offscreencanvas, "resized offscreencanvas", 30, 40); >+ var imagebitmap = offscreencanvas.transferToImageBitmap(); >+ assertWidthAndHeight(imagebitmap, "imagebitmap transferred from resized offscreencanvas" , 30, 40); >+ >+ // Verify that setting the size of an OffscreenCanvas does not directly update the size of its placeholder canvas. >+ assertWidthAndHeight(placeholder, "placeholder canvas", 10, 20); >+ >+ var asyncStepsCompleted = 0; >+ ctx.commit(); >+ createImageBitmap(placeholder).then(image => { >+ // Verify that the placeholder was not updated synchronously. >+ assertWidthAndHeight(image, "imagebitmap from placeholder canvas", 10, 20); >+ asyncStepsCompleted++; >+ if (asyncStepsCompleted == 2) { >+ finishTest(); >+ } >+ }); >+ >+ // Set timeout acts as a sync barrier to allow commit to propagate >+ setTimeout(function() { >+ // Verify that commit() asynchronously updates the size of its placeholder canvas. >+ assertWidthAndHeight(placeholder, "placeholder canvas", 30, 40); >+ >+ // Verify that width/height attributes are not settable >+ shouldThrow("placeholder.width = 50"); >+ shouldThrow("placeholder.height = 60"); >+ >+ assertWidthAndHeight(placeholder, "placeholder canvas after size reset", 30, 40); >+ >+ createImageBitmap(placeholder).then(image => { >+ // Verify that an image grabbed from the placeholder has the correct dimensions >+ assertWidthAndHeight(image, "imagebitmap from placeholder canvas", 30, 40); >+ asyncStepsCompleted++; >+ if (asyncStepsCompleted == 2) { >+ finishTest(); >+ } >+ }); >+ }, 0); >+} >+ >+if (!window.OffscreenCanvas) { >+ testPassed("No OffscreenCanvas support"); >+ finishTest(); >+} else { >+ testResizeOnNewOffscreenCanvas(); >+ testResizeOnTransferredOffscreenCanvas(); >+} >+</script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/offscreencanvas-transfer-image-bitmap.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/offscreencanvas-transfer-image-bitmap.html >new file mode 100644 >index 00000000000..2970ff54fb0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/offscreencanvas/offscreencanvas-transfer-image-bitmap.html >@@ -0,0 +1,71 @@ >+<!-- >+ >+/* >+** Copyright (c) 2017 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Test for OffscreenCanvas TransferToImageBitmap</title> >+<link rel="stylesheet" href="../../resources/js-test-style.css"/> >+<script src="../../js/js-test-pre.js"></script> >+<script src="../../js/webgl-test-utils.js"></script> >+<script src="../../js/tests/tex-image-and-sub-image-utils.js"></script> >+<script src="../../js/tests/offscreencanvas-transfer-image-bitmap.js"></script> >+</head> >+<body> >+ <div id="description"></div> >+ <div id="console"></div> >+ <script id='myWorker' type='text/worker'> >+ self.onmessage = function(e) { >+ var canvas = new OffscreenCanvas(128, 128); >+ var gl = canvas.getContext("webgl"); >+ gl.clearColor(1.0, 1.0, 0.0, 1.0); >+ gl.clear(gl.COLOR_BUFFER_BIT); >+ var image = canvas.transferToImageBitmap(); >+ >+ self.postMessage({ bitmap: image }, >+ [ image ]); >+ }; >+ </script> >+ <script> >+ "use strict"; >+ description("This test ensures that the transferToImageBitmap function of OffscreenCanvas webgl context is functional."); >+ if (!window.OffscreenCanvas) { >+ testPassed("No OffscreenCanvas support"); >+ finishTest(); >+ } else { >+ var blob = new Blob([document.getElementById('myWorker').textContent]); >+ var worker = new Worker(URL.createObjectURL(blob)); >+ >+ worker.onmessage = function(msg) { >+ testTransferToImageBitmap("webgl", msg.data.bitmap); >+ finishTest(); >+ } >+ worker.postMessage("Start Worker"); >+ } >+ </script> >+</body> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/00_test_list.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/00_test_list.txt >new file mode 100644 >index 00000000000..4b4237c9fb9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/00_test_list.txt >@@ -0,0 +1,2 @@ >+mustpass.run.txt >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_001_to_006.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_001_to_006.html >new file mode 100644 >index 00000000000..228da0cf6c6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_001_to_006.html >@@ -0,0 +1,129 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: abs_001_to_006.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "abs_float_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "abs_float_frag_xvary.frag" >+ }, >+ "name": "abs_float_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "abs_vec2_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "abs_vec2_frag_xvary.frag" >+ }, >+ "name": "abs_vec2_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "abs_vec3_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "abs_vec3_frag_xvary.frag" >+ }, >+ "name": "abs_vec3_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "abs_float_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "abs_float_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "abs_float_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "abs_vec2_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "abs_vec2_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "abs_vec2_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "abs_vec3_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "abs_vec3_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "abs_vec3_vert_xvary.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_float_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_float_frag_xvary.frag >new file mode 100644 >index 00000000000..6bea689383e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_float_frag_xvary.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = 2.0 * (color.r - 0.5); >+ gl_FragColor = vec4(abs(c), 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_float_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_float_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..af41608172b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_float_frag_xvary_ref.frag >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = 2.0 * (color.r - 0.5); >+ if(c < 0.0) c *= -1.0; >+ >+ gl_FragColor = vec4(c, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_float_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_float_vert_xvary.vert >new file mode 100644 >index 00000000000..ab995eeb539 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_float_vert_xvary.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = 2.0 * (gtf_Color.r - 0.5); >+ color = vec4(abs(c), 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_float_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_float_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..b6cd22e5060 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_float_vert_xvary_ref.vert >@@ -0,0 +1,38 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = 2.0 * (gtf_Color.r - 0.5); >+ if(c < 0.0) c *= -1.0; >+ >+ color = vec4(c, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec2_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec2_frag_xvary.frag >new file mode 100644 >index 00000000000..5dd0df27b0b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec2_frag_xvary.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = 2.0 * (color.rg - 0.5); >+ gl_FragColor = vec4(abs(c), 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec2_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec2_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..043273bca43 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec2_frag_xvary_ref.frag >@@ -0,0 +1,38 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = 2.0 * (color.rg - 0.5); >+ if((c[0] < 0.0)) c[0] *= -1.0; >+ if((c[1] < 0.0)) c[1] *= -1.0; >+ >+ gl_FragColor = vec4(c, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec2_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec2_vert_xvary.vert >new file mode 100644 >index 00000000000..391b243348b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec2_vert_xvary.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = 2.0 * (gtf_Color.rg - 0.5); >+ color = vec4(abs(c), 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec2_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec2_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..0e0cf0076eb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec2_vert_xvary_ref.vert >@@ -0,0 +1,39 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = 2.0 * (gtf_Color.rg - 0.5); >+ if((c[0] < 0.0)) c[0] *= -1.0; >+ if((c[1] < 0.0)) c[1] *= -1.0; >+ >+ color = vec4(c, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec3_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec3_frag_xvary.frag >new file mode 100644 >index 00000000000..3c61c301c94 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec3_frag_xvary.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = 2.0 * (color.rgb - 0.5); >+ gl_FragColor = vec4(abs(c), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec3_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec3_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..91ea0ccf027 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec3_frag_xvary_ref.frag >@@ -0,0 +1,40 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = 2.0 * (color.rgb - 0.5); >+ if((c[0] < 0.0)) c[0] *= -1.0; >+ if((c[1] < 0.0)) c[1] *= -1.0; >+ if((c[2] < 0.0)) c[2] *= -1.0; >+ >+ >+ gl_FragColor = vec4(c, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec3_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec3_vert_xvary.vert >new file mode 100644 >index 00000000000..7b0098d09ac >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec3_vert_xvary.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = 2.0 * (gtf_Color.rgb - 0.5); >+ color = vec4(abs(c), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec3_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec3_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..29798b28afd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/abs_vec3_vert_xvary_ref.vert >@@ -0,0 +1,40 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = 2.0 * (gtf_Color.rgb - 0.5); >+ if((c[0] < 0.0)) c[0] *= -1.0; >+ if((c[1] < 0.0)) c[1] *= -1.0; >+ if((c[2] < 0.0)) c[2] *= -1.0; >+ >+ color = vec4(c, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/input.run.txt >new file mode 100644 >index 00000000000..ebf5dc91f19 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/abs/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+abs_001_to_006.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_001_to_006.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_001_to_006.html >new file mode 100644 >index 00000000000..c0258ea88c4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_001_to_006.html >@@ -0,0 +1,129 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: acos_001_to_006.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "acos_float_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "acos_float_frag_xvary.frag" >+ }, >+ "name": "acos_float_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "acos_vec2_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "acos_vec2_frag_xvary.frag" >+ }, >+ "name": "acos_vec2_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "acos_vec3_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "acos_vec3_frag_xvary.frag" >+ }, >+ "name": "acos_vec3_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "acos_float_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "acos_float_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "acos_float_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "acos_vec2_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "acos_vec2_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "acos_vec2_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "acos_vec3_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "acos_vec3_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "acos_vec3_vert_xvary.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_float_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_float_frag_xvary.frag >new file mode 100644 >index 00000000000..a1a2dc79376 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_float_frag_xvary.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float c = 2.0 * (color.r - 0.5); >+ gl_FragColor = vec4(acos(c) / M_PI, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_float_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_float_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..c4079a51f31 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_float_frag_xvary_ref.frag >@@ -0,0 +1,111 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+/* The following files are direct copies of each other: >+ * >+ * GL/acos/acos_float_frag_xvary_ref.frag >+ * GL/asin/asin_float_frag_xvary_ref.frag >+ * >+ * Care should be taken to apply any changes to both. Only the last >+ * line where gl_FragColor is assigned should be different. >+ */ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+float lerp(float a, float b, float s) >+{ >+ return a + (b - a) * s; >+} >+ >+void main (void) >+{ >+ float asinValues[17]; >+ asinValues[0] = -1.5708; >+ asinValues[1] = -1.06544; >+ asinValues[2] = -0.848062; >+ asinValues[3] = -0.675132; >+ asinValues[4] = -0.523599; >+ asinValues[5] = -0.384397; >+ asinValues[6] = -0.25268; >+ asinValues[7] = -0.125328; >+ asinValues[8] = 0.0; >+ asinValues[9] = 0.125328; >+ asinValues[10] = 0.25268; >+ asinValues[11] = 0.384397; >+ asinValues[12] = 0.523599; >+ asinValues[13] = 0.675132; >+ asinValues[14] = 0.848062; >+ asinValues[15] = 1.06544; >+ asinValues[16] = 1.5708; >+ >+ const float M_PI = 3.14159265358979323846; >+ float c = 2.0 * (color.r - 0.5); >+ >+ float arrVal = (c + 1.0) * 8.0; >+ int arr0 = int(floor(arrVal)); >+ float weight = arrVal - floor(arrVal); >+ float asin_c = 0.0; >+ >+ if (arr0 == 0) >+ asin_c = lerp(asinValues[0], asinValues[1], weight); >+ else if (arr0 == 1) >+ asin_c = lerp(asinValues[1], asinValues[2], weight); >+ else if (arr0 == 2) >+ asin_c = lerp(asinValues[2], asinValues[3], weight); >+ else if (arr0 == 3) >+ asin_c = lerp(asinValues[3], asinValues[4], weight); >+ else if (arr0 == 4) >+ asin_c = lerp(asinValues[4], asinValues[5], weight); >+ else if (arr0 == 5) >+ asin_c = lerp(asinValues[5], asinValues[6], weight); >+ else if (arr0 == 6) >+ asin_c = lerp(asinValues[6], asinValues[7], weight); >+ else if (arr0 == 7) >+ asin_c = lerp(asinValues[7], asinValues[8], weight); >+ else if (arr0 == 8) >+ asin_c = lerp(asinValues[8], asinValues[9], weight); >+ else if (arr0 == 9) >+ asin_c = lerp(asinValues[9], asinValues[10], weight); >+ else if (arr0 == 10) >+ asin_c = lerp(asinValues[10], asinValues[11], weight); >+ else if (arr0 == 11) >+ asin_c = lerp(asinValues[11], asinValues[12], weight); >+ else if (arr0 == 12) >+ asin_c = lerp(asinValues[12], asinValues[13], weight); >+ else if (arr0 == 13) >+ asin_c = lerp(asinValues[13], asinValues[14], weight); >+ else if (arr0 == 14) >+ asin_c = lerp(asinValues[14], asinValues[15], weight); >+ else if (arr0 == 15) >+ asin_c = lerp(asinValues[15], asinValues[16], weight); >+ else if (arr0 == 16) >+ asin_c = asinValues[16]; >+ >+ // acos(x) = PI/2 - asin(x) >+ gl_FragColor = vec4(0.5 - asin_c / M_PI, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_float_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_float_vert_xvary.vert >new file mode 100644 >index 00000000000..79269d10e26 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_float_vert_xvary.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float c = 2.0 * (gtf_Color.r - 0.5); >+ color = vec4(acos(c) / M_PI, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_float_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_float_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..8e05e26cf45 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_float_vert_xvary_ref.vert >@@ -0,0 +1,58 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float c = 2.0 * (gtf_Color.r - 0.5); >+ >+ float acos_c = 0.0; >+ float scale = 1.0; >+ float sign = 1.0; >+ >+ // pow can't handle negative numbers so take advantage of symmetry >+ if(c < 0.0) >+ { >+ sign = -1.0; >+ c *= -1.0; >+ } >+ >+ // Taylors series expansion for acos >+ // 1000/2 iterations necessary to get the accuracy with this method >+ for(int i = 1; i < 1000; i += 2) >+ { >+ acos_c += scale * pow(c, float(i)) / float(i); >+ scale *= float(i) / float(i + 1); >+ } >+ acos_c = M_PI / 2.0 - sign * acos_c; >+ >+ color = vec4(acos_c / M_PI, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec2_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec2_frag_xvary.frag >new file mode 100644 >index 00000000000..e2204d1f786 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec2_frag_xvary.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 c = 2.0 * (color.rg - 0.5); >+ gl_FragColor = vec4(acos(c) / M_PI, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec2_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec2_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..d48846ed34f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec2_frag_xvary_ref.frag >@@ -0,0 +1,147 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+/* The following files are direct copies of each other: >+ * >+ * GL/acos/acos_vec2_frag_xvary_ref.frag >+ * GL/asin/asin_vec2_frag_xvary_ref.frag >+ * >+ * Care should be taken to apply any changes to both. Only the last >+ * line where gl_FragColor is assigned should be different. >+ */ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+float lerp(float a, float b, float s) >+{ >+ return a + (b - a) * s; >+} >+ >+void main (void) >+{ >+ float asinValues[17]; >+ asinValues[0] = -1.5708; >+ asinValues[1] = -1.06544; >+ asinValues[2] = -0.848062; >+ asinValues[3] = -0.675132; >+ asinValues[4] = -0.523599; >+ asinValues[5] = -0.384397; >+ asinValues[6] = -0.25268; >+ asinValues[7] = -0.125328; >+ asinValues[8] = 0.0; >+ asinValues[9] = 0.125328; >+ asinValues[10] = 0.25268; >+ asinValues[11] = 0.384397; >+ asinValues[12] = 0.523599; >+ asinValues[13] = 0.675132; >+ asinValues[14] = 0.848062; >+ asinValues[15] = 1.06544; >+ asinValues[16] = 1.5708; >+ >+ const float M_PI = 3.14159265358979323846; >+ vec2 c = 2.0 * (color.rg - 0.5); >+ >+ vec2 arrVal = (c + vec2(1.0, 1.0)) * 8.0; >+ int arr0x = int(floor(arrVal.x)); >+ int arr0y = int(floor(arrVal.y)); >+ vec2 weight = arrVal - floor(arrVal); >+ vec2 asin_c = vec2(0.0); >+ >+ if (arr0x == 0) >+ asin_c.x = lerp(asinValues[0], asinValues[1], weight.x); >+ else if (arr0x == 1) >+ asin_c.x = lerp(asinValues[1], asinValues[2], weight.x); >+ else if (arr0x == 2) >+ asin_c.x = lerp(asinValues[2], asinValues[3], weight.x); >+ else if (arr0x == 3) >+ asin_c.x = lerp(asinValues[3], asinValues[4], weight.x); >+ else if (arr0x == 4) >+ asin_c.x = lerp(asinValues[4], asinValues[5], weight.x); >+ else if (arr0x == 5) >+ asin_c.x = lerp(asinValues[5], asinValues[6], weight.x); >+ else if (arr0x == 6) >+ asin_c.x = lerp(asinValues[6], asinValues[7], weight.x); >+ else if (arr0x == 7) >+ asin_c.x = lerp(asinValues[7], asinValues[8], weight.x); >+ else if (arr0x == 8) >+ asin_c.x = lerp(asinValues[8], asinValues[9], weight.x); >+ else if (arr0x == 9) >+ asin_c.x = lerp(asinValues[9], asinValues[10], weight.x); >+ else if (arr0x == 10) >+ asin_c.x = lerp(asinValues[10], asinValues[11], weight.x); >+ else if (arr0x == 11) >+ asin_c.x = lerp(asinValues[11], asinValues[12], weight.x); >+ else if (arr0x == 12) >+ asin_c.x = lerp(asinValues[12], asinValues[13], weight.x); >+ else if (arr0x == 13) >+ asin_c.x = lerp(asinValues[13], asinValues[14], weight.x); >+ else if (arr0x == 14) >+ asin_c.x = lerp(asinValues[14], asinValues[15], weight.x); >+ else if (arr0x == 15) >+ asin_c.x = lerp(asinValues[15], asinValues[16], weight.x); >+ else if (arr0x == 16) >+ asin_c.x = asinValues[16]; >+ >+ if (arr0y == 0) >+ asin_c.y = lerp(asinValues[0], asinValues[1], weight.y); >+ else if (arr0y == 1) >+ asin_c.y = lerp(asinValues[1], asinValues[2], weight.y); >+ else if (arr0y == 2) >+ asin_c.y = lerp(asinValues[2], asinValues[3], weight.y); >+ else if (arr0y == 3) >+ asin_c.y = lerp(asinValues[3], asinValues[4], weight.y); >+ else if (arr0y == 4) >+ asin_c.y = lerp(asinValues[4], asinValues[5], weight.y); >+ else if (arr0y == 5) >+ asin_c.y = lerp(asinValues[5], asinValues[6], weight.y); >+ else if (arr0y == 6) >+ asin_c.y = lerp(asinValues[6], asinValues[7], weight.y); >+ else if (arr0y == 7) >+ asin_c.y = lerp(asinValues[7], asinValues[8], weight.y); >+ else if (arr0y == 8) >+ asin_c.y = lerp(asinValues[8], asinValues[9], weight.y); >+ else if (arr0y == 9) >+ asin_c.y = lerp(asinValues[9], asinValues[10], weight.y); >+ else if (arr0y == 10) >+ asin_c.y = lerp(asinValues[10], asinValues[11], weight.y); >+ else if (arr0y == 11) >+ asin_c.y = lerp(asinValues[11], asinValues[12], weight.y); >+ else if (arr0y == 12) >+ asin_c.y = lerp(asinValues[12], asinValues[13], weight.y); >+ else if (arr0y == 13) >+ asin_c.y = lerp(asinValues[13], asinValues[14], weight.y); >+ else if (arr0y == 14) >+ asin_c.y = lerp(asinValues[14], asinValues[15], weight.y); >+ else if (arr0y == 15) >+ asin_c.y = lerp(asinValues[15], asinValues[16], weight.y); >+ else if (arr0y == 16) >+ asin_c.y = asinValues[16]; >+ >+ // acos(x) = PI/2 - asin(x) >+ gl_FragColor = vec4(0.5 - asin_c / M_PI, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec2_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec2_vert_xvary.vert >new file mode 100644 >index 00000000000..c3751ecebb8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec2_vert_xvary.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 c = 2.0 * (gtf_Color.rg - 0.5); >+ color = vec4(acos(c) / M_PI, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec2_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec2_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..eb6bb5d9692 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec2_vert_xvary_ref.vert >@@ -0,0 +1,73 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 c = 2.0 * (gtf_Color.rg - 0.5); >+ vec2 acos_c = vec2(0.0); >+ vec2 scale = vec2(1.0); >+ vec2 sign = vec2(1.0); >+ >+ // pow can't handle negative numbers so take advantage of symmetry >+ if(c.r < 0.0) >+ { >+ sign.r = -1.0; >+ c.r *= -1.0; >+ } >+ >+ // Taylors series expansion for acos >+ // 1000/2 iterations necessary to get the accuracy with this method >+ for(int i = 1; i < 1000; i += 2) >+ { >+ acos_c.r += scale.r * pow(c.r, float(i)) / float(i); >+ scale.r *= float(i) / float(i + 1); >+ } >+ acos_c.r = M_PI / 2.0 - sign.r * acos_c.r; >+ >+ // pow can't handle negative numbers so take advantage of symmetry >+ if(c.g < 0.0) >+ { >+ sign.g = -1.0; >+ c.g *= -1.0; >+ } >+ >+ // Taylors series expansion for acos >+ // 1000/2 iterations necessary to get the accuracy with this method >+ for(int i = 1; i < 1000; i += 2) >+ { >+ acos_c.g += scale.g * pow(c.g, float(i)) / float(i); >+ scale.g *= float(i) / float(i + 1); >+ } >+ acos_c.g = M_PI / 2.0 - sign.g * acos_c.g; >+ >+ color = vec4(acos_c / M_PI, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec3_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec3_frag_xvary.frag >new file mode 100644 >index 00000000000..0c3f1a97627 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec3_frag_xvary.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 c = 2.0 * (color.rgb - 0.5); >+ gl_FragColor = vec4(acos(c) / M_PI, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec3_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec3_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..b0cac4a471d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec3_frag_xvary_ref.frag >@@ -0,0 +1,183 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+/* The following files are direct copies of each other: >+ * >+ * GL/acos/acos_vec3_frag_xvary_ref.frag >+ * GL/asin/asin_vec3_frag_xvary_ref.frag >+ * >+ * Care should be taken to apply any changes to both. Only the last >+ * line where gl_FragColor is assigned should be different. >+ */ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+float lerp(float a, float b, float s) >+{ >+ return a + (b - a) * s; >+} >+ >+void main (void) >+{ >+ float asinValues[17]; >+ asinValues[0] = -1.5708; >+ asinValues[1] = -1.06544; >+ asinValues[2] = -0.848062; >+ asinValues[3] = -0.675132; >+ asinValues[4] = -0.523599; >+ asinValues[5] = -0.384397; >+ asinValues[6] = -0.25268; >+ asinValues[7] = -0.125328; >+ asinValues[8] = 0.0; >+ asinValues[9] = 0.125328; >+ asinValues[10] = 0.25268; >+ asinValues[11] = 0.384397; >+ asinValues[12] = 0.523599; >+ asinValues[13] = 0.675132; >+ asinValues[14] = 0.848062; >+ asinValues[15] = 1.06544; >+ asinValues[16] = 1.5708; >+ >+ const float M_PI = 3.14159265358979323846; >+ vec3 c = 2.0 * (color.rgb - 0.5); >+ >+ vec3 arrVal = (c + vec3(1.0, 1.0, 1.0)) * 8.0; >+ int arr0x = int(floor(arrVal.x)); >+ int arr0y = int(floor(arrVal.y)); >+ int arr0z = int(floor(arrVal.z)); >+ vec3 weight = arrVal - floor(arrVal); >+ vec3 asin_c = vec3(0.0); >+ >+ if (arr0x == 0) >+ asin_c.x = lerp(asinValues[0], asinValues[1], weight.x); >+ else if (arr0x == 1) >+ asin_c.x = lerp(asinValues[1], asinValues[2], weight.x); >+ else if (arr0x == 2) >+ asin_c.x = lerp(asinValues[2], asinValues[3], weight.x); >+ else if (arr0x == 3) >+ asin_c.x = lerp(asinValues[3], asinValues[4], weight.x); >+ else if (arr0x == 4) >+ asin_c.x = lerp(asinValues[4], asinValues[5], weight.x); >+ else if (arr0x == 5) >+ asin_c.x = lerp(asinValues[5], asinValues[6], weight.x); >+ else if (arr0x == 6) >+ asin_c.x = lerp(asinValues[6], asinValues[7], weight.x); >+ else if (arr0x == 7) >+ asin_c.x = lerp(asinValues[7], asinValues[8], weight.x); >+ else if (arr0x == 8) >+ asin_c.x = lerp(asinValues[8], asinValues[9], weight.x); >+ else if (arr0x == 9) >+ asin_c.x = lerp(asinValues[9], asinValues[10], weight.x); >+ else if (arr0x == 10) >+ asin_c.x = lerp(asinValues[10], asinValues[11], weight.x); >+ else if (arr0x == 11) >+ asin_c.x = lerp(asinValues[11], asinValues[12], weight.x); >+ else if (arr0x == 12) >+ asin_c.x = lerp(asinValues[12], asinValues[13], weight.x); >+ else if (arr0x == 13) >+ asin_c.x = lerp(asinValues[13], asinValues[14], weight.x); >+ else if (arr0x == 14) >+ asin_c.x = lerp(asinValues[14], asinValues[15], weight.x); >+ else if (arr0x == 15) >+ asin_c.x = lerp(asinValues[15], asinValues[16], weight.x); >+ else if (arr0x == 16) >+ asin_c.x = asinValues[16]; >+ >+ if (arr0y == 0) >+ asin_c.y = lerp(asinValues[0], asinValues[1], weight.y); >+ else if (arr0y == 1) >+ asin_c.y = lerp(asinValues[1], asinValues[2], weight.y); >+ else if (arr0y == 2) >+ asin_c.y = lerp(asinValues[2], asinValues[3], weight.y); >+ else if (arr0y == 3) >+ asin_c.y = lerp(asinValues[3], asinValues[4], weight.y); >+ else if (arr0y == 4) >+ asin_c.y = lerp(asinValues[4], asinValues[5], weight.y); >+ else if (arr0y == 5) >+ asin_c.y = lerp(asinValues[5], asinValues[6], weight.y); >+ else if (arr0y == 6) >+ asin_c.y = lerp(asinValues[6], asinValues[7], weight.y); >+ else if (arr0y == 7) >+ asin_c.y = lerp(asinValues[7], asinValues[8], weight.y); >+ else if (arr0y == 8) >+ asin_c.y = lerp(asinValues[8], asinValues[9], weight.y); >+ else if (arr0y == 9) >+ asin_c.y = lerp(asinValues[9], asinValues[10], weight.y); >+ else if (arr0y == 10) >+ asin_c.y = lerp(asinValues[10], asinValues[11], weight.y); >+ else if (arr0y == 11) >+ asin_c.y = lerp(asinValues[11], asinValues[12], weight.y); >+ else if (arr0y == 12) >+ asin_c.y = lerp(asinValues[12], asinValues[13], weight.y); >+ else if (arr0y == 13) >+ asin_c.y = lerp(asinValues[13], asinValues[14], weight.y); >+ else if (arr0y == 14) >+ asin_c.y = lerp(asinValues[14], asinValues[15], weight.y); >+ else if (arr0y == 15) >+ asin_c.y = lerp(asinValues[15], asinValues[16], weight.y); >+ else if (arr0y == 16) >+ asin_c.y = asinValues[16]; >+ >+ if (arr0z == 0) >+ asin_c.z = lerp(asinValues[0], asinValues[1], weight.z); >+ else if (arr0z == 1) >+ asin_c.z = lerp(asinValues[1], asinValues[2], weight.z); >+ else if (arr0z == 2) >+ asin_c.z = lerp(asinValues[2], asinValues[3], weight.z); >+ else if (arr0z == 3) >+ asin_c.z = lerp(asinValues[3], asinValues[4], weight.z); >+ else if (arr0z == 4) >+ asin_c.z = lerp(asinValues[4], asinValues[5], weight.z); >+ else if (arr0z == 5) >+ asin_c.z = lerp(asinValues[5], asinValues[6], weight.z); >+ else if (arr0z == 6) >+ asin_c.z = lerp(asinValues[6], asinValues[7], weight.z); >+ else if (arr0z == 7) >+ asin_c.z = lerp(asinValues[7], asinValues[8], weight.z); >+ else if (arr0z == 8) >+ asin_c.z = lerp(asinValues[8], asinValues[9], weight.z); >+ else if (arr0z == 9) >+ asin_c.z = lerp(asinValues[9], asinValues[10], weight.z); >+ else if (arr0z == 10) >+ asin_c.z = lerp(asinValues[10], asinValues[11], weight.z); >+ else if (arr0z == 11) >+ asin_c.z = lerp(asinValues[11], asinValues[12], weight.z); >+ else if (arr0z == 12) >+ asin_c.z = lerp(asinValues[12], asinValues[13], weight.z); >+ else if (arr0z == 13) >+ asin_c.z = lerp(asinValues[13], asinValues[14], weight.z); >+ else if (arr0z == 14) >+ asin_c.z = lerp(asinValues[14], asinValues[15], weight.z); >+ else if (arr0z == 15) >+ asin_c.z = lerp(asinValues[15], asinValues[16], weight.z); >+ else if (arr0z == 16) >+ asin_c.z = asinValues[16]; >+ >+ // acos(x) = PI/2 - asin(x) >+ gl_FragColor = vec4(0.5 - asin_c / M_PI, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec3_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec3_vert_xvary.vert >new file mode 100644 >index 00000000000..5bc077388ec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec3_vert_xvary.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 c = 2.0 * (gtf_Color.rgb - 0.5); >+ color = vec4(acos(c) / M_PI, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec3_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec3_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..a382a457359 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/acos_vec3_vert_xvary_ref.vert >@@ -0,0 +1,89 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 c = 2.0 * (gtf_Color.rgb - 0.5); >+ vec3 acos_c = vec3(0.0); >+ vec3 scale = vec3(1.0); >+ vec3 sign = vec3(1.0); >+ >+ // pow can't handle negative numbers so take advantage of symmetry >+ if(c.r < 0.0) >+ { >+ sign.r = -1.0; >+ c.r *= -1.0; >+ } >+ >+ // Taylors series expansion for acos >+ // 1000/2 iterations necessary to get the accuracy with this method >+ for(int i = 1; i < 1000; i += 2) >+ { >+ acos_c.r += scale.r * pow(c.r, float(i)) / float(i); >+ scale.r *= float(i) / float(i + 1); >+ } >+ acos_c.r = M_PI / 2.0 - sign.r * acos_c.r; >+ >+ // pow can't handle negative numbers so take advantage of symmetry >+ if(c.g < 0.0) >+ { >+ sign.g = -1.0; >+ c.g *= -1.0; >+ } >+ >+ // Taylors series expansion for acos >+ // 1000/2 iterations necessary to get the accuracy with this method >+ for(int i = 1; i < 1000; i += 2) >+ { >+ acos_c.g += scale.g * pow(c.g, float(i)) / float(i); >+ scale.g *= float(i) / float(i + 1); >+ } >+ acos_c.g = M_PI / 2.0 - sign.g * acos_c.g; >+ >+ // pow can't handle negative numbers so take advantage of symmetry >+ if(c.b < 0.0) >+ { >+ sign.b = -1.0; >+ c.b *= -1.0; >+ } >+ >+ // Taylors series expansion for acos >+ // 1000/2 iterations necessary to get the accuracy with this method >+ for(int i = 1; i < 1000; i += 2) >+ { >+ acos_c.b += scale.b * pow(c.b, float(i)) / float(i); >+ scale.b *= float(i) / float(i + 1); >+ } >+ acos_c.b = M_PI / 2.0 - sign.b * acos_c.b; >+ >+ color = vec4(acos_c / M_PI, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/input.run.txt >new file mode 100644 >index 00000000000..fc7eedaa08b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/acos/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+acos_001_to_006.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_001_to_004.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_001_to_004.html >new file mode 100644 >index 00000000000..1c62b96e3fe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_001_to_004.html >@@ -0,0 +1,103 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: all_001_to_004.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "all_bvec2_frag_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "all_bvec2_frag.frag" >+ }, >+ "name": "all_bvec2_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "all_bvec2_vert_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "all_bvec2_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "all_bvec2_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "all_bvec3_frag_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "all_bvec3_frag.frag" >+ }, >+ "name": "all_bvec3_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "all_bvec3_vert_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "all_bvec3_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "all_bvec3_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec2_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec2_frag.frag >new file mode 100644 >index 00000000000..0e3071418a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec2_frag.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = floor(4.0 * color.rg); // 3/4 true, 1/4 false >+ gl_FragColor = vec4(vec3(all(bvec2(c))), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec2_frag_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec2_frag_ref.frag >new file mode 100644 >index 00000000000..7e760e76a9e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec2_frag_ref.frag >@@ -0,0 +1,45 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+bool _all(in bvec2 a) >+{ >+ bool temp = true; >+ >+ if(!a[0]) temp = false; >+ if(!a[1]) temp = false; >+ >+ return temp; >+} >+ >+void main (void) >+{ >+ vec2 c = floor(4.0 * color.rg); // 3/4 true, 1/4 false >+ gl_FragColor = vec4(vec3(_all(bvec2(c))), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec2_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec2_vert.vert >new file mode 100644 >index 00000000000..6beab14c591 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec2_vert.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = floor(4.0 * gtf_Color.rg); // 3/4 true, 1/4 false >+ color = vec4(vec3(all(bvec2(c))), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec2_vert_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec2_vert_ref.vert >new file mode 100644 >index 00000000000..e4f5071b120 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec2_vert_ref.vert >@@ -0,0 +1,46 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+bool _all(in bvec2 a) >+{ >+ bool temp = true; >+ >+ if(!a[0]) temp = false; >+ if(!a[1]) temp = false; >+ >+ return temp; >+} >+ >+void main (void) >+{ >+ vec2 c = floor(4.0 * gtf_Color.rg); // 3/4 true, 1/4 false >+ color = vec4(vec3(_all(bvec2(c))), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec3_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec3_frag.frag >new file mode 100644 >index 00000000000..bab07bbbc4e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec3_frag.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = floor(4.0 * color.rgb); // 3/4 true, 1/4 false >+ gl_FragColor = vec4(vec3(all(bvec3(c))), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec3_frag_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec3_frag_ref.frag >new file mode 100644 >index 00000000000..a4e5a568cc6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec3_frag_ref.frag >@@ -0,0 +1,46 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+bool _all(in bvec3 a) >+{ >+ bool temp = true; >+ >+ if(!a[0]) temp = false; >+ if(!a[1]) temp = false; >+ if(!a[2]) temp = false; >+ >+ return temp; >+} >+ >+void main (void) >+{ >+ vec3 c = floor(4.0 * color.rgb); // 3/4 true, 1/4 false >+ gl_FragColor = vec4(vec3(_all(bvec3(c))), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec3_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec3_vert.vert >new file mode 100644 >index 00000000000..657970df4b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec3_vert.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = floor(4.0 * gtf_Color.rgb); // 3/4 true, 1/4 false >+ color = vec4(vec3(all(bvec3(c))), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec3_vert_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec3_vert_ref.vert >new file mode 100644 >index 00000000000..c16ff823663 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/all_bvec3_vert_ref.vert >@@ -0,0 +1,47 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+bool _all(in bvec3 a) >+{ >+ bool temp = true; >+ >+ if(!a[0]) temp = false; >+ if(!a[1]) temp = false; >+ if(!a[2]) temp = false; >+ >+ return temp; >+} >+ >+void main (void) >+{ >+ vec3 c = floor(4.0 * gtf_Color.rgb); // 3/4 true, 1/4 false >+ color = vec4(vec3(_all(bvec3(c))), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/input.run.txt >new file mode 100644 >index 00000000000..420ac35bcd2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/all/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+all_001_to_004.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_001_to_004.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_001_to_004.html >new file mode 100644 >index 00000000000..05b70e678ab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_001_to_004.html >@@ -0,0 +1,103 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: any_001_to_004.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "any_bvec2_frag_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "any_bvec2_frag.frag" >+ }, >+ "name": "any_bvec2_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "any_bvec2_vert_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "any_bvec2_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "any_bvec2_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "any_bvec3_frag_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "any_bvec3_frag.frag" >+ }, >+ "name": "any_bvec3_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "any_bvec3_vert_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "any_bvec3_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "any_bvec3_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec2_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec2_frag.frag >new file mode 100644 >index 00000000000..83a21f61aab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec2_frag.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = floor(1.5 * color.rg); // 1/3 true, 2/3 false >+ gl_FragColor = vec4(vec3(any(bvec2(c))), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec2_frag_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec2_frag_ref.frag >new file mode 100644 >index 00000000000..3df52709886 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec2_frag_ref.frag >@@ -0,0 +1,45 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+bool _any(in bvec2 a) >+{ >+ bool temp = false; >+ >+ if(a[0]) temp = true; >+ if(a[1]) temp = true; >+ >+ return temp; >+} >+ >+void main (void) >+{ >+ vec2 c = floor(1.5 * color.rg); // 1/3 true, 2/3 false >+ gl_FragColor = vec4(vec3(_any(bvec2(c))), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec2_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec2_vert.vert >new file mode 100644 >index 00000000000..1388eda2eb0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec2_vert.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = floor(1.5 * gtf_Color.rg); // 1/3 true, 2/3 false >+ color = vec4(vec3(any(bvec2(c))), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec2_vert_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec2_vert_ref.vert >new file mode 100644 >index 00000000000..d39695746c9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec2_vert_ref.vert >@@ -0,0 +1,46 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+bool _any(in bvec2 a) >+{ >+ bool temp = false; >+ >+ if(a[0]) temp = true; >+ if(a[1]) temp = true; >+ >+ return temp; >+} >+ >+void main (void) >+{ >+ vec2 c = floor(1.5 * gtf_Color.rg); // 1/3 true, 2/3 false >+ color = vec4(vec3(_any(bvec2(c))), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec3_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec3_frag.frag >new file mode 100644 >index 00000000000..ba870149661 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec3_frag.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = floor(1.5 * color.rgb); // 1/3 true, 2/3 false >+ gl_FragColor = vec4(vec3(any(bvec3(c))), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec3_frag_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec3_frag_ref.frag >new file mode 100644 >index 00000000000..899a204be3e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec3_frag_ref.frag >@@ -0,0 +1,46 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+bool _any(in bvec3 a) >+{ >+ bool temp = false; >+ >+ if(a[0]) temp = true; >+ if(a[1]) temp = true; >+ if(a[2]) temp = true; >+ >+ return temp; >+} >+ >+void main (void) >+{ >+ vec3 c = floor(1.5 * color.rgb); // 1/3 true, 2/3 false >+ gl_FragColor = vec4(vec3(_any(bvec3(c))), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec3_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec3_vert.vert >new file mode 100644 >index 00000000000..b7394346057 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec3_vert.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = floor(1.5 * gtf_Color.rgb); // 1/3 true, 2/3 false >+ color = vec4(vec3(any(bvec3(c))), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec3_vert_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec3_vert_ref.vert >new file mode 100644 >index 00000000000..87bf200c638 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/any_bvec3_vert_ref.vert >@@ -0,0 +1,47 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+bool _any(in bvec3 a) >+{ >+ bool temp = false; >+ >+ if(a[0]) temp = true; >+ if(a[1]) temp = true; >+ if(a[2]) temp = true; >+ >+ return temp; >+} >+ >+void main (void) >+{ >+ vec3 c = floor(1.5 * gtf_Color.rgb); // 1/3 true, 2/3 false >+ color = vec4(vec3(_any(bvec3(c))), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/input.run.txt >new file mode 100644 >index 00000000000..6ac42406768 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/any/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+any_001_to_004.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/array_001_to_006.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/array_001_to_006.html >new file mode 100644 >index 00000000000..fa1ebaf2cd6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/array_001_to_006.html >@@ -0,0 +1,221 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: array_001_to_006.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "new_mad2": { >+ "count": 2, >+ "type": "uniform1fv", >+ "value": [ >+ 45.0, >+ 14.0 >+ ] >+ } >+ }, >+ "fragmentShader": "empty_uniform_array_float_frag.frag" >+ }, >+ "name": "empty_uniform_array_float_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "empty_uniform_array_float_vert.vert", >+ "uniforms": { >+ "new_mad2": { >+ "count": 2, >+ "type": "uniform1fv", >+ "value": [ >+ 45.0, >+ 14.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "empty_uniform_array_float_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "empty_empty_array_float_frag.frag" >+ }, >+ "name": "empty_empty_array_float_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "empty_empty_array_float_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "empty_empty_array_float_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "initfunc_empty_array_float_frag.frag" >+ }, >+ "name": "initfunc_empty_array_float_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "initfunc_empty_array_float_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "initfunc_empty_array_float_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/empty_empty_array_float_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/empty_empty_array_float_frag.frag >new file mode 100644 >index 00000000000..015a4c5bc3b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/empty_empty_array_float_frag.frag >@@ -0,0 +1,45 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ int i=0; >+ float new_mad[2]; >+ float gray = 0.0; >+ >+ new_mad[0]=float(1); >+ new_mad[1]=float(2); >+ >+ if( (new_mad[0] == 1.0) && (new_mad[1] == 2.0) ) >+ gray=1.0; >+ else gray=0.0; >+ gl_FragColor = vec4(gray,gray , gray, 1.0); >+ >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/empty_empty_array_float_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/empty_empty_array_float_vert.vert >new file mode 100644 >index 00000000000..90c492550e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/empty_empty_array_float_vert.vert >@@ -0,0 +1,44 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ int i=0; >+ float new_mad[2]; >+ float gray = 0.0; >+ >+ new_mad[0]=float(1); >+ new_mad[1]=float(2); >+ >+ if( (new_mad[0] == 1.0) && (new_mad[1] == 2.0) ) >+ gray=1.0; >+ else gray=0.0; >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/empty_uniform_array_float_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/empty_uniform_array_float_frag.frag >new file mode 100644 >index 00000000000..24c17e59d63 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/empty_uniform_array_float_frag.frag >@@ -0,0 +1,45 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+uniform float new_mad2[2]; >+ >+void main (void) >+{ >+ int i=0; >+ float new_mad[2]; >+ float gray = 0.0; >+ >+ new_mad[0]=new_mad2[0]; >+ new_mad[1]=new_mad2[1]; >+ >+ if( (new_mad[0] == 45.0) && (new_mad[1] == 14.0) ) >+ gray=1.0; >+ else gray=0.0; >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/empty_uniform_array_float_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/empty_uniform_array_float_vert.vert >new file mode 100644 >index 00000000000..101c3332061 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/empty_uniform_array_float_vert.vert >@@ -0,0 +1,47 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+const int array_size = 2; >+uniform float new_mad2[array_size]; >+ >+void main (void) >+{ >+ int i=0; >+ float new_mad[array_size]; >+ float gray = 0.0; >+ >+ new_mad[0] = new_mad2[0]; >+ new_mad[1] = new_mad2[1]; >+ >+ if( (new_mad[0] == 45.0) && (new_mad[1] == 14.0) ) >+ gray=1.0; >+ else gray=0.0; >+ color = vec4(gray, gray, gray, 1.0); >+ >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/initfunc_empty_array_float_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/initfunc_empty_array_float_frag.frag >new file mode 100644 >index 00000000000..ff307840828 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/initfunc_empty_array_float_frag.frag >@@ -0,0 +1,50 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+ >+void initialise_array(out float array[2], float init_val); >+void main (void) >+{ >+ int i=0; >+ float new_mad[2]; >+ float gray = 0.0; >+ initialise_array(new_mad,25.0); >+ if( (new_mad[0] == 25.0) && (new_mad[1] == 25.0) ) >+ gray=1.0; >+ else gray=0.0; >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+void initialise_array(out float array[2], float init_val) >+{ >+ int i=0; >+ array[0] = init_val; >+ array[1] = init_val; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/initfunc_empty_array_float_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/initfunc_empty_array_float_vert.vert >new file mode 100644 >index 00000000000..a84e72dda53 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/initfunc_empty_array_float_vert.vert >@@ -0,0 +1,49 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void initialise_array(out float array[2], float init_val); >+ >+void main (void) >+{ >+ int i=0; >+ float new_mad[2]; >+ float gray = 0.0; >+ initialise_array(new_mad,25.0); >+ if( (new_mad[0] == 25.0) && (new_mad[1] == 25.0) ) >+ gray=1.0; >+ else gray=0.0; >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+void initialise_array(out float array[2], float init_val) >+{ >+ array[0] = init_val; >+ array[1] = init_val; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/input.run.txt >new file mode 100644 >index 00000000000..c7cbc1049a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/array/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+array_001_to_006.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_001_to_006.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_001_to_006.html >new file mode 100644 >index 00000000000..8f9858431e8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_001_to_006.html >@@ -0,0 +1,129 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: asin_001_to_006.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "asin_float_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "asin_float_frag_xvary.frag" >+ }, >+ "name": "asin_float_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "asin_vec2_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "asin_vec2_frag_xvary.frag" >+ }, >+ "name": "asin_vec2_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "asin_vec3_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "asin_vec3_frag_xvary.frag" >+ }, >+ "name": "asin_vec3_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "asin_float_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "asin_float_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "asin_float_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "asin_vec2_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "asin_vec2_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "asin_vec2_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "asin_vec3_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "asin_vec3_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "asin_vec3_vert_xvary.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_float_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_float_frag_xvary.frag >new file mode 100644 >index 00000000000..51e81e8aa42 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_float_frag_xvary.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float c = 2.0 * (color.r - 0.5); >+ gl_FragColor = vec4(asin(c) / M_PI + 0.5, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_float_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_float_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..b8da316a2eb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_float_frag_xvary_ref.frag >@@ -0,0 +1,110 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+/* The following files are direct copies of each other: >+ * >+ * GL/acos/acos_float_frag_xvary_ref.frag >+ * GL/asin/asin_float_frag_xvary_ref.frag >+ * >+ * Care should be taken to apply any changes to both. Only the last >+ * line where gl_FragColor is assigned should be different. >+ */ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+float lerp(float a, float b, float s) >+{ >+ return a + (b - a) * s; >+} >+ >+void main (void) >+{ >+ float asinValues[17]; >+ asinValues[0] = -1.5708; >+ asinValues[1] = -1.06544; >+ asinValues[2] = -0.848062; >+ asinValues[3] = -0.675132; >+ asinValues[4] = -0.523599; >+ asinValues[5] = -0.384397; >+ asinValues[6] = -0.25268; >+ asinValues[7] = -0.125328; >+ asinValues[8] = 0.0; >+ asinValues[9] = 0.125328; >+ asinValues[10] = 0.25268; >+ asinValues[11] = 0.384397; >+ asinValues[12] = 0.523599; >+ asinValues[13] = 0.675132; >+ asinValues[14] = 0.848062; >+ asinValues[15] = 1.06544; >+ asinValues[16] = 1.5708; >+ >+ const float M_PI = 3.14159265358979323846; >+ float c = 2.0 * (color.r - 0.5); >+ >+ float arrVal = (c + 1.0) * 8.0; >+ int arr0 = int(floor(arrVal)); >+ float weight = arrVal - floor(arrVal); >+ float asin_c = 0.0; >+ >+ if (arr0 == 0) >+ asin_c = lerp(asinValues[0], asinValues[1], weight); >+ else if (arr0 == 1) >+ asin_c = lerp(asinValues[1], asinValues[2], weight); >+ else if (arr0 == 2) >+ asin_c = lerp(asinValues[2], asinValues[3], weight); >+ else if (arr0 == 3) >+ asin_c = lerp(asinValues[3], asinValues[4], weight); >+ else if (arr0 == 4) >+ asin_c = lerp(asinValues[4], asinValues[5], weight); >+ else if (arr0 == 5) >+ asin_c = lerp(asinValues[5], asinValues[6], weight); >+ else if (arr0 == 6) >+ asin_c = lerp(asinValues[6], asinValues[7], weight); >+ else if (arr0 == 7) >+ asin_c = lerp(asinValues[7], asinValues[8], weight); >+ else if (arr0 == 8) >+ asin_c = lerp(asinValues[8], asinValues[9], weight); >+ else if (arr0 == 9) >+ asin_c = lerp(asinValues[9], asinValues[10], weight); >+ else if (arr0 == 10) >+ asin_c = lerp(asinValues[10], asinValues[11], weight); >+ else if (arr0 == 11) >+ asin_c = lerp(asinValues[11], asinValues[12], weight); >+ else if (arr0 == 12) >+ asin_c = lerp(asinValues[12], asinValues[13], weight); >+ else if (arr0 == 13) >+ asin_c = lerp(asinValues[13], asinValues[14], weight); >+ else if (arr0 == 14) >+ asin_c = lerp(asinValues[14], asinValues[15], weight); >+ else if (arr0 == 15) >+ asin_c = lerp(asinValues[15], asinValues[16], weight); >+ else if (arr0 == 16) >+ asin_c = asinValues[16]; >+ >+ gl_FragColor = vec4(asin_c / M_PI + 0.5, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_float_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_float_vert_xvary.vert >new file mode 100644 >index 00000000000..d19424fccf2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_float_vert_xvary.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float c = 2.0 * (gtf_Color.r - 0.5); >+ color = vec4(asin(c) / M_PI + 0.5, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_float_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_float_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..d75bae25200 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_float_vert_xvary_ref.vert >@@ -0,0 +1,57 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float c = 2.0 * (gtf_Color.r - 0.5); >+ >+ float asin_c = 0.0; >+ float scale = 1.0; >+ float sign = 1.0; >+ >+ // pow can't handle negative numbers so take advantage of symmetry >+ if(c < 0.0) >+ { >+ sign = -1.0; >+ c *= -1.0; >+ } >+ >+ // Taylors series expansion for asin >+ // 1000/2 iterations necessary to get the accuracy with this method >+ for(int i = 1; i < 1000; i += 2) >+ { >+ asin_c += scale * pow(c, float(i)) / float(i); >+ scale *= float(i) / float(i + 1); >+ } >+ >+ color = vec4(sign * asin_c / M_PI + 0.5, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec2_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec2_frag_xvary.frag >new file mode 100644 >index 00000000000..207ec4ffe68 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec2_frag_xvary.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 c = 2.0 * (color.rg - 0.5); >+ gl_FragColor = vec4(asin(c) / M_PI + 0.5, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec2_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec2_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..3e221a7ee49 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec2_frag_xvary_ref.frag >@@ -0,0 +1,146 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+/* The following files are direct copies of each other: >+ * >+ * GL/acos/acos_vec2_frag_xvary_ref.frag >+ * GL/asin/asin_vec2_frag_xvary_ref.frag >+ * >+ * Care should be taken to apply any changes to both. Only the last >+ * line where gl_FragColor is assigned should be different. >+ */ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+float lerp(float a, float b, float s) >+{ >+ return a + (b - a) * s; >+} >+ >+void main (void) >+{ >+ float asinValues[17]; >+ asinValues[0] = -1.5708; >+ asinValues[1] = -1.06544; >+ asinValues[2] = -0.848062; >+ asinValues[3] = -0.675132; >+ asinValues[4] = -0.523599; >+ asinValues[5] = -0.384397; >+ asinValues[6] = -0.25268; >+ asinValues[7] = -0.125328; >+ asinValues[8] = 0.0; >+ asinValues[9] = 0.125328; >+ asinValues[10] = 0.25268; >+ asinValues[11] = 0.384397; >+ asinValues[12] = 0.523599; >+ asinValues[13] = 0.675132; >+ asinValues[14] = 0.848062; >+ asinValues[15] = 1.06544; >+ asinValues[16] = 1.5708; >+ >+ const float M_PI = 3.14159265358979323846; >+ vec2 c = 2.0 * (color.rg - 0.5); >+ >+ vec2 arrVal = (c + vec2(1.0, 1.0)) * 8.0; >+ int arr0x = int(floor(arrVal.x)); >+ int arr0y = int(floor(arrVal.y)); >+ vec2 weight = arrVal - floor(arrVal); >+ vec2 asin_c = vec2(0.0); >+ >+ if (arr0x == 0) >+ asin_c.x = lerp(asinValues[0], asinValues[1], weight.x); >+ else if (arr0x == 1) >+ asin_c.x = lerp(asinValues[1], asinValues[2], weight.x); >+ else if (arr0x == 2) >+ asin_c.x = lerp(asinValues[2], asinValues[3], weight.x); >+ else if (arr0x == 3) >+ asin_c.x = lerp(asinValues[3], asinValues[4], weight.x); >+ else if (arr0x == 4) >+ asin_c.x = lerp(asinValues[4], asinValues[5], weight.x); >+ else if (arr0x == 5) >+ asin_c.x = lerp(asinValues[5], asinValues[6], weight.x); >+ else if (arr0x == 6) >+ asin_c.x = lerp(asinValues[6], asinValues[7], weight.x); >+ else if (arr0x == 7) >+ asin_c.x = lerp(asinValues[7], asinValues[8], weight.x); >+ else if (arr0x == 8) >+ asin_c.x = lerp(asinValues[8], asinValues[9], weight.x); >+ else if (arr0x == 9) >+ asin_c.x = lerp(asinValues[9], asinValues[10], weight.x); >+ else if (arr0x == 10) >+ asin_c.x = lerp(asinValues[10], asinValues[11], weight.x); >+ else if (arr0x == 11) >+ asin_c.x = lerp(asinValues[11], asinValues[12], weight.x); >+ else if (arr0x == 12) >+ asin_c.x = lerp(asinValues[12], asinValues[13], weight.x); >+ else if (arr0x == 13) >+ asin_c.x = lerp(asinValues[13], asinValues[14], weight.x); >+ else if (arr0x == 14) >+ asin_c.x = lerp(asinValues[14], asinValues[15], weight.x); >+ else if (arr0x == 15) >+ asin_c.x = lerp(asinValues[15], asinValues[16], weight.x); >+ else if (arr0x == 16) >+ asin_c.x = asinValues[16]; >+ >+ if (arr0y == 0) >+ asin_c.y = lerp(asinValues[0], asinValues[1], weight.y); >+ else if (arr0y == 1) >+ asin_c.y = lerp(asinValues[1], asinValues[2], weight.y); >+ else if (arr0y == 2) >+ asin_c.y = lerp(asinValues[2], asinValues[3], weight.y); >+ else if (arr0y == 3) >+ asin_c.y = lerp(asinValues[3], asinValues[4], weight.y); >+ else if (arr0y == 4) >+ asin_c.y = lerp(asinValues[4], asinValues[5], weight.y); >+ else if (arr0y == 5) >+ asin_c.y = lerp(asinValues[5], asinValues[6], weight.y); >+ else if (arr0y == 6) >+ asin_c.y = lerp(asinValues[6], asinValues[7], weight.y); >+ else if (arr0y == 7) >+ asin_c.y = lerp(asinValues[7], asinValues[8], weight.y); >+ else if (arr0y == 8) >+ asin_c.y = lerp(asinValues[8], asinValues[9], weight.y); >+ else if (arr0y == 9) >+ asin_c.y = lerp(asinValues[9], asinValues[10], weight.y); >+ else if (arr0y == 10) >+ asin_c.y = lerp(asinValues[10], asinValues[11], weight.y); >+ else if (arr0y == 11) >+ asin_c.y = lerp(asinValues[11], asinValues[12], weight.y); >+ else if (arr0y == 12) >+ asin_c.y = lerp(asinValues[12], asinValues[13], weight.y); >+ else if (arr0y == 13) >+ asin_c.y = lerp(asinValues[13], asinValues[14], weight.y); >+ else if (arr0y == 14) >+ asin_c.y = lerp(asinValues[14], asinValues[15], weight.y); >+ else if (arr0y == 15) >+ asin_c.y = lerp(asinValues[15], asinValues[16], weight.y); >+ else if (arr0y == 16) >+ asin_c.y = asinValues[16]; >+ >+ gl_FragColor = vec4(asin_c / M_PI + 0.5, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec2_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec2_vert_xvary.vert >new file mode 100644 >index 00000000000..c51ca500f3a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec2_vert_xvary.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 c = 2.0 * (gtf_Color.rg - 0.5); >+ color = vec4(asin(c) / M_PI + 0.5, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec2_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec2_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..9aeab86bc51 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec2_vert_xvary_ref.vert >@@ -0,0 +1,71 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 c = 2.0 * (gtf_Color.rg - 0.5); >+ vec2 asin_c = vec2(0.0); >+ vec2 scale = vec2(1.0); >+ vec2 sign = vec2(1.0); >+ >+ // pow can't handle negative numbers so take advantage of symmetry >+ if(c.r < 0.0) >+ { >+ sign.r = -1.0; >+ c.r *= -1.0; >+ } >+ >+ // Taylors series expansion for asin >+ // 1000/2 iterations necessary to get the accuracy with this method >+ for(int i = 1; i < 1000; i += 2) >+ { >+ asin_c.r += scale.r * pow(c.r, float(i)) / float(i); >+ scale.r *= float(i) / float(i + 1); >+ } >+ >+ // pow can't handle negative numbers so take advantage of symmetry >+ if(c.g < 0.0) >+ { >+ sign.g = -1.0; >+ c.g *= -1.0; >+ } >+ >+ // Taylors series expansion for asin >+ // 1000/2 iterations necessary to get the accuracy with this method >+ for(int i = 1; i < 1000; i += 2) >+ { >+ asin_c.g += scale.g * pow(c.g, float(i)) / float(i); >+ scale.g *= float(i) / float(i + 1); >+ } >+ >+ color = vec4(sign * asin_c / M_PI + 0.5, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec3_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec3_frag_xvary.frag >new file mode 100644 >index 00000000000..4a7cc79a1b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec3_frag_xvary.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 c = 2.0 * (color.rgb - 0.5); >+ gl_FragColor = vec4(asin(c) / M_PI + 0.5, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec3_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec3_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..2eb4a806635 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec3_frag_xvary_ref.frag >@@ -0,0 +1,182 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+/* The following files are direct copies of each other: >+ * >+ * GL/acos/acos_vec3_frag_xvary_ref.frag >+ * GL/asin/asin_vec3_frag_xvary_ref.frag >+ * >+ * Care should be taken to apply any changes to both. Only the last >+ * line where gl_FragColor is assigned should be different. >+ */ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+float lerp(float a, float b, float s) >+{ >+ return a + (b - a) * s; >+} >+ >+void main (void) >+{ >+ float asinValues[17]; >+ asinValues[0] = -1.5708; >+ asinValues[1] = -1.06544; >+ asinValues[2] = -0.848062; >+ asinValues[3] = -0.675132; >+ asinValues[4] = -0.523599; >+ asinValues[5] = -0.384397; >+ asinValues[6] = -0.25268; >+ asinValues[7] = -0.125328; >+ asinValues[8] = 0.0; >+ asinValues[9] = 0.125328; >+ asinValues[10] = 0.25268; >+ asinValues[11] = 0.384397; >+ asinValues[12] = 0.523599; >+ asinValues[13] = 0.675132; >+ asinValues[14] = 0.848062; >+ asinValues[15] = 1.06544; >+ asinValues[16] = 1.5708; >+ >+ const float M_PI = 3.14159265358979323846; >+ vec3 c = 2.0 * (color.rgb - 0.5); >+ >+ vec3 arrVal = (c + vec3(1.0, 1.0, 1.0)) * 8.0; >+ int arr0x = int(floor(arrVal.x)); >+ int arr0y = int(floor(arrVal.y)); >+ int arr0z = int(floor(arrVal.z)); >+ vec3 weight = arrVal - floor(arrVal); >+ vec3 asin_c = vec3(0.0); >+ >+ if (arr0x == 0) >+ asin_c.x = lerp(asinValues[0], asinValues[1], weight.x); >+ else if (arr0x == 1) >+ asin_c.x = lerp(asinValues[1], asinValues[2], weight.x); >+ else if (arr0x == 2) >+ asin_c.x = lerp(asinValues[2], asinValues[3], weight.x); >+ else if (arr0x == 3) >+ asin_c.x = lerp(asinValues[3], asinValues[4], weight.x); >+ else if (arr0x == 4) >+ asin_c.x = lerp(asinValues[4], asinValues[5], weight.x); >+ else if (arr0x == 5) >+ asin_c.x = lerp(asinValues[5], asinValues[6], weight.x); >+ else if (arr0x == 6) >+ asin_c.x = lerp(asinValues[6], asinValues[7], weight.x); >+ else if (arr0x == 7) >+ asin_c.x = lerp(asinValues[7], asinValues[8], weight.x); >+ else if (arr0x == 8) >+ asin_c.x = lerp(asinValues[8], asinValues[9], weight.x); >+ else if (arr0x == 9) >+ asin_c.x = lerp(asinValues[9], asinValues[10], weight.x); >+ else if (arr0x == 10) >+ asin_c.x = lerp(asinValues[10], asinValues[11], weight.x); >+ else if (arr0x == 11) >+ asin_c.x = lerp(asinValues[11], asinValues[12], weight.x); >+ else if (arr0x == 12) >+ asin_c.x = lerp(asinValues[12], asinValues[13], weight.x); >+ else if (arr0x == 13) >+ asin_c.x = lerp(asinValues[13], asinValues[14], weight.x); >+ else if (arr0x == 14) >+ asin_c.x = lerp(asinValues[14], asinValues[15], weight.x); >+ else if (arr0x == 15) >+ asin_c.x = lerp(asinValues[15], asinValues[16], weight.x); >+ else if (arr0x == 16) >+ asin_c.x = asinValues[16]; >+ >+ if (arr0y == 0) >+ asin_c.y = lerp(asinValues[0], asinValues[1], weight.y); >+ else if (arr0y == 1) >+ asin_c.y = lerp(asinValues[1], asinValues[2], weight.y); >+ else if (arr0y == 2) >+ asin_c.y = lerp(asinValues[2], asinValues[3], weight.y); >+ else if (arr0y == 3) >+ asin_c.y = lerp(asinValues[3], asinValues[4], weight.y); >+ else if (arr0y == 4) >+ asin_c.y = lerp(asinValues[4], asinValues[5], weight.y); >+ else if (arr0y == 5) >+ asin_c.y = lerp(asinValues[5], asinValues[6], weight.y); >+ else if (arr0y == 6) >+ asin_c.y = lerp(asinValues[6], asinValues[7], weight.y); >+ else if (arr0y == 7) >+ asin_c.y = lerp(asinValues[7], asinValues[8], weight.y); >+ else if (arr0y == 8) >+ asin_c.y = lerp(asinValues[8], asinValues[9], weight.y); >+ else if (arr0y == 9) >+ asin_c.y = lerp(asinValues[9], asinValues[10], weight.y); >+ else if (arr0y == 10) >+ asin_c.y = lerp(asinValues[10], asinValues[11], weight.y); >+ else if (arr0y == 11) >+ asin_c.y = lerp(asinValues[11], asinValues[12], weight.y); >+ else if (arr0y == 12) >+ asin_c.y = lerp(asinValues[12], asinValues[13], weight.y); >+ else if (arr0y == 13) >+ asin_c.y = lerp(asinValues[13], asinValues[14], weight.y); >+ else if (arr0y == 14) >+ asin_c.y = lerp(asinValues[14], asinValues[15], weight.y); >+ else if (arr0y == 15) >+ asin_c.y = lerp(asinValues[15], asinValues[16], weight.y); >+ else if (arr0y == 16) >+ asin_c.y = asinValues[16]; >+ >+ if (arr0z == 0) >+ asin_c.z = lerp(asinValues[0], asinValues[1], weight.z); >+ else if (arr0z == 1) >+ asin_c.z = lerp(asinValues[1], asinValues[2], weight.z); >+ else if (arr0z == 2) >+ asin_c.z = lerp(asinValues[2], asinValues[3], weight.z); >+ else if (arr0z == 3) >+ asin_c.z = lerp(asinValues[3], asinValues[4], weight.z); >+ else if (arr0z == 4) >+ asin_c.z = lerp(asinValues[4], asinValues[5], weight.z); >+ else if (arr0z == 5) >+ asin_c.z = lerp(asinValues[5], asinValues[6], weight.z); >+ else if (arr0z == 6) >+ asin_c.z = lerp(asinValues[6], asinValues[7], weight.z); >+ else if (arr0z == 7) >+ asin_c.z = lerp(asinValues[7], asinValues[8], weight.z); >+ else if (arr0z == 8) >+ asin_c.z = lerp(asinValues[8], asinValues[9], weight.z); >+ else if (arr0z == 9) >+ asin_c.z = lerp(asinValues[9], asinValues[10], weight.z); >+ else if (arr0z == 10) >+ asin_c.z = lerp(asinValues[10], asinValues[11], weight.z); >+ else if (arr0z == 11) >+ asin_c.z = lerp(asinValues[11], asinValues[12], weight.z); >+ else if (arr0z == 12) >+ asin_c.z = lerp(asinValues[12], asinValues[13], weight.z); >+ else if (arr0z == 13) >+ asin_c.z = lerp(asinValues[13], asinValues[14], weight.z); >+ else if (arr0z == 14) >+ asin_c.z = lerp(asinValues[14], asinValues[15], weight.z); >+ else if (arr0z == 15) >+ asin_c.z = lerp(asinValues[15], asinValues[16], weight.z); >+ else if (arr0z == 16) >+ asin_c.z = asinValues[16]; >+ >+ gl_FragColor = vec4(asin_c / M_PI + 0.5, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec3_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec3_vert_xvary.vert >new file mode 100644 >index 00000000000..15f0ce71953 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec3_vert_xvary.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 c = 2.0 * (gtf_Color.rgb - 0.5); >+ color = vec4(asin(c) / M_PI + 0.5, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec3_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec3_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..648d0ad1805 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/asin_vec3_vert_xvary_ref.vert >@@ -0,0 +1,86 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 c = 2.0 * (gtf_Color.rgb - 0.5); >+ vec3 asin_c = vec3(0.0); >+ vec3 scale = vec3(1.0); >+ vec3 sign = vec3(1.0); >+ >+ // pow can't handle negative numbers so take advantage of symmetry >+ if(c.r < 0.0) >+ { >+ sign.r = -1.0; >+ c.r *= -1.0; >+ } >+ >+ // Taylors series expansion for asin >+ // 1000/2 iterations necessary to get the accuracy with this method >+ for(int i = 1; i < 1000; i += 2) >+ { >+ asin_c.r += scale.r * pow(c.r, float(i)) / float(i); >+ scale.r *= float(i) / float(i + 1); >+ } >+ >+ // pow can't handle negative numbers so take advantage of symmetry >+ if(c.g < 0.0) >+ { >+ sign.g = -1.0; >+ c.g *= -1.0; >+ } >+ >+ // Taylors series expansion for asin >+ // 1000/2 iterations necessary to get the accuracy with this method >+ for(int i = 1; i < 1000; i += 2) >+ { >+ asin_c.g += scale.g * pow(c.g, float(i)) / float(i); >+ scale.g *= float(i) / float(i + 1); >+ } >+ >+ // pow can't handle negative numbers so take advantage of symmetry >+ if(c.b < 0.0) >+ { >+ sign.b = -1.0; >+ c.b *= -1.0; >+ } >+ >+ // Taylors series expansion for asin >+ // 1000/2 iterations necessary to get the accuracy with this method >+ for(int i = 1; i < 1000; i += 2) >+ { >+ asin_c.b += scale.b * pow(c.b, float(i)) / float(i); >+ scale.b *= float(i) / float(i + 1); >+ } >+ >+ color = vec4(sign * asin_c / M_PI + 0.5, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/input.run.txt >new file mode 100644 >index 00000000000..c2de8233ad3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/asin/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+asin_001_to_006.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_001_to_008.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_001_to_008.html >new file mode 100644 >index 00000000000..1362fbed97b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_001_to_008.html >@@ -0,0 +1,155 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: atan_001_to_008.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "atan_float_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "atan_float_frag_xvary.frag" >+ }, >+ "name": "atan_float_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "atan_vec2_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "atan_vec2_frag_xvary.frag" >+ }, >+ "name": "atan_vec2_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "atan_vec3_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "atan_vec3_frag_xvary.frag" >+ }, >+ "name": "atan_vec3_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "atan_float_frag_xvaryyvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "atan_float_frag_xvaryyvary.frag" >+ }, >+ "name": "atan_float_frag_xvaryyvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "atan_vec2_frag_xvaryyvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "atan_vec2_frag_xvaryyvary.frag" >+ }, >+ "name": "atan_vec2_frag_xvaryyvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "atan_vec3_frag_xvaryyvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "atan_vec3_frag_xvaryyvary.frag" >+ }, >+ "name": "atan_vec3_frag_xvaryyvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "atan_float_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "atan_float_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "atan_float_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "atan_vec2_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "atan_vec2_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "atan_vec2_vert_xvary.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_009_to_012.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_009_to_012.html >new file mode 100644 >index 00000000000..39f1fe5ac08 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_009_to_012.html >@@ -0,0 +1,103 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: atan_009_to_012.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "atan_vec3_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "atan_vec3_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "atan_vec3_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "atan_float_vert_xvaryyvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "atan_float_vert_xvaryyvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "atan_float_vert_xvaryyvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "atan_vec2_vert_xvaryyvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "atan_vec2_vert_xvaryyvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "atan_vec2_vert_xvaryyvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "atan_vec3_vert_xvaryyvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "atan_vec3_vert_xvaryyvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "atan_vec3_vert_xvaryyvary.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_frag_xvary.frag >new file mode 100644 >index 00000000000..0b3528ebbed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_frag_xvary.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float c = 4.0 * 2.0 * (color.r - 0.5); >+ gl_FragColor = vec4(atan(c) / M_PI + 0.5, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..891ea8dd215 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_frag_xvary_ref.frag >@@ -0,0 +1,72 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float c = 4.0 * 2.0 * (color.r - 0.5); >+ float atan_c = 0.0; >+ float scale = 1.0; >+ float sign = 1.0; >+ vec4 result; >+ >+ if(c < 0.0) >+ { >+ sign = -1.0; >+ c *= -1.0; >+ } >+ >+ if(c <= 1.0) >+ { >+ // Taylors series expansion for atan >+ for(int i = 1; i < 12; i += 2) >+ { >+ atan_c += scale * pow(c, float(i)) / float(i); >+ scale *= -1.0; >+ } >+ >+ result = vec4(sign * atan_c / M_PI + 0.5, 0.0, 0.0, 1.0); >+ } >+ else >+ { >+ c = 1.0 / c; >+ >+ // Taylors series expansion for atan >+ for(int i = 1; i < 12; i += 2) >+ { >+ atan_c += scale * pow(c, float(i)) / float(i); >+ scale *= -1.0; >+ } >+ >+ result = vec4(sign * (M_PI / 2.0 - atan_c) / M_PI + 0.5, 0.0, 0.0, 1.0); >+ } >+ >+ gl_FragColor = result; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_frag_xvaryyvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_frag_xvaryyvary.frag >new file mode 100644 >index 00000000000..3b8f85e1fa5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_frag_xvaryyvary.frag >@@ -0,0 +1,48 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+#ifdef GL_FRAGMENT_PRECISION_HIGH >+precision highp float; >+#else >+precision mediump float; >+#endif >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float x = 2.0 * (color.g - 0.5); >+ float y = 2.0 * (color.b - 0.5); >+ const float epsilon = 1.0e-4; >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ // Avoid evaluating atan(0, x) for x < epsilon because it's implementation-dependent >+ if(x > epsilon || abs(y) > epsilon) >+ { >+ gl_FragColor = vec4(atan(y, x) / (2.0 * M_PI) + 0.5, 0.0, 0.0, 1.0); >+ } >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_frag_xvaryyvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_frag_xvaryyvary_ref.frag >new file mode 100644 >index 00000000000..42fa998db50 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_frag_xvaryyvary_ref.frag >@@ -0,0 +1,88 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+#ifdef GL_FRAGMENT_PRECISION_HIGH >+precision highp float; >+#else >+precision mediump float; >+#endif >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float x = 2.0 * (color.g - 0.5); >+ float y = 2.0 * (color.b - 0.5); >+ float atan_c = 0.0; >+ float scale = 1.0; >+ float sign = 1.0; >+ vec4 result = vec4(0.0, 0.0, 0.0, 1.0); >+ const float epsilon = 1.0e-4; >+ >+ // Avoid evaluating atan(0, x) for x < epsilon because it's implementation-dependent >+ if(x > epsilon || abs(y) > epsilon) >+ { >+ if(x < 0.0 ^^ y < 0.0) >+ { >+ sign = -1.0; >+ } >+ >+ if(abs(y) <= abs(x)) >+ { >+ float c = abs(y / x); >+ >+ // Taylors series expansion for atan >+ for(int i = 1; i < 12; i += 2) >+ { >+ atan_c += scale * pow(c, float(i)) / float(i); >+ scale *= -1.0; >+ } >+ >+ result = vec4(sign * atan_c / (2.0 * M_PI) + 0.5, 0.0, 0.0, 1.0); >+ } >+ else >+ { >+ float c = abs(x / y); >+ >+ // Taylors series expansion for atan >+ for(int i = 1; i < 12; i += 2) >+ { >+ atan_c += scale * pow(c, float(i)) / float(i); >+ scale *= -1.0; >+ } >+ >+ result = vec4(sign * (M_PI / 2.0 - atan_c) / (2.0 * M_PI) + 0.5, 0.0, 0.0, 1.0); >+ } >+ >+ if(x < 0.0) >+ if(y < 0.0) result.r -= 0.5; >+ else if(y > 0.0) result.r += 0.5; >+ } >+ >+ gl_FragColor = result; >+} >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_vert_xvary.vert >new file mode 100644 >index 00000000000..ead9e4be173 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_vert_xvary.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float c = 4.0 * 2.0 * (gtf_Color.r - 0.5); >+ color = vec4(atan(c) / M_PI + 0.5, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..f0dd4e16f34 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_vert_xvary_ref.vert >@@ -0,0 +1,73 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float c = 4.0 * 2.0 * (gtf_Color.r - 0.5); >+ float atan_c = 0.0; >+ float scale = 1.0; >+ float sign = 1.0; >+ vec4 result; >+ >+ if(c < 0.0) >+ { >+ sign = -1.0; >+ c *= -1.0; >+ } >+ >+ if(c <= 1.0) >+ { >+ // Taylors series expansion for atan >+ for(int i = 1; i < 12; i += 2) >+ { >+ atan_c += scale * pow(c, float(i)) / float(i); >+ scale *= -1.0; >+ } >+ >+ result = vec4(sign * atan_c / M_PI + 0.5, 0.0, 0.0, 1.0); >+ } >+ else >+ { >+ c = 1.0 / c; >+ >+ // Taylors series expansion for atan >+ for(int i = 1; i < 12; i += 2) >+ { >+ atan_c += scale * pow(c, float(i)) / float(i); >+ scale *= -1.0; >+ } >+ >+ result = vec4(sign * (M_PI / 2.0 - atan_c) / M_PI + 0.5, 0.0, 0.0, 1.0); >+ } >+ >+ color = result; >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_vert_xvaryyvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_vert_xvaryyvary.vert >new file mode 100644 >index 00000000000..183da334369 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_vert_xvaryyvary.vert >@@ -0,0 +1,46 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float x = 2.0 * (gtf_Color.g - 0.5); >+ float y = 2.0 * (gtf_Color.b - 0.5); >+ const float epsilon = 1.0e-4; >+ color = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ // Avoid evaluating atan(0, x) for x < epsilon because it's implementation-dependent >+ if(x > epsilon || abs(y) > epsilon) >+ { >+ color = vec4(atan(y, x) / (2.0 * M_PI) + 0.5, 0.0, 0.0, 1.0); >+ } >+ >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_vert_xvaryyvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_vert_xvaryyvary_ref.vert >new file mode 100644 >index 00000000000..c45e98f0aec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_float_vert_xvaryyvary_ref.vert >@@ -0,0 +1,85 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float x = 2.0 * (gtf_Color.g - 0.5); >+ float y = 2.0 * (gtf_Color.b - 0.5); >+ float atan_c = 0.0; >+ float scale = 1.0; >+ float sign = 1.0; >+ vec4 result = vec4(0.0, 0.0, 0.0, 1.0); >+ const float epsilon = 1.0e-4; >+ >+ // Avoid evaluating atan(0, x) for x < epsilon because it's implementation-dependent >+ if(x > epsilon || abs(y) > epsilon) >+ { >+ if(x < 0.0 ^^ y < 0.0) >+ { >+ sign = -1.0; >+ } >+ >+ if(abs(y) <= abs(x)) >+ { >+ float c = abs(y / x); >+ >+ // Taylors series expansion for atan >+ for(int i = 1; i < 12; i += 2) >+ { >+ atan_c += scale * pow(c, float(i)) / float(i); >+ scale *= -1.0; >+ } >+ >+ result = vec4(sign * atan_c / (2.0 * M_PI) + 0.5, 0.0, 0.0, 1.0); >+ } >+ else >+ { >+ float c = abs(x / y); >+ >+ // Taylors series expansion for atan >+ for(int i = 1; i < 12; i += 2) >+ { >+ atan_c += scale * pow(c, float(i)) / float(i); >+ scale *= -1.0; >+ } >+ >+ result = vec4(sign * (M_PI / 2.0 - atan_c) / (2.0 * M_PI) + 0.5, 0.0, 0.0, 1.0); >+ } >+ >+ if(x < 0.0) >+ if(y < 0.0) result.r -= 0.5; >+ else if(y > 0.0) result.r += 0.5; >+ } >+ >+ color = result; >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_frag_xvary.frag >new file mode 100644 >index 00000000000..2801a4938e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_frag_xvary.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 c = 4.0 * 2.0 * (color.rg - 0.5); >+ gl_FragColor = vec4(atan(c) / M_PI + 0.5, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..96771584f56 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_frag_xvary_ref.frag >@@ -0,0 +1,132 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 c = 4.0 * 2.0 * (color.rg - 0.5); >+ vec2 atan_c = vec2(0.0); >+ vec2 scale = vec2(1.0); >+ vec2 sign = vec2(1.0); >+ vec4 result = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ if(c[0] < 0.0) >+ { >+ sign[0] = -1.0; >+ c[0] *= -1.0; >+ } >+ >+ if(c[0] <= 1.0) >+ { >+ // Taylors series expansion for atan >+ atan_c[0] += scale[0] * pow(c[0], float(1)) / float(1); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(3)) / float(3); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(5)) / float(5); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(7)) / float(7); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(9)) / float(9); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(11)) / float(11); >+ scale[0] *= -1.0; >+ >+ result[0] = sign[0] * atan_c[0] / M_PI + 0.5; >+ } >+ else >+ { >+ c[0] = 1.0 / c[0]; >+ >+ // Taylors series expansion for atan >+ atan_c[0] += scale[0] * pow(c[0], float(1)) / float(1); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(3)) / float(3); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(5)) / float(5); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(7)) / float(7); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(9)) / float(9); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(11)) / float(11); >+ scale[0] *= -1.0; >+ >+ result[0] = sign[0] * (M_PI / 2.0 - atan_c[0]) / M_PI + 0.5; >+ } >+ >+ >+ if(c[1] < 0.0) >+ { >+ sign[1] = -1.0; >+ c[1] *= -1.0; >+ } >+ >+ if(c[1] <= 1.0) >+ { >+ // Taylors series expansion for atan >+ atan_c[1] += scale[1] * pow(c[1], float(1)) / float(1); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(3)) / float(3); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(5)) / float(5); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(7)) / float(7); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(9)) / float(9); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(11)) / float(11); >+ scale[1] *= -1.0; >+ >+ result[1] = sign[1] * atan_c[1] / M_PI + 0.5; >+ } >+ else >+ { >+ c[1] = 1.0 / c[1]; >+ >+ // Taylors series expansion for atan >+ atan_c[1] += scale[1] * pow(c[1], float(1)) / float(1); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(3)) / float(3); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(5)) / float(5); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(7)) / float(7); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(9)) / float(9); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(11)) / float(11); >+ scale[1] *= -1.0; >+ >+ result[1] = sign[1] * (M_PI / 2.0 - atan_c[1]) / M_PI + 0.5; >+ } >+ >+ gl_FragColor = result; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_frag_xvaryyvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_frag_xvaryyvary.frag >new file mode 100644 >index 00000000000..c851ff070fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_frag_xvaryyvary.frag >@@ -0,0 +1,49 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 x = 2.0 * (color.gg - 0.5); >+ vec2 y = 2.0 * (color.bb - 0.5); >+ const float epsilon = 1.0e-4; >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ // Avoid evaluating atan(0, x) for x < epsilon because it's implementation-dependent >+ if(x[0] > epsilon || abs(y[0]) > epsilon) >+ { >+ gl_FragColor[0] = atan(y[0], x[0]) / (2.0 * M_PI) + 0.5; >+ } >+ >+ if(x[1] > epsilon || abs(y[1]) > epsilon) >+ { >+ gl_FragColor[1] = atan(y[1], x[1]) / (2.0 * M_PI) + 0.5; >+ } >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_frag_xvaryyvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_frag_xvaryyvary_ref.frag >new file mode 100644 >index 00000000000..0e16fd84da3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_frag_xvaryyvary_ref.frag >@@ -0,0 +1,150 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 x = 2.0 * (color.gg - 0.5); >+ vec2 y = 2.0 * (color.bb - 0.5); >+ vec2 c; >+ vec2 atan_c = vec2(0.0); >+ vec2 scale = vec2(1.0); >+ vec2 sign = vec2(1.0); >+ vec4 result = vec4(0.0, 0.0, 0.0, 1.0); >+ const float epsilon = 1.0e-4; >+ >+ // Avoid evaluating atan(0, x) for x < epsilon because it's implementation-dependent >+ if(x[0] > epsilon || abs(y[0]) > epsilon) >+ { >+ if(x[0] < 0.0 ^^ y[0] < 0.0) >+ { >+ sign[0] = -1.0; >+ } >+ >+ if(abs(y[0]) <= abs(x[0])) >+ { >+ c[0] = abs(y[0] / x[0]); >+ // Taylors series expansion for atan >+ atan_c[0] += scale[0] * pow(c[0], float(1)) / float(1); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(3)) / float(3); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(5)) / float(5); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(7)) / float(7); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(9)) / float(9); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(11)) / float(11); >+ scale[0] *= -1.0; >+ >+ result[0] = sign[0] * atan_c[0] / (2.0 * M_PI) + 0.5; >+ } >+ else >+ { >+ c[0] = abs(x[0] / y[0]); >+ >+ // Taylors series expansion for atan >+ atan_c[0] += scale[0] * pow(c[0], float(1)) / float(1); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(3)) / float(3); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(5)) / float(5); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(7)) / float(7); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(9)) / float(9); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(11)) / float(11); >+ scale[0] *= -1.0; >+ >+ result[0] = sign[0] * (M_PI / 2.0 - atan_c[0]) / (2.0 * M_PI) + 0.5; >+ } >+ >+ if(x[0] < 0.0) >+ if(y[0] < 0.0) result[0] -= 0.5; >+ else if(y[0] > 0.0) result[0] += 0.5; >+ } >+ >+ if(x[1] > epsilon || abs(y[1]) > epsilon) >+ { >+ >+ if(x[1] < 0.0 ^^ y[1] < 0.0) >+ { >+ sign[1] = -1.0; >+ } >+ >+ if(abs(y[1]) <= abs(x[1])) >+ { >+ c[1] = abs(y[1] / x[1]); >+ // Taylors series expansion for atan >+ atan_c[1] += scale[1] * pow(c[1], float(1)) / float(1); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(3)) / float(3); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(5)) / float(5); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(7)) / float(7); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(9)) / float(9); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(11)) / float(11); >+ scale[1] *= -1.0; >+ >+ result[1] = sign[1] * atan_c[1] / (2.0 * M_PI) + 0.5; >+ } >+ else >+ { >+ c[1] = abs(x[1] / y[1]); >+ >+ // Taylors series expansion for atan >+ atan_c[1] += scale[1] * pow(c[1], float(1)) / float(1); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(3)) / float(3); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(5)) / float(5); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(7)) / float(7); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(9)) / float(9); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(11)) / float(11); >+ scale[1] *= -1.0; >+ >+ result[1] = sign[1] * (M_PI / 2.0 - atan_c[1]) / (2.0 * M_PI) + 0.5; >+ } >+ >+ if(x[1] < 0.0) >+ if(y[1] < 0.0) result[1] -= 0.5; >+ else if(y[1] > 0.0) result[1] += 0.5; >+ } >+ >+ gl_FragColor = result; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_vert_xvary.vert >new file mode 100644 >index 00000000000..c9740e5db16 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_vert_xvary.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 c = 4.0 * 2.0 * (gtf_Color.rg - 0.5); >+ color = vec4(atan(c) / M_PI + 0.5, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..f3ba4ce87ce >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_vert_xvary_ref.vert >@@ -0,0 +1,133 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 c = 4.0 * 2.0 * (gtf_Color.rg - 0.5); >+ vec2 atan_c = vec2(0.0); >+ vec2 scale = vec2(1.0); >+ vec2 sign = vec2(1.0); >+ vec4 result = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ if(c[0] < 0.0) >+ { >+ sign[0] = -1.0; >+ c[0] *= -1.0; >+ } >+ >+ if(c[0] <= 1.0) >+ { >+ // Taylors series expansion for atan >+ atan_c[0] += scale[0] * pow(c[0], float(1)) / float(1); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(3)) / float(3); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(5)) / float(5); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(7)) / float(7); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(9)) / float(9); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(11)) / float(11); >+ scale[0] *= -1.0; >+ >+ result[0] = sign[0] * atan_c[0] / M_PI + 0.5; >+ } >+ else >+ { >+ c[0] = 1.0 / c[0]; >+ >+ // Taylors series expansion for atan >+ atan_c[0] += scale[0] * pow(c[0], float(1)) / float(1); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(3)) / float(3); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(5)) / float(5); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(7)) / float(7); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(9)) / float(9); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(11)) / float(11); >+ scale[0] *= -1.0; >+ >+ result[0] = sign[0] * (M_PI / 2.0 - atan_c[0]) / M_PI + 0.5; >+ } >+ >+ >+ if(c[1] < 0.0) >+ { >+ sign[1] = -1.0; >+ c[1] *= -1.0; >+ } >+ >+ if(c[1] <= 1.0) >+ { >+ // Taylors series expansion for atan >+ atan_c[1] += scale[1] * pow(c[1], float(1)) / float(1); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(3)) / float(3); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(5)) / float(5); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(7)) / float(7); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(9)) / float(9); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(11)) / float(11); >+ scale[1] *= -1.0; >+ >+ result[1] = sign[1] * atan_c[1] / M_PI + 0.5; >+ } >+ else >+ { >+ c[1] = 1.0 / c[1]; >+ >+ // Taylors series expansion for atan >+ atan_c[1] += scale[1] * pow(c[1], float(1)) / float(1); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(3)) / float(3); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(5)) / float(5); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(7)) / float(7); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(9)) / float(9); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(11)) / float(11); >+ scale[1] *= -1.0; >+ >+ result[1] = sign[1] * (M_PI / 2.0 - atan_c[1]) / M_PI + 0.5; >+ } >+ >+ color = result; >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_vert_xvaryyvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_vert_xvaryyvary.vert >new file mode 100644 >index 00000000000..a56b33c9f18 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_vert_xvaryyvary.vert >@@ -0,0 +1,51 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 x = 2.0 * (gtf_Color.gg - 0.5); >+ vec2 y = 2.0 * (gtf_Color.bb - 0.5); >+ const float epsilon = 1.0e-4; >+ color = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ // Avoid evaluating atan(0, x) for x < epsilon because it's implementation-dependent >+ if(x[0] > epsilon || abs(y[0]) > epsilon) >+ { >+ color[0] = atan(y[0], x[0]) / (2.0 * M_PI) + 0.5; >+ } >+ >+ if(x[1] > epsilon || abs(y[1]) > epsilon) >+ { >+ color[1] = atan(y[1], x[1]) / (2.0 * M_PI) + 0.5; >+ } >+ >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_vert_xvaryyvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_vert_xvaryyvary_ref.vert >new file mode 100644 >index 00000000000..790b4a74381 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec2_vert_xvaryyvary_ref.vert >@@ -0,0 +1,150 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 x = 2.0 * (gtf_Color.gg - 0.5); >+ vec2 y = 2.0 * (gtf_Color.bb - 0.5); >+ vec2 c; >+ vec2 atan_c = vec2(0.0); >+ vec2 scale = vec2(1.0); >+ vec2 sign = vec2(1.0); >+ vec4 result = vec4(0.0, 0.0, 0.0, 1.0); >+ const float epsilon = 1.0e-4; >+ >+ // Avoid evaluating atan(0, x) for x < epsilon because it's implementation-dependent >+ if(x[0] > epsilon || abs(y[0]) > epsilon) >+ { >+ if(x[0] < 0.0 ^^ y[0] < 0.0) >+ { >+ sign[0] = -1.0; >+ } >+ >+ if(abs(y[0]) <= abs(x[0])) >+ { >+ c[0] = abs(y[0] / x[0]); >+ // Taylors series expansion for atan >+ atan_c[0] += scale[0] * pow(c[0], float(1)) / float(1); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(3)) / float(3); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(5)) / float(5); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(7)) / float(7); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(9)) / float(9); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(11)) / float(11); >+ scale[0] *= -1.0; >+ >+ result[0] = sign[0] * atan_c[0] / (2.0 * M_PI) + 0.5; >+ } >+ else >+ { >+ c[0] = abs(x[0] / y[0]); >+ >+ // Taylors series expansion for atan >+ atan_c[0] += scale[0] * pow(c[0], float(1)) / float(1); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(3)) / float(3); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(5)) / float(5); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(7)) / float(7); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(9)) / float(9); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(11)) / float(11); >+ scale[0] *= -1.0; >+ >+ result[0] = sign[0] * (M_PI / 2.0 - atan_c[0]) / (2.0 * M_PI) + 0.5; >+ } >+ >+ if(x[0] < 0.0) >+ if(y[0] < 0.0) result[0] -= 0.5; >+ else if(y[0] > 0.0) result[0] += 0.5; >+ } >+ >+ if(x[1] > epsilon || abs(y[1]) > epsilon) >+ { >+ if(x[1] < 0.0 ^^ y[1] < 0.0) >+ { >+ sign[1] = -1.0; >+ } >+ >+ if(abs(y[1]) <= abs(x[1])) >+ { >+ c[1] = abs(y[1] / x[1]); >+ // Taylors series expansion for atan >+ atan_c[1] += scale[1] * pow(c[1], float(1)) / float(1); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(3)) / float(3); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(5)) / float(5); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(7)) / float(7); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(9)) / float(9); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(11)) / float(11); >+ scale[1] *= -1.0; >+ >+ result[1] = sign[1] * atan_c[1] / (2.0 * M_PI) + 0.5; >+ } >+ else >+ { >+ c[1] = abs(x[1] / y[1]); >+ >+ // Taylors series expansion for atan >+ atan_c[1] += scale[1] * pow(c[1], float(1)) / float(1); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(3)) / float(3); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(5)) / float(5); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(7)) / float(7); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(9)) / float(9); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(11)) / float(11); >+ scale[1] *= -1.0; >+ >+ result[1] = sign[1] * (M_PI / 2.0 - atan_c[1]) / (2.0 * M_PI) + 0.5; >+ } >+ >+ if(x[1] < 0.0) >+ if(y[1] < 0.0) result[1] -= 0.5; >+ else if(y[1] > 0.0) result[1] += 0.5; >+ } >+ >+ color = result; >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_frag_xvary.frag >new file mode 100644 >index 00000000000..281ae2e62d1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_frag_xvary.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 c = 4.0 * 2.0 * (color.rgb - 0.5); >+ gl_FragColor = vec4(atan(c) / M_PI + 0.5, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..c8484b8dcf1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_frag_xvary_ref.frag >@@ -0,0 +1,178 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 c = 4.0 * 2.0 * (color.rgb - 0.5); >+ vec3 atan_c = vec3(0.0); >+ vec3 scale = vec3(1.0); >+ vec3 sign = vec3(1.0); >+ vec4 result = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ >+ if(c[0] < 0.0) >+ { >+ sign[0] = -1.0; >+ c[0] *= -1.0; >+ } >+ >+ if(c[0] <= 1.0) >+ { >+ // Taylors series expansion for atan >+ atan_c[0] += scale[0] * pow(c[0], float(1)) / float(1); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(3)) / float(3); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(5)) / float(5); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(7)) / float(7); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(9)) / float(9); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(11)) / float(11); >+ scale[0] *= -1.0; >+ >+ result[0] = sign[0] * atan_c[0] / M_PI + 0.5; >+ } >+ else >+ { >+ c[0] = 1.0 / c[0]; >+ >+ // Taylors series expansion for atan >+ atan_c[0] += scale[0] * pow(c[0], float(1)) / float(1); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(3)) / float(3); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(5)) / float(5); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(7)) / float(7); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(9)) / float(9); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(11)) / float(11); >+ scale[0] *= -1.0; >+ >+ result[0] = sign[0] * (M_PI / 2.0 - atan_c[0]) / M_PI + 0.5; >+ } >+ >+ if(c[1] < 0.0) >+ { >+ sign[1] = -1.0; >+ c[1] *= -1.0; >+ } >+ >+ if(c[1] <= 1.0) >+ { >+ // Taylors series expansion for atan >+ atan_c[1] += scale[1] * pow(c[1], float(1)) / float(1); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(3)) / float(3); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(5)) / float(5); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(7)) / float(7); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(9)) / float(9); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(11)) / float(11); >+ scale[1] *= -1.0; >+ >+ result[1] = sign[1] * atan_c[1] / M_PI + 0.5; >+ } >+ else >+ { >+ c[1] = 1.0 / c[1]; >+ >+ // Taylors series expansion for atan >+ atan_c[1] += scale[1] * pow(c[1], float(1)) / float(1); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(3)) / float(3); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(5)) / float(5); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(7)) / float(7); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(9)) / float(9); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(11)) / float(11); >+ scale[1] *= -1.0; >+ >+ result[1] = sign[1] * (M_PI / 2.0 - atan_c[1]) / M_PI + 0.5; >+ } >+ >+ >+ if(c[2] < 0.0) >+ { >+ sign[2] = -1.0; >+ c[2] *= -1.0; >+ } >+ >+ if(c[2] <= 1.0) >+ { >+ // Taylors series expansion for atan >+ atan_c[2] += scale[2] * pow(c[2], float(1)) / float(1); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(3)) / float(3); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(5)) / float(5); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(7)) / float(7); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(9)) / float(9); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(11)) / float(11); >+ scale[2] *= -1.0; >+ >+ result[2] = sign[2] * atan_c[2] / M_PI + 0.5; >+ } >+ else >+ { >+ c[2] = 1.0 / c[2]; >+ >+ // Taylors series expansion for atan >+ atan_c[2] += scale[2] * pow(c[2], float(1)) / float(1); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(3)) / float(3); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(5)) / float(5); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(7)) / float(7); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(9)) / float(9); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(11)) / float(11); >+ scale[2] *= -1.0; >+ >+ result[2] = sign[2] * (M_PI / 2.0 - atan_c[2]) / M_PI + 0.5; >+ } >+ >+ gl_FragColor = result; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_frag_xvaryyvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_frag_xvaryyvary.frag >new file mode 100644 >index 00000000000..08a18b8a3c4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_frag_xvaryyvary.frag >@@ -0,0 +1,54 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 x = 2.0 * (color.ggg - 0.5); >+ vec3 y = 2.0 * (color.bbb - 0.5); >+ const float epsilon = 1.0e-4; >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ // Avoid evaluating atan(0, x) for x < epsilon because it's implementation-dependent >+ if(x[0] > epsilon || abs(y[0]) > epsilon) >+ { >+ gl_FragColor[0] = atan(y[0], x[0]) / (2.0 * M_PI) + 0.5; >+ } >+ >+ if(x[1] > epsilon || abs(y[1]) > epsilon) >+ { >+ gl_FragColor[1] = atan(y[1], x[1]) / (2.0 * M_PI) + 0.5; >+ } >+ >+ if(x[2] > epsilon || abs(y[2]) > epsilon) >+ { >+ gl_FragColor[2] = atan(y[2], x[2]) / (2.0 * M_PI) + 0.5; >+ } >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_frag_xvaryyvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_frag_xvaryyvary_ref.frag >new file mode 100644 >index 00000000000..9a97bb2bef4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_frag_xvaryyvary_ref.frag >@@ -0,0 +1,203 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 x = 2.0 * (color.ggg - 0.5); >+ vec3 y = 2.0 * (color.bbb - 0.5); >+ vec3 c; >+ vec3 atan_c = vec3(0.0); >+ vec3 scale = vec3(1.0); >+ vec3 sign = vec3(1.0); >+ vec4 result = vec4(0.0, 0.0, 0.0, 1.0); >+ const float epsilon = 1.0e-4; >+ >+ // Avoid evaluating atan(0, x) for x < epsilon because it's implementation-dependent >+ if(x[0] > epsilon || abs(y[0]) > epsilon) >+ { >+ if(x[0] < 0.0 ^^ y[0] < 0.0) >+ { >+ sign[0] = -1.0; >+ } >+ >+ if(abs(y[0]) <= abs(x[0])) >+ { >+ c[0] = abs(y[0] / x[0]); >+ // Taylors series expansion for atan >+ atan_c[0] += scale[0] * pow(c[0], float(1)) / float(1); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(3)) / float(3); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(5)) / float(5); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(7)) / float(7); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(9)) / float(9); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(11)) / float(11); >+ scale[0] *= -1.0; >+ >+ result[0] = sign[0] * atan_c[0] / (2.0 * M_PI) + 0.5; >+ } >+ else >+ { >+ c[0] = abs(x[0] / y[0]); >+ >+ // Taylors series expansion for atan >+ atan_c[0] += scale[0] * pow(c[0], float(1)) / float(1); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(3)) / float(3); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(5)) / float(5); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(7)) / float(7); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(9)) / float(9); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(11)) / float(11); >+ scale[0] *= -1.0; >+ >+ result[0] = sign[0] * (M_PI / 2.0 - atan_c[0]) / (2.0 * M_PI) + 0.5; >+ } >+ >+ if(x[0] < 0.0) >+ if(y[0] < 0.0) result[0] -= 0.5; >+ else if(y[0] > 0.0) result[0] += 0.5; >+ } >+ >+ if(x[1] > epsilon || abs(y[1]) > epsilon) >+ { >+ >+ if(x[1] < 0.0 ^^ y[1] < 0.0) >+ { >+ sign[1] = -1.0; >+ } >+ >+ if(abs(y[1]) <= abs(x[1])) >+ { >+ c[1] = abs(y[1] / x[1]); >+ // Taylors series expansion for atan >+ atan_c[1] += scale[1] * pow(c[1], float(1)) / float(1); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(3)) / float(3); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(5)) / float(5); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(7)) / float(7); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(9)) / float(9); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(11)) / float(11); >+ scale[1] *= -1.0; >+ >+ result[1] = sign[1] * atan_c[1] / (2.0 * M_PI) + 0.5; >+ } >+ else >+ { >+ c[1] = abs(x[1] / y[1]); >+ >+ // Taylors series expansion for atan >+ atan_c[1] += scale[1] * pow(c[1], float(1)) / float(1); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(3)) / float(3); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(5)) / float(5); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(7)) / float(7); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(9)) / float(9); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(11)) / float(11); >+ scale[1] *= -1.0; >+ >+ result[1] = sign[1] * (M_PI / 2.0 - atan_c[1]) / (2.0 * M_PI) + 0.5; >+ } >+ >+ if(x[1] < 0.0) >+ if(y[1] < 0.0) result[1] -= 0.5; >+ else if(y[1] > 0.0) result[1] += 0.5; >+ } >+ >+ if(x[2] > epsilon || abs(y[2]) > epsilon) >+ { >+ >+ if(x[2] < 0.0 ^^ y[2] < 0.0) >+ { >+ sign[2] = -1.0; >+ } >+ >+ if(abs(y[2]) <= abs(x[2])) >+ { >+ c[2] = abs(y[2] / x[2]); >+ // Taylors series expansion for atan >+ atan_c[2] += scale[2] * pow(c[2], float(1)) / float(1); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(3)) / float(3); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(5)) / float(5); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(7)) / float(7); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(9)) / float(9); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(11)) / float(11); >+ scale[2] *= -1.0; >+ >+ result[2] = sign[2] * atan_c[2] / (2.0 * M_PI) + 0.5; >+ } >+ else >+ { >+ c[2] = abs(x[2] / y[2]); >+ >+ // Taylors series expansion for atan >+ atan_c[2] += scale[2] * pow(c[2], float(1)) / float(1); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(3)) / float(3); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(5)) / float(5); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(7)) / float(7); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(9)) / float(9); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(11)) / float(11); >+ scale[2] *= -1.0; >+ >+ result[2] = sign[2] * (M_PI / 2.0 - atan_c[2]) / (2.0 * M_PI) + 0.5; >+ } >+ >+ if(x[2] < 0.0) >+ if(y[2] < 0.0) result[2] -= 0.5; >+ else if(y[2] > 0.0) result[2] += 0.5; >+ } >+ >+ gl_FragColor = result; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_vert_xvary.vert >new file mode 100644 >index 00000000000..ad0d327872b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_vert_xvary.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 c = 4.0 * 2.0 * (gtf_Color.rgb - 0.5); >+ color = vec4(atan(c) / M_PI + 0.5, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..34a6ca3e918 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_vert_xvary_ref.vert >@@ -0,0 +1,178 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 c = 4.0 * 2.0 * (gtf_Color.rgb - 0.5); >+ vec3 atan_c = vec3(0.0); >+ vec3 scale = vec3(1.0); >+ vec3 sign = vec3(1.0); >+ vec4 result = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ if(c[0] < 0.0) >+ { >+ sign[0] = -1.0; >+ c[0] *= -1.0; >+ } >+ >+ if(c[0] <= 1.0) >+ { >+ // Taylors series expansion for atan >+ atan_c[0] += scale[0] * pow(c[0], float(1)) / float(1); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(3)) / float(3); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(5)) / float(5); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(7)) / float(7); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(9)) / float(9); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(11)) / float(11); >+ scale[0] *= -1.0; >+ >+ result[0] = sign[0] * atan_c[0] / M_PI + 0.5; >+ } >+ else >+ { >+ c[0] = 1.0 / c[0]; >+ >+ // Taylors series expansion for atan >+ atan_c[0] += scale[0] * pow(c[0], float(1)) / float(1); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(3)) / float(3); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(5)) / float(5); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(7)) / float(7); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(9)) / float(9); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(11)) / float(11); >+ scale[0] *= -1.0; >+ >+ result[0] = sign[0] * (M_PI / 2.0 - atan_c[0]) / M_PI + 0.5; >+ } >+ >+ >+ if(c[1] < 0.0) >+ { >+ sign[1] = -1.0; >+ c[1] *= -1.0; >+ } >+ >+ if(c[1] <= 1.0) >+ { >+ // Taylors series expansion for atan >+ atan_c[1] += scale[1] * pow(c[1], float(1)) / float(1); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(3)) / float(3); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(5)) / float(5); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(7)) / float(7); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(9)) / float(9); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(11)) / float(11); >+ scale[1] *= -1.0; >+ >+ result[1] = sign[1] * atan_c[1] / M_PI + 0.5; >+ } >+ else >+ { >+ c[1] = 1.0 / c[1]; >+ >+ // Taylors series expansion for atan >+ atan_c[1] += scale[1] * pow(c[1], float(1)) / float(1); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(3)) / float(3); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(5)) / float(5); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(7)) / float(7); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(9)) / float(9); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(11)) / float(11); >+ scale[1] *= -1.0; >+ >+ result[1] = sign[1] * (M_PI / 2.0 - atan_c[1]) / M_PI + 0.5; >+ } >+ >+ if(c[2] < 0.0) >+ { >+ sign[2] = -1.0; >+ c[2] *= -1.0; >+ } >+ >+ if(c[2] <= 1.0) >+ { >+ // Taylors series expansion for atan >+ atan_c[2] += scale[2] * pow(c[2], float(1)) / float(1); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(3)) / float(3); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(5)) / float(5); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(7)) / float(7); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(9)) / float(9); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(11)) / float(11); >+ scale[2] *= -1.0; >+ >+ result[2] = sign[2] * atan_c[2] / M_PI + 0.5; >+ } >+ else >+ { >+ c[2] = 1.0 / c[2]; >+ >+ // Taylors series expansion for atan >+ atan_c[2] += scale[2] * pow(c[2], float(1)) / float(1); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(3)) / float(3); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(5)) / float(5); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(7)) / float(7); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(9)) / float(9); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(11)) / float(11); >+ scale[2] *= -1.0; >+ >+ result[2] = sign[2] * (M_PI / 2.0 - atan_c[2]) / M_PI + 0.5; >+ } >+ >+ color = result; >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_vert_xvaryyvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_vert_xvaryyvary.vert >new file mode 100644 >index 00000000000..1b19a4c2f8a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_vert_xvaryyvary.vert >@@ -0,0 +1,56 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 x = 2.0 * (gtf_Color.ggg - 0.5); >+ vec3 y = 2.0 * (gtf_Color.bbb - 0.5); >+ const float epsilon = 1.0e-4; >+ color = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ // Avoid evaluating atan(0, x) for x < epsilon because it's implementation-dependent >+ if(x[0] > epsilon || abs(y[0]) > epsilon) >+ { >+ color[0] = atan(y[0], x[0]) / (2.0 * M_PI) + 0.5; >+ } >+ >+ if(x[1] > epsilon || abs(y[1]) > epsilon) >+ { >+ color[1] = atan(y[1], x[1]) / (2.0 * M_PI) + 0.5; >+ } >+ >+ if(x[2] > epsilon || abs(y[2]) > epsilon) >+ { >+ color[2] = atan(y[2], x[2]) / (2.0 * M_PI) + 0.5; >+ } >+ >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_vert_xvaryyvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_vert_xvaryyvary_ref.vert >new file mode 100644 >index 00000000000..d36106f721c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/atan_vec3_vert_xvaryyvary_ref.vert >@@ -0,0 +1,202 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+attribute vec4 gtf_Color; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 x = 2.0 * (gtf_Color.ggg - 0.5); >+ vec3 y = 2.0 * (gtf_Color.bbb - 0.5); >+ vec3 c; >+ vec3 atan_c = vec3(0.0); >+ vec3 scale = vec3(1.0); >+ vec3 sign = vec3(1.0); >+ vec4 result = vec4(0.0, 0.0, 0.0, 1.0); >+ const float epsilon = 1.0e-4; >+ >+ // Avoid evaluating atan(0, x) for x < epsilon because it's implementation-dependent >+ if(x[0] > epsilon || abs(y[0]) > epsilon) >+ { >+ if(x[0] < 0.0 ^^ y[0] < 0.0) >+ { >+ sign[0] = -1.0; >+ } >+ >+ if(abs(y[0]) <= abs(x[0])) >+ { >+ c[0] = abs(y[0] / x[0]); >+ // Taylors series expansion for atan >+ atan_c[0] += scale[0] * pow(c[0], float(1)) / float(1); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(3)) / float(3); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(5)) / float(5); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(7)) / float(7); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(9)) / float(9); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(11)) / float(11); >+ scale[0] *= -1.0; >+ >+ result[0] = sign[0] * atan_c[0] / (2.0 * M_PI) + 0.5; >+ } >+ else >+ { >+ c[0] = abs(x[0] / y[0]); >+ >+ // Taylors series expansion for atan >+ atan_c[0] += scale[0] * pow(c[0], float(1)) / float(1); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(3)) / float(3); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(5)) / float(5); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(7)) / float(7); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(9)) / float(9); >+ scale[0] *= -1.0; >+ atan_c[0] += scale[0] * pow(c[0], float(11)) / float(11); >+ scale[0] *= -1.0; >+ >+ result[0] = sign[0] * (M_PI / 2.0 - atan_c[0]) / (2.0 * M_PI) + 0.5; >+ } >+ >+ if(x[0] < 0.0) >+ if(y[0] < 0.0) result[0] -= 0.5; >+ else if(y[0] > 0.0) result[0] += 0.5; >+ } >+ >+ if(x[1] > epsilon || abs(y[1]) > epsilon) >+ { >+ if(x[1] < 0.0 ^^ y[1] < 0.0) >+ { >+ sign[1] = -1.0; >+ } >+ >+ if(abs(y[1]) <= abs(x[1])) >+ { >+ c[1] = abs(y[1] / x[1]); >+ // Taylors series expansion for atan >+ atan_c[1] += scale[1] * pow(c[1], float(1)) / float(1); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(3)) / float(3); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(5)) / float(5); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(7)) / float(7); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(9)) / float(9); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(11)) / float(11); >+ scale[1] *= -1.0; >+ >+ result[1] = sign[1] * atan_c[1] / (2.0 * M_PI) + 0.5; >+ } >+ else >+ { >+ c[1] = abs(x[1] / y[1]); >+ >+ // Taylors series expansion for atan >+ atan_c[1] += scale[1] * pow(c[1], float(1)) / float(1); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(3)) / float(3); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(5)) / float(5); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(7)) / float(7); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(9)) / float(9); >+ scale[1] *= -1.0; >+ atan_c[1] += scale[1] * pow(c[1], float(11)) / float(11); >+ scale[1] *= -1.0; >+ >+ result[1] = sign[1] * (M_PI / 2.0 - atan_c[1]) / (2.0 * M_PI) + 0.5; >+ } >+ >+ if(x[1] < 0.0) >+ if(y[1] < 0.0) result[1] -= 0.5; >+ else if(y[1] > 0.0) result[1] += 0.5; >+ } >+ >+ if(x[2] > epsilon || abs(y[2]) > epsilon) >+ { >+ if(x[2] < 0.0 ^^ y[2] < 0.0) >+ { >+ sign[2] = -1.0; >+ } >+ >+ if(abs(y[2]) <= abs(x[2])) >+ { >+ c[2] = abs(y[2] / x[2]); >+ // Taylors series expansion for atan >+ atan_c[2] += scale[2] * pow(c[2], float(1)) / float(1); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(3)) / float(3); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(5)) / float(5); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(7)) / float(7); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(9)) / float(9); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(11)) / float(11); >+ scale[2] *= -1.0; >+ >+ result[2] = sign[2] * atan_c[2] / (2.0 * M_PI) + 0.5; >+ } >+ else >+ { >+ c[2] = abs(x[2] / y[2]); >+ >+ // Taylors series expansion for atan >+ atan_c[2] += scale[2] * pow(c[2], float(1)) / float(1); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(3)) / float(3); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(5)) / float(5); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(7)) / float(7); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(9)) / float(9); >+ scale[2] *= -1.0; >+ atan_c[2] += scale[2] * pow(c[2], float(11)) / float(11); >+ scale[2] *= -1.0; >+ >+ result[2] = sign[2] * (M_PI / 2.0 - atan_c[2]) / (2.0 * M_PI) + 0.5; >+ } >+ >+ if(x[2] < 0.0) >+ if(y[2] < 0.0) result[2] -= 0.5; >+ else if(y[2] > 0.0) result[2] += 0.5; >+ } >+ >+ color = result; >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/input.run.txt >new file mode 100644 >index 00000000000..1c305f21117 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/atan/input.run.txt >@@ -0,0 +1,3 @@ >+# this file is auto-generated. DO NOT EDIT. >+atan_001_to_008.html >+atan_009_to_012.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/biConstants_001_to_008.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/biConstants_001_to_008.html >new file mode 100644 >index 00000000000..d03c779cbbe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/biConstants_001_to_008.html >@@ -0,0 +1,251 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: biConstants_001_to_008.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "gl_MaxCombinedTextureImageUnits_frag.frag" >+ }, >+ "name": "gl_MaxCombinedTextureImageUnits_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "gl_MaxCombinedTextureImageUnits_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "gl_MaxCombinedTextureImageUnits_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "gl_MaxDrawBuffers_frag.frag" >+ }, >+ "name": "gl_MaxDrawBuffers_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "gl_MaxDrawBuffers_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "gl_MaxDrawBuffers_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "gl_MaxFragmentUniformVectors_frag.frag" >+ }, >+ "name": "gl_MaxFragmentUniformVectors_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "gl_MaxFragmentUniformVectors_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "gl_MaxFragmentUniformVectors_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "gl_MaxTextureImageUnits_frag.frag" >+ }, >+ "name": "gl_MaxTextureImageUnits_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "gl_MaxTextureImageUnits_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "gl_MaxTextureImageUnits_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/biConstants_009_to_016.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/biConstants_009_to_016.html >new file mode 100644 >index 00000000000..d6884506799 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/biConstants_009_to_016.html >@@ -0,0 +1,251 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: biConstants_009_to_016.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "gl_MaxVaryingVectors_frag.frag" >+ }, >+ "name": "gl_MaxVaryingVectors_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "gl_MaxVaryingVectors_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "gl_MaxVaryingVectors_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "gl_MaxVertexAttribs_frag.frag" >+ }, >+ "name": "gl_MaxVertexAttribs_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "gl_MaxVertexAttribs_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "gl_MaxVertexAttribs_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "gl_MaxVertexTextureImageUnits_frag.frag" >+ }, >+ "name": "gl_MaxVertexTextureImageUnits_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "gl_MaxVertexTextureImageUnits_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "gl_MaxVertexTextureImageUnits_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "gl_MaxVertexUniformVectors_frag.frag" >+ }, >+ "name": "gl_MaxVertexUniformVectors_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "gl_MaxVertexUniformVectors_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "gl_MaxVertexUniformVectors_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxCombinedTextureImageUnits_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxCombinedTextureImageUnits_frag.frag >new file mode 100644 >index 00000000000..94e9c6d0ee0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxCombinedTextureImageUnits_frag.frag >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ // This test verifies that gl_MaxCombinedTextureImageUnits is set and that its >+ // value is greater than or equal to the minimum value. >+ // Values greater than 8.0 will get clamped to 1.0 or white. >+ gl_FragColor = vec4(float(gl_MaxCombinedTextureImageUnits) / 8.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxCombinedTextureImageUnits_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxCombinedTextureImageUnits_vert.vert >new file mode 100644 >index 00000000000..8dcfd2d98f1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxCombinedTextureImageUnits_vert.vert >@@ -0,0 +1,38 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ // This test verifies that gl_MaxCombinedTextureImageUnits is set and that its >+ // value is greater than or equal to the minimum value. >+ // Values greater than 8.0 will get clamped to 1.0 or white. >+ color = vec4(float(gl_MaxCombinedTextureImageUnits) / 8.0); >+ >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxDrawBuffers_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxDrawBuffers_frag.frag >new file mode 100644 >index 00000000000..481f76a1560 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxDrawBuffers_frag.frag >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ // This test verifies that gl_MaxDrawBuffers is set and that its >+ // value is greater than or equal to the minimum value. >+ // Values greater than 1.0 will get clamped to 1.0 or white. >+ gl_FragColor = vec4(float(gl_MaxDrawBuffers) / 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxDrawBuffers_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxDrawBuffers_vert.vert >new file mode 100644 >index 00000000000..25cc2b469ca >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxDrawBuffers_vert.vert >@@ -0,0 +1,38 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ // This test verifies that gl_MaxDrawBuffers is set and that its >+ // value is greater than or equal to the minimum value. >+ // Values greater than 1.0 will get clamped to 1.0 or white. >+ color = vec4(float(gl_MaxDrawBuffers) / 1.0); >+ >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxFragmentUniformVectors_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxFragmentUniformVectors_frag.frag >new file mode 100644 >index 00000000000..d54198995a6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxFragmentUniformVectors_frag.frag >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ // This test verifies that gl_MaxFragmentUniformVectors is set and that its >+ // value is greater than or equal to the minimum value. >+ // Values greater than 16.0 will get clamped to 1.0 or white. >+ gl_FragColor = vec4(float(gl_MaxFragmentUniformVectors) / 16.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxFragmentUniformVectors_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxFragmentUniformVectors_vert.vert >new file mode 100644 >index 00000000000..f430197c8b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxFragmentUniformVectors_vert.vert >@@ -0,0 +1,38 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ // This test verifies that gl_MaxFragmentUniformVectors is set and that its >+ // value is greater than or equal to the minimum value. >+ // Values greater than 16.0 will get clamped to 1.0 or white. >+ color = vec4(float(gl_MaxFragmentUniformVectors) / 16.0); >+ >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxTextureImageUnits_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxTextureImageUnits_frag.frag >new file mode 100644 >index 00000000000..55b7b20789e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxTextureImageUnits_frag.frag >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ // This test verifies that gl_MaxTextureImageUnits is set and that its >+ // value is greater than or equal to the minimum value. >+ // Values greater than 8.0 will get clamped to 1.0 or white. >+ gl_FragColor = vec4(float(gl_MaxTextureImageUnits) / 8.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxTextureImageUnits_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxTextureImageUnits_vert.vert >new file mode 100644 >index 00000000000..b0851a7292f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxTextureImageUnits_vert.vert >@@ -0,0 +1,38 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ // This test verifies that gl_MaxTextureImageUnits is set and that its >+ // value is greater than or equal to the minimum value. >+ // Values greater than 8.0 will get clamped to 1.0 or white. >+ color = vec4(float(gl_MaxTextureImageUnits) / 8.0); >+ >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVaryingVectors_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVaryingVectors_frag.frag >new file mode 100644 >index 00000000000..abd8e8bff66 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVaryingVectors_frag.frag >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ // This test verifies that gl_MaxVaryingVectors is set and that its >+ // value is greater than or equal to the minimum value. >+ // Values greater than 8.0 will get clamped to 1.0 or white. >+ gl_FragColor = vec4(float(gl_MaxVaryingVectors) / 8.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVaryingVectors_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVaryingVectors_vert.vert >new file mode 100644 >index 00000000000..cfb2449cb34 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVaryingVectors_vert.vert >@@ -0,0 +1,38 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ // This test verifies that gl_MaxVaryingVectors is set and that its >+ // value is greater than or equal to the minimum value. >+ // Values greater than 8.0 will get clamped to 1.0 or white. >+ color = vec4(float(gl_MaxVaryingVectors) / 8.0); >+ >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVertexAttribs_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVertexAttribs_frag.frag >new file mode 100644 >index 00000000000..f839f4c4efd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVertexAttribs_frag.frag >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ // This test verifies that gl_MaxVertexAttribs is set and that its >+ // value is greater than or equal to the minimum value. >+ // Values greater than 8.0 will get clamped to 1.0 or white. >+ gl_FragColor = vec4(float(gl_MaxVertexAttribs) / 8.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVertexAttribs_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVertexAttribs_vert.vert >new file mode 100644 >index 00000000000..ca7742902ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVertexAttribs_vert.vert >@@ -0,0 +1,38 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ // This test verifies that gl_MaxVertexAttribs is set and that its >+ // value is greater than or equal to the minimum value. >+ // Values greater than 8.0 will get clamped to 1.0 or white. >+ color = vec4(float(gl_MaxVertexAttribs) / 8.0); >+ >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVertexTextureImageUnits_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVertexTextureImageUnits_frag.frag >new file mode 100644 >index 00000000000..946dbd827cc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVertexTextureImageUnits_frag.frag >@@ -0,0 +1,39 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ // This test verifies that gl_MaxVertexTextureImageUnits is set and that its >+ // value is greater than or equal to the minimum value. >+ if(gl_MaxVertexTextureImageUnits >= 0) >+ gl_FragColor = vec4(1.0); >+ else >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVertexTextureImageUnits_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVertexTextureImageUnits_vert.vert >new file mode 100644 >index 00000000000..28306594d34 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVertexTextureImageUnits_vert.vert >@@ -0,0 +1,40 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ // This test verifies that gl_MaxVertexTextureImageUnits is set and that its >+ // value is greater than or equal to the minimum value. >+ if(gl_MaxVertexTextureImageUnits >= 0) >+ color = vec4(1.0); >+ else >+ color = vec4(0.0, 0.0, 0.0, 1.0); >+ >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVertexUniformVectors_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVertexUniformVectors_frag.frag >new file mode 100644 >index 00000000000..735c7d0cede >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVertexUniformVectors_frag.frag >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ // This test verifies that gl_MaxVertexUniformVectors is set and that its >+ // value is greater than or equal to the minimum value. >+ // Values greater than 128.0 will get clamped to 1.0 or white. >+ gl_FragColor = vec4(float(gl_MaxVertexUniformVectors) / 128.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVertexUniformVectors_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVertexUniformVectors_vert.vert >new file mode 100644 >index 00000000000..b9e1b338753 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/gl_MaxVertexUniformVectors_vert.vert >@@ -0,0 +1,38 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ // This test verifies that gl_MaxVertexUniformVectors is set and that its >+ // value is greater than or equal to the minimum value. >+ // Values greater than 128.0 will get clamped to 1.0 or white. >+ color = vec4(float(gl_MaxVertexUniformVectors) / 128.0); >+ >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/input.run.txt >new file mode 100644 >index 00000000000..15c403b1a51 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biConstants/input.run.txt >@@ -0,0 +1,3 @@ >+# this file is auto-generated. DO NOT EDIT. >+biConstants_001_to_008.html >+biConstants_009_to_016.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biuDepthRange/DepthRange_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biuDepthRange/DepthRange_frag.frag >new file mode 100644 >index 00000000000..0dcfe2a9a77 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biuDepthRange/DepthRange_frag.frag >@@ -0,0 +1,33 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+ >+void main(void) >+{ >+ gl_FragColor = vec4(gl_DepthRange.near, gl_DepthRange.far, gl_DepthRange.diff, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biuDepthRange/DepthRange_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biuDepthRange/DepthRange_vert.vert >new file mode 100644 >index 00000000000..6f8288c1ec3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biuDepthRange/DepthRange_vert.vert >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main(void) >+{ >+ color = vec4(gl_DepthRange.near, gl_DepthRange.far, gl_DepthRange.diff, 1.0); >+ >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biuDepthRange/biuDepthRange_001_to_002.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biuDepthRange/biuDepthRange_001_to_002.html >new file mode 100644 >index 00000000000..54177fd39b6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biuDepthRange/biuDepthRange_001_to_002.html >@@ -0,0 +1,129 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: biuDepthRange_001_to_002.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 0.25, >+ 0.75, >+ 0.5, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "name": "DepthRange_frag.test.html", >+ "pattern": "compare", >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "DepthRange_frag.frag", >+ "builtin_uniforms": { >+ "min_required": 2, >+ "valid_values": [ >+ "gl_DepthRange.near", >+ "gl_DepthRange.far", >+ "gl_DepthRange.diff" >+ ], >+ } >+ }, >+ "state": { >+ "depthrange": { >+ "far": "0.75", >+ "near": "0.25" >+ } >+ }, >+ "model": null >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 0.25, >+ 0.75, >+ 0.5, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "name": "DepthRange_vert.test.html", >+ "pattern": "compare", >+ "testProgram": { >+ "vertexShader": "DepthRange_vert.vert", >+ "fragmentShader": "../default/default.frag", >+ "builtin_uniforms": { >+ "min_required": 2, >+ "valid_values": [ >+ "gl_DepthRange.near", >+ "gl_DepthRange.far", >+ "gl_DepthRange.diff" >+ ] >+ } >+ }, >+ "state": { >+ "depthrange": { >+ "far": "0.75", >+ "near": "0.25" >+ } >+ }, >+ "model": "grid" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biuDepthRange/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biuDepthRange/input.run.txt >new file mode 100644 >index 00000000000..21f2fd2e19e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/biuDepthRange/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+biuDepthRange_001_to_002.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/built_in_varying_array_out_of_bounds/built_in_varying_array_out_of_bounds_001_to_001.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/built_in_varying_array_out_of_bounds/built_in_varying_array_out_of_bounds_001_to_001.html >new file mode 100644 >index 00000000000..36bf3bf490a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/built_in_varying_array_out_of_bounds/built_in_varying_array_out_of_bounds_001_to_001.html >@@ -0,0 +1,61 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: built_in_varying_array_out_of_bounds_001_to_001.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "pattern": "build", >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "gl_Color_array_index_out_of_bounds_frag.frag" >+ }, >+ "name": "gl_Color_array_index_out_of_bounds_frag.test.html", >+ "linkstat": false, >+ "compstat": false >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/built_in_varying_array_out_of_bounds/gl_Color_array_index_out_of_bounds_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/built_in_varying_array_out_of_bounds/gl_Color_array_index_out_of_bounds_frag.frag >new file mode 100644 >index 00000000000..4a83d9cfa1a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/built_in_varying_array_out_of_bounds/gl_Color_array_index_out_of_bounds_frag.frag >@@ -0,0 +1,33 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+void main(void) >+{ >+ gl_FragColor = vec4(color[1], color[2], color[3], color[4]); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/built_in_varying_array_out_of_bounds/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/built_in_varying_array_out_of_bounds/input.run.txt >new file mode 100644 >index 00000000000..be6485a1f3f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/built_in_varying_array_out_of_bounds/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+built_in_varying_array_out_of_bounds_001_to_001.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_001_to_006.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_001_to_006.html >new file mode 100644 >index 00000000000..5a90be9c37f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_001_to_006.html >@@ -0,0 +1,129 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: ceil_001_to_006.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "ceil_float_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "ceil_float_frag_xvary.frag" >+ }, >+ "name": "ceil_float_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "ceil_vec2_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "ceil_vec2_frag_xvary.frag" >+ }, >+ "name": "ceil_vec2_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "ceil_vec3_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "ceil_vec3_frag_xvary.frag" >+ }, >+ "name": "ceil_vec3_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "ceil_float_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "ceil_float_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "ceil_float_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "ceil_vec2_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "ceil_vec2_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "ceil_vec2_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "ceil_vec3_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "ceil_vec3_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "ceil_vec3_vert_xvary.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_float_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_float_frag_xvary.frag >new file mode 100644 >index 00000000000..dfb425e48d9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_float_frag_xvary.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = 10.0 * 2.0 * (color.r - 0.5); >+ gl_FragColor = vec4((ceil(c) + 10.0) / 20.0, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_float_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_float_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..56b73e785b0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_float_frag_xvary_ref.frag >@@ -0,0 +1,41 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+float ceil_ref(float x) >+{ >+ if(x != floor(x)) x = floor(x) + 1.0; >+ return x; >+} >+ >+void main (void) >+{ >+ float c = 10.0 * 2.0 * (color.r - 0.5); >+ gl_FragColor = vec4((ceil_ref(c) + 10.0) / 20.0, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_float_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_float_vert_xvary.vert >new file mode 100644 >index 00000000000..da5e9f8005a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_float_vert_xvary.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = 10.0 * 2.0 * (gtf_Color.r - 0.5); >+ color = vec4((ceil(c) + 10.0) / 20.0, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_float_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_float_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..9872fd198d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_float_vert_xvary_ref.vert >@@ -0,0 +1,42 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+float ceil_ref(float x) >+{ >+ if(x != floor(x)) x = floor(x) + 1.0; >+ return x; >+} >+ >+void main (void) >+{ >+ float c = 10.0 * 2.0 * (gtf_Color.r - 0.5); >+ color = vec4((ceil_ref(c) + 10.0) / 20.0, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec2_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec2_frag_xvary.frag >new file mode 100644 >index 00000000000..836c6978692 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec2_frag_xvary.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = 10.0 * 2.0 * (color.rg - 0.5); >+ gl_FragColor = vec4((ceil(c) + 10.0) / 20.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec2_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec2_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..4c624a57b59 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec2_frag_xvary_ref.frag >@@ -0,0 +1,42 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+vec2 ceil_ref(vec2 x) >+{ >+ if(x[0] != floor(x[0])) x[0] = floor(x[0]) + 1.0; >+ if(x[1] != floor(x[1])) x[1] = floor(x[1]) + 1.0; >+ return x; >+} >+ >+void main (void) >+{ >+ vec2 c = 10.0 * 2.0 * (color.rg - 0.5); >+ gl_FragColor = vec4((ceil_ref(c) + 10.0) / 20.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec2_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec2_vert_xvary.vert >new file mode 100644 >index 00000000000..8240119c83d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec2_vert_xvary.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = 10.0 * 2.0 * (gtf_Color.rg - 0.5); >+ color = vec4((ceil(c) + 10.0) / 20.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec2_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec2_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..7483c22cc3b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec2_vert_xvary_ref.vert >@@ -0,0 +1,43 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+vec2 ceil_ref(vec2 x) >+{ >+ if(x[0] != floor(x[0])) x[0] = floor(x[0]) + 1.0; >+ if(x[1] != floor(x[1])) x[1] = floor(x[1]) + 1.0; >+ return x; >+} >+ >+void main (void) >+{ >+ vec2 c = 10.0 * 2.0 * (gtf_Color.rg - 0.5); >+ color = vec4((ceil_ref(c) + 10.0) / 20.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec3_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec3_frag_xvary.frag >new file mode 100644 >index 00000000000..45d02666650 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec3_frag_xvary.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = 10.0 * 2.0 * (color.rgb - 0.5); >+ gl_FragColor = vec4((ceil(c) + 10.0) / 20.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec3_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec3_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..652be10fc2e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec3_frag_xvary_ref.frag >@@ -0,0 +1,43 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+vec3 ceil_ref(vec3 x) >+{ >+ if(x[0] != floor(x[0])) x[0] = floor(x[0]) + 1.0; >+ if(x[1] != floor(x[1])) x[1] = floor(x[1]) + 1.0; >+ if(x[2] != floor(x[2])) x[2] = floor(x[2]) + 1.0; >+ return x; >+} >+ >+void main (void) >+{ >+ vec3 c = 10.0 * 2.0 * (color.rgb - 0.5); >+ gl_FragColor = vec4((ceil_ref(c) + 10.0) / 20.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec3_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec3_vert_xvary.vert >new file mode 100644 >index 00000000000..e7a32134577 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec3_vert_xvary.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = 10.0 * 2.0 * (gtf_Color.rgb - 0.5); >+ color = vec4((ceil(c) + 10.0) / 20.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec3_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec3_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..1bb4b809292 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/ceil_vec3_vert_xvary_ref.vert >@@ -0,0 +1,44 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+vec3 ceil_ref(vec3 x) >+{ >+ if(x[0] != floor(x[0])) x[0] = floor(x[0]) + 1.0; >+ if(x[1] != floor(x[1])) x[1] = floor(x[1]) + 1.0; >+ if(x[2] != floor(x[2])) x[2] = floor(x[2]) + 1.0; >+ return x; >+} >+ >+void main (void) >+{ >+ vec3 c = 10.0 * 2.0 * (gtf_Color.rgb - 0.5); >+ color = vec4((ceil_ref(c) + 10.0) / 20.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/input.run.txt >new file mode 100644 >index 00000000000..ed1a87ffadd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/ceil/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+ceil_001_to_006.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_001_to_006.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_001_to_006.html >new file mode 100644 >index 00000000000..8f0661e2ed0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_001_to_006.html >@@ -0,0 +1,129 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: clamp_001_to_006.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "clamp_float_frag_xvary_yconstquarter_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "clamp_float_frag_xvary_yconstquarter.frag" >+ }, >+ "name": "clamp_float_frag_xvary_yconstquarter.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "clamp_vec2_frag_xvary_yconstquarter_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "clamp_vec2_frag_xvary_yconstquarter.frag" >+ }, >+ "name": "clamp_vec2_frag_xvary_yconstquarter.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "clamp_vec3_frag_xvary_yconstquarter_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "clamp_vec3_frag_xvary_yconstquarter.frag" >+ }, >+ "name": "clamp_vec3_frag_xvary_yconstquarter.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "clamp_float_vert_xvary_yconstquarter_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "clamp_float_vert_xvary_yconstquarter.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "clamp_float_vert_xvary_yconstquarter.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "clamp_vec2_vert_xvary_yconstquarter_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "clamp_vec2_vert_xvary_yconstquarter.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "clamp_vec2_vert_xvary_yconstquarter.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "clamp_vec3_vert_xvary_yconstquarter_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "clamp_vec3_vert_xvary_yconstquarter.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "clamp_vec3_vert_xvary_yconstquarter.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_float_frag_xvary_yconstquarter.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_float_frag_xvary_yconstquarter.frag >new file mode 100644 >index 00000000000..2c32377d2ec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_float_frag_xvary_yconstquarter.frag >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float min_c = 0.25; >+ const float max_c = 0.75; >+ float c = color.r; >+ gl_FragColor = vec4(clamp(c, min_c, max_c), 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_float_frag_xvary_yconstquarter_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_float_frag_xvary_yconstquarter_ref.frag >new file mode 100644 >index 00000000000..2b1e5a340d6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_float_frag_xvary_yconstquarter_ref.frag >@@ -0,0 +1,40 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float min_c = 0.25; >+ const float max_c = 0.75; >+ float c = color.r; >+ if(c > max_c) c = max_c; >+ if(c < min_c) c = min_c; >+ >+ gl_FragColor = vec4(c, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_float_vert_xvary_yconstquarter.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_float_vert_xvary_yconstquarter.vert >new file mode 100644 >index 00000000000..68aa1a4b632 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_float_vert_xvary_yconstquarter.vert >@@ -0,0 +1,38 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float min_c = 0.25; >+ const float max_c = 0.75; >+ float c = gtf_Color.r; >+ color = vec4(clamp(c, min_c, max_c), 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_float_vert_xvary_yconstquarter_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_float_vert_xvary_yconstquarter_ref.vert >new file mode 100644 >index 00000000000..bc6d8c00e6a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_float_vert_xvary_yconstquarter_ref.vert >@@ -0,0 +1,41 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float min_c = 0.25; >+ const float max_c = 0.75; >+ float c = gtf_Color.r; >+ if(c > max_c) c = max_c; >+ if(c < min_c) c = min_c; >+ >+ color = vec4(c, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec2_frag_xvary_yconstquarter.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec2_frag_xvary_yconstquarter.frag >new file mode 100644 >index 00000000000..e912dd375b7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec2_frag_xvary_yconstquarter.frag >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const vec2 min_c = vec2(0.25, 0.25); >+ const vec2 max_c = vec2(0.75, 0.75); >+ vec2 c = color.rg; >+ gl_FragColor = vec4(clamp(c, min_c, max_c), 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec2_frag_xvary_yconstquarter_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec2_frag_xvary_yconstquarter_ref.frag >new file mode 100644 >index 00000000000..54face3fec3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec2_frag_xvary_yconstquarter_ref.frag >@@ -0,0 +1,42 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const vec2 min_c = vec2(0.25, 0.25); >+ const vec2 max_c = vec2(0.75, 0.75); >+ vec2 c = color.rg; >+ if(c[0] < min_c[0]) c[0] = min_c[0]; >+ if(c[1] < min_c[1]) c[1] = min_c[1]; >+ if(c[0] > max_c[0]) c[0] = max_c[0]; >+ if(c[1] > max_c[1]) c[1] = max_c[1]; >+ >+ gl_FragColor = vec4(c, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec2_vert_xvary_yconstquarter.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec2_vert_xvary_yconstquarter.vert >new file mode 100644 >index 00000000000..17474f371d5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec2_vert_xvary_yconstquarter.vert >@@ -0,0 +1,38 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float min_c = 0.25; >+ const float max_c = 0.75; >+ vec2 c = gtf_Color.rg; >+ color = vec4(clamp(c, min_c, max_c), 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec2_vert_xvary_yconstquarter_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec2_vert_xvary_yconstquarter_ref.vert >new file mode 100644 >index 00000000000..e566319c981 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec2_vert_xvary_yconstquarter_ref.vert >@@ -0,0 +1,43 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float min_c = 0.25; >+ const float max_c = 0.75; >+ vec2 c = gtf_Color.rg; >+ if(c[0] > max_c) c[0] = max_c; >+ if(c[0] < min_c) c[0] = min_c; >+ if(c[1] > max_c) c[1] = max_c; >+ if(c[1] < min_c) c[1] = min_c; >+ >+ color = vec4(c, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec3_frag_xvary_yconstquarter.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec3_frag_xvary_yconstquarter.frag >new file mode 100644 >index 00000000000..c294c26bbea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec3_frag_xvary_yconstquarter.frag >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const vec3 min_c = vec3(0.25, 0.25, 0.25); >+ const vec3 max_c = vec3(0.75, 0.75, 0.75); >+ vec3 c = color.rgb; >+ gl_FragColor = vec4(clamp(c, min_c, max_c), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec3_frag_xvary_yconstquarter_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec3_frag_xvary_yconstquarter_ref.frag >new file mode 100644 >index 00000000000..e09f795b344 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec3_frag_xvary_yconstquarter_ref.frag >@@ -0,0 +1,44 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const vec3 min_c = vec3(0.25, 0.25, 0.25); >+ const vec3 max_c = vec3(0.75, 0.75, 0.75); >+ vec3 c = color.rgb; >+ if(c[0] < min_c[0]) c[0] = min_c[0]; >+ if(c[1] < min_c[1]) c[1] = min_c[1]; >+ if(c[2] < min_c[2]) c[2] = min_c[2]; >+ if(c[0] > max_c[0]) c[0] = max_c[0]; >+ if(c[1] > max_c[1]) c[1] = max_c[1]; >+ if(c[2] > max_c[2]) c[2] = max_c[2]; >+ >+ gl_FragColor = vec4(c, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec3_vert_xvary_yconstquarter.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec3_vert_xvary_yconstquarter.vert >new file mode 100644 >index 00000000000..50c14ffc522 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec3_vert_xvary_yconstquarter.vert >@@ -0,0 +1,38 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float min_c = 0.25; >+ const float max_c = 0.75; >+ vec3 c = gtf_Color.rgb; >+ color = vec4(clamp(c, min_c, max_c), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec3_vert_xvary_yconstquarter_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec3_vert_xvary_yconstquarter_ref.vert >new file mode 100644 >index 00000000000..6ba4f0d42dc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/clamp_vec3_vert_xvary_yconstquarter_ref.vert >@@ -0,0 +1,45 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float min_c = 0.25; >+ const float max_c = 0.75; >+ vec3 c = gtf_Color.rgb; >+ if(c[0] > max_c) c[0] = max_c; >+ if(c[0] < min_c) c[0] = min_c; >+ if(c[1] > max_c) c[1] = max_c; >+ if(c[1] < min_c) c[1] = min_c; >+ if(c[2] > max_c) c[2] = max_c; >+ if(c[2] < min_c) c[2] = min_c; >+ >+ color = vec4(c, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/input.run.txt >new file mode 100644 >index 00000000000..2fafa275a45 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/clamp/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+clamp_001_to_006.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/control_flow_001_to_008.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/control_flow_001_to_008.html >new file mode 100644 >index 00000000000..c453631f592 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/control_flow_001_to_008.html >@@ -0,0 +1,251 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: control_flow_001_to_008.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "for_break_frag.frag" >+ }, >+ "name": "for_break_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "for_break_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "for_break_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "for_continue_frag.frag" >+ }, >+ "name": "for_continue_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "for_continue_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "for_continue_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "for_nested_break_frag.frag" >+ }, >+ "name": "for_nested_break_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "for_nested_break_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "for_nested_break_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "for_nested_continue_frag.frag" >+ }, >+ "name": "for_nested_continue_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "for_nested_continue_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "for_nested_continue_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/control_flow_009_to_010.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/control_flow_009_to_010.html >new file mode 100644 >index 00000000000..ad4d098f5ec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/control_flow_009_to_010.html >@@ -0,0 +1,101 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: control_flow_009_to_010.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "nested_if_else_frag.frag" >+ }, >+ "name": "nested_if_else_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "nested_if_else_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "nested_if_else_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_break_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_break_frag.frag >new file mode 100644 >index 00000000000..ff23a7859c8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_break_frag.frag >@@ -0,0 +1,46 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ int count = 0; >+ for(int i=0;i<5;i++) >+ { >+ count++; >+ if(count == 3) >+ break; >+ } >+ >+ float gray; >+ if( count == 3) >+ gray=1.0; >+ else gray=0.0; >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_break_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_break_vert.vert >new file mode 100644 >index 00000000000..84a517d947b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_break_vert.vert >@@ -0,0 +1,45 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ int count = 0; >+ for(int i=0;i<45;i++) >+ { >+ count++; >+ if(count == 29) >+ break; >+ } >+ float gray; >+ if( count == 29) >+ gray=1.0; >+ else gray=0.0; >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_continue_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_continue_frag.frag >new file mode 100644 >index 00000000000..df501385e62 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_continue_frag.frag >@@ -0,0 +1,50 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ int count=0; >+ int val=0; >+ >+ for(int i=0;i<10;i++) >+ { >+ count++; >+ if(count == 5) >+ continue; >+ else >+ val += count; >+ } >+ >+ float gray; >+ if( val == 50) >+ gray=1.0; >+ else gray=0.0; >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_continue_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_continue_vert.vert >new file mode 100644 >index 00000000000..80da6b92287 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_continue_vert.vert >@@ -0,0 +1,50 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ int count=0; >+ int val=0; >+ for(int i=0;i<10;i++) >+ { >+ count++; >+ if(count == 5) >+ continue; >+ else >+ val += count; >+ } >+ >+ >+ float gray; >+ if( val == 50) >+ gray=1.0; >+ else gray=0.0; >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_nested_break_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_nested_break_frag.frag >new file mode 100644 >index 00000000000..dc0cdb59a23 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_nested_break_frag.frag >@@ -0,0 +1,52 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ int count1 = 0, count2 = 0; >+ for(int i=0;i<4;i++) >+ { >+ count1++; >+ count2 = 0; >+ for(int j=0;j<4;j++) >+ { >+ count2++; >+ if(count2 == 3) >+ break; >+ } >+ if(count1 == 2) >+ break; >+ } >+ float gray; >+ if( (count1 == 2) && (count2 == 3)) >+ gray=1.0; >+ else gray=0.0; >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_nested_break_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_nested_break_vert.vert >new file mode 100644 >index 00000000000..47491be115a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_nested_break_vert.vert >@@ -0,0 +1,52 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ int count1 = 0, count2 = 0; >+ for(int i=0;i<45;i++) >+ { >+ count1++; >+ count2 = 0; >+ for(int j=0;j<45;j++) >+ { >+ count2++; >+ if(count2 == 29) >+ break; >+ } >+ if(count1 == 29) >+ break; >+ } >+ float gray; >+ if( (count1 == 29) && (count2 == 29)) >+ gray=1.0; >+ else gray=0.0; >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_nested_continue_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_nested_continue_frag.frag >new file mode 100644 >index 00000000000..6651cc75c1e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_nested_continue_frag.frag >@@ -0,0 +1,61 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ int count1 = 0, count2 = 0; >+ int val1 = 0, val2 = 0; >+ for(int i=0;i<4;i++) >+ { >+ count1++; >+ count2 = 0; >+ for(int j=0;j<4;j++) >+ { >+ count2++; >+ if(count2 == 2) >+ continue; >+ else >+ val2 += count2; >+ >+ } >+ >+ >+ if(count1 == 2) >+ continue; >+ else >+ val1 += count1; >+ >+ } >+ float gray; >+ if( (val1 == 8) && (val2 == 32) ) >+ gray=1.0; >+ else gray=0.0; >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_nested_continue_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_nested_continue_vert.vert >new file mode 100644 >index 00000000000..0b96b9a4b8c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/for_nested_continue_vert.vert >@@ -0,0 +1,61 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ int count1 = 0, count2 = 0; >+ int val1 = 0, val2 = 0; >+ for(int i=0;i<10;i++) >+ { >+ count1++; >+ count2 = 0; >+ for(int j=0;j<10;j++) >+ { >+ count2++; >+ if(count2 == 5) >+ continue; >+ else >+ val2 += count2; >+ >+ } >+ >+ >+ if(count1 == 5) >+ continue; >+ else >+ val1 += count1; >+ >+ } >+ float gray; >+ if( (val1 == 50) && (val2 == 500) ) >+ gray=1.0; >+ else gray=0.0; >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/input.run.txt >new file mode 100644 >index 00000000000..fddcaa48ae4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/input.run.txt >@@ -0,0 +1,3 @@ >+# this file is auto-generated. DO NOT EDIT. >+control_flow_001_to_008.html >+control_flow_009_to_010.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/nested_if_else_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/nested_if_else_frag.frag >new file mode 100644 >index 00000000000..66525bf6c5d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/nested_if_else_frag.frag >@@ -0,0 +1,57 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ int setval = 30; >+ >+ if(--setval!=29) >+ if( (setval+=11) == 40) >+ if(setval/4 == 11) >+ setval = 11; >+ else if(setval/4 == 10) >+ if(setval-3 == 37) >+ setval=12; >+ else setval = 9; >+ else setval = 10; >+ else setval = 30; >+ else if(setval == 29) >+ if((setval+=19) != 48) >+ setval = 13; >+ else if((setval+=19) == 29) >+ setval = 28; >+ else setval = 53; >+ else setval = 32; >+ float gray; >+ if( setval == 53 ) >+ gray=1.0; >+ else gray=0.0; >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/nested_if_else_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/nested_if_else_vert.vert >new file mode 100644 >index 00000000000..f0d560b7cfc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/control_flow/nested_if_else_vert.vert >@@ -0,0 +1,57 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ int setval = 30; >+ >+ if(--setval!=29) >+ if( (setval+=11) == 40) >+ if(setval/4 == 11) >+ setval = 11; >+ else if(setval/4 == 10) >+ if(setval-3 == 37) >+ setval=12; >+ else setval = 9; >+ else setval = 10; >+ else setval = 30; >+ else if(setval == 29) >+ if((setval+=19) != 48) >+ setval = 13; >+ else if((setval+=19) == 29) >+ setval = 28; >+ else setval = 53; >+ else setval = 32; >+ float gray; >+ if( setval == 53 ) >+ gray=1.0; >+ else gray=0.0; >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_001_to_006.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_001_to_006.html >new file mode 100644 >index 00000000000..6fe118c5cd0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_001_to_006.html >@@ -0,0 +1,129 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: cos_001_to_006.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "cos_float_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "cos_float_frag_xvary.frag" >+ }, >+ "name": "cos_float_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "cos_vec2_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "cos_vec2_frag_xvary.frag" >+ }, >+ "name": "cos_vec2_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "cos_vec3_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "cos_vec3_frag_xvary.frag" >+ }, >+ "name": "cos_vec3_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "cos_float_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "cos_float_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "cos_float_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "cos_vec2_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "cos_vec2_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "cos_vec2_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "cos_vec3_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "cos_vec3_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "cos_vec3_vert_xvary.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_float_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_float_frag_xvary.frag >new file mode 100644 >index 00000000000..4cef9e2e21e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_float_frag_xvary.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ gl_FragColor = vec4(0.5 * cos(2.0 * M_PI * color.r) + 0.5, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_float_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_float_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..fb906c198f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_float_frag_xvary_ref.frag >@@ -0,0 +1,70 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float c = 2.0 * M_PI * ( fract(abs(color.r)) - 0.5 ); >+ float sign = 1.0; >+ float cos_c = -1.0; >+ float fact_even = 1.0; >+ float fact_odd = 1.0; >+ float sum; >+ >+ // At this point c is in the range [-PI, PI) >+ >+ // Taylor-Maclaurin series expansion for cosine >+ // >+ // Apply the property that pow(a, b + c) = pow(a, b) * pow(a, c) >+ // and the property that 1.0/(a*b) = 1.0/a * 1.0/b >+ // to make sure no register ever overflows the range (-16384, +16384) >+ // mandated for mediump variables. >+ >+ for(int i = 2; i <= 10; i += 2) >+ { >+ // fact_even will hold at most the value 3840. >+ fact_even *= float(i); >+ >+ // fact_odd will always be smaller than fact_even >+ fact_odd *= float(i-1); >+ >+ // pow(c, float(i/2)) takes at most the value pow(PI, 5), which is approx. 306 >+ // abs(sum) is at most PI/2.0 >+ sum = sign * pow(abs(c), float(i/2))/fact_even; >+ >+ // abs(sum/fact_odd) is at most PI/2.0 >+ // cos_c is always bound in the range [-1.0, 1.0) >+ cos_c += pow(abs(c), float(i/2))*(sum/fact_odd); >+ >+ sign = -sign; >+ } >+ >+ gl_FragColor = vec4(0.5 * cos_c + 0.5, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_float_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_float_vert_xvary.vert >new file mode 100644 >index 00000000000..ff1bf21def6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_float_vert_xvary.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ color = vec4(0.5 * cos(2.0 * M_PI * gtf_Color.r) + 0.5, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_float_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_float_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..a47efbfbbed >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_float_vert_xvary_ref.vert >@@ -0,0 +1,50 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float c = 2.0 * M_PI * gtf_Color.r; >+ float sign = -1.0; >+ float cos_c = 1.0; >+ float fact = 1.0; >+ >+ // Taylor-Maclaurin series expansion for cosine >+ for(int i = 2; i <= 20; i += 2) >+ { >+ fact *= float(i)*float(i-1); >+ cos_c += sign*pow(c, float(i))/fact; >+ sign = -sign; >+ } >+ >+ color = vec4(0.5 * cos_c + 0.5, 0.0, 0.0, 1.0); >+ >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec2_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec2_frag_xvary.frag >new file mode 100644 >index 00000000000..303bcd98565 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec2_frag_xvary.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ gl_FragColor = vec4(0.5 * cos(2.0 * M_PI * color.rg) + 0.5, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec2_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec2_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..4b1c833cf58 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec2_frag_xvary_ref.frag >@@ -0,0 +1,74 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 c = 2.0 * M_PI * ( fract(abs(color.rg)) - 0.5 ); >+ float sign = 1.0; >+ vec2 cos_c = vec2(-1.0, -1.0); >+ float fact_even = 1.0; >+ float fact_odd = 1.0; >+ vec2 sum; >+ vec2 exp; >+ >+ // At this point c is in the range [-PI, PI) >+ >+ // Taylor-Maclaurin series expansion for cosine >+ // >+ // Apply the property that pow(a, b + c) = pow(a, b) * pow(a, c) >+ // and the property that 1.0/(a*b) = 1.0/a * 1.0/b >+ // to make sure no register ever overflows the range (-16384, +16384) >+ // mandated for mediump variables. >+ >+ for(int i = 2; i <= 10; i += 2) >+ { >+ // fact_even will hold at most the value 3840. >+ fact_even *= float(i); >+ >+ // fact_odd will always be smaller than fact_even >+ fact_odd *= float(i-1); >+ >+ // exp is at most (5,5) >+ exp = vec2(float(i/2), float(i/2)); >+ >+ // pow(c, exp) takes at most the value pow(PI, 5), which is approx. 306 >+ // abs(sum) is at most PI/2.0 >+ sum = sign * pow(abs(c), exp)/fact_even; >+ >+ // abs(sum/fact_odd) is at most PI/2.0 >+ // cos_c is always bound in the range [-1.0, 1.0) >+ cos_c += pow(abs(c), exp)*(sum/fact_odd); >+ >+ sign = -sign; >+ } >+ >+ gl_FragColor = vec4(0.5 * cos_c + 0.5, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec2_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec2_vert_xvary.vert >new file mode 100644 >index 00000000000..6c9daf513ba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec2_vert_xvary.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ color = vec4(0.5 * cos(2.0 * M_PI * gtf_Color.rg) + 0.5, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec2_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec2_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..9aab45e87bb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec2_vert_xvary_ref.vert >@@ -0,0 +1,50 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 c = 2.0 * M_PI * gtf_Color.rg; >+ float sign = -1.0; >+ vec2 cos_c = vec2(1.0, 1.0); >+ float fact = 1.0; >+ >+ // Taylor-Maclaurin series expansion for cosine >+ for(int i = 2; i <= 20; i += 2) >+ { >+ fact *= float(i)*float(i-1); >+ cos_c += sign*pow(c, vec2(float(i), float(i)))/fact; >+ sign = -sign; >+ } >+ >+ color = vec4(0.5 * cos_c + 0.5, 0.0, 1.0); >+ >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec3_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec3_frag_xvary.frag >new file mode 100644 >index 00000000000..2470106a75f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec3_frag_xvary.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ gl_FragColor = vec4(0.5 * cos(2.0 * M_PI * color.rgb) + 0.5, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec3_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec3_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..948400d9dfc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec3_frag_xvary_ref.frag >@@ -0,0 +1,74 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 c = 2.0 * M_PI * ( fract(abs(color.rgb)) - 0.5 ); >+ float sign = 1.0; >+ vec3 cos_c = vec3(-1.0, -1.0, -1.0); >+ float fact_even = 1.0; >+ float fact_odd = 1.0; >+ vec3 sum; >+ vec3 exp; >+ >+ // At this point c is in the range [-PI, PI) >+ >+ // Taylor-Maclaurin series expansion for cosine >+ // >+ // Apply the property that pow(a, b + c) = pow(a, b) * pow(a, c) >+ // and the property that 1.0/(a*b) = 1.0/a * 1.0/b >+ // to make sure no register ever overflows the range (-16384, +16384) >+ // mandated for mediump variables. >+ >+ for(int i = 2; i <= 10; i += 2) >+ { >+ // fact_even will hold at most the value 3840. >+ fact_even *= float(i); >+ >+ // fact_odd will always be smaller than fact_even >+ fact_odd *= float(i-1); >+ >+ // exp is at most (5,5,5) >+ exp = vec3(float(i/2), float(i/2), float(i/2)); >+ >+ // pow(c, exp) takes at most the value pow(PI, 5), which is approx. 306 >+ // abs(sum) is at most PI/2.0 >+ sum = sign * pow(abs(c), exp)/fact_even; >+ >+ // abs(sum/fact_odd) is at most PI/2.0 >+ // cos_c is always bound in the range [-1.0, 1.0) >+ cos_c += pow(abs(c), exp)*(sum/fact_odd); >+ >+ sign = -sign; >+ } >+ >+ gl_FragColor = vec4(0.5 * cos_c + 0.5, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec3_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec3_vert_xvary.vert >new file mode 100644 >index 00000000000..bde69506c4d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec3_vert_xvary.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ color = vec4(0.5 * cos(2.0 * M_PI * gtf_Color.rgb) + 0.5, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec3_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec3_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..cd8f9d83796 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/cos_vec3_vert_xvary_ref.vert >@@ -0,0 +1,50 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 c = 2.0 * M_PI * gtf_Color.rgb; >+ float sign = -1.0; >+ vec3 cos_c = vec3(1.0,1.0,1.0); >+ float fact = 1.0; >+ >+ // Taylor-Maclaurin series expansion for cosine >+ for(int i = 2; i <= 20; i += 2) >+ { >+ fact *= float(i)*float(i-1); >+ cos_c += sign*pow(c, vec3(float(i),float(i),float(i)))/fact; >+ sign = -sign; >+ } >+ >+ color = vec4(0.5 * cos_c + 0.5, 1.0); >+ >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/input.run.txt >new file mode 100644 >index 00000000000..64f23d8c397 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cos/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+cos_001_to_006.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cross/cross_001_to_002.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cross/cross_001_to_002.html >new file mode 100644 >index 00000000000..5803ef1b0fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cross/cross_001_to_002.html >@@ -0,0 +1,77 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: cross_001_to_002.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "cross_vec3_frag_xvaryyconst_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "cross_vec3_frag_xvaryyconst.frag" >+ }, >+ "name": "cross_vec3_frag_xvaryyconst.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "cross_vec3_vert_xvaryyconst_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "cross_vec3_vert_xvaryyconst.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "cross_vec3_vert_xvaryyconst.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cross/cross_vec3_frag_xvaryyconst.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cross/cross_vec3_frag_xvaryyconst.frag >new file mode 100644 >index 00000000000..3baaed5449c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cross/cross_vec3_frag_xvaryyconst.frag >@@ -0,0 +1,47 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ >+ // Both are unit vectors >+ vec3 v1; >+ vec3 v2 = vec3(1.0, 0.0, 0.0); >+ >+ >+ float theta = color.g * 2.0 * M_PI; >+ float phi = color.b * 2.0 * M_PI; >+ v1.x = cos(theta) * sin(phi); >+ v1.y = sin(theta) * sin(phi); >+ v1.z = cos(phi); >+ >+ gl_FragColor = vec4((cross(v1, v2) + 1.0) / 2.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cross/cross_vec3_frag_xvaryyconst_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cross/cross_vec3_frag_xvaryyconst_ref.frag >new file mode 100644 >index 00000000000..7d1f2161339 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cross/cross_vec3_frag_xvaryyconst_ref.frag >@@ -0,0 +1,49 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ >+ // Both are unit vectors >+ vec3 v1; >+ vec3 v2 = vec3(1.0, 0.0, 0.0); >+ vec3 v3; >+ >+ float theta = color.g * 2.0 * M_PI; >+ float phi = color.b * 2.0 * M_PI; >+ v1.x = cos(theta) * sin(phi); >+ v1.y = sin(theta) * sin(phi); >+ v1.z = cos(phi); >+ v3.x = v1.y * v2.z - v2.y * v1.z; >+ v3.y = v2.x * v1.z - v1.x * v2.z; >+ v3.z = v1.x * v2.y - v2.x * v1.y; >+ gl_FragColor = vec4((v3 + 1.0) / 2.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cross/cross_vec3_vert_xvaryyconst.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cross/cross_vec3_vert_xvaryyconst.vert >new file mode 100644 >index 00000000000..6a3345f28ad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cross/cross_vec3_vert_xvaryyconst.vert >@@ -0,0 +1,46 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ >+ // Both are unit vectors >+ vec3 v1; >+ vec3 v2 = vec3(1.0, 0.0, 0.0); >+ >+ float theta = gtf_Color.g * 2.0 * M_PI; >+ float phi = gtf_Color.b * 2.0 * M_PI; >+ v1.x = cos(theta) * sin(phi); >+ v1.y = sin(theta) * sin(phi); >+ v1.z = cos(phi); >+ color = vec4((cross(v1, v2) + 1.0) / 2.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cross/cross_vec3_vert_xvaryyconst_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cross/cross_vec3_vert_xvaryyconst_ref.vert >new file mode 100644 >index 00000000000..7680ae03517 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cross/cross_vec3_vert_xvaryyconst_ref.vert >@@ -0,0 +1,50 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ >+ // Both are unit vectors >+ vec3 v1; >+ vec3 v2 = vec3(1.0, 0.0, 0.0); >+ vec3 v3; >+ >+ float theta = gtf_Color.g * 2.0 * M_PI; >+ float phi = gtf_Color.b * 2.0 * M_PI; >+ v1.x = cos(theta) * sin(phi); >+ v1.y = sin(theta) * sin(phi); >+ v1.z = cos(phi); >+ v3.x = v1.y * v2.z - v2.y * v1.z; >+ v3.y = v2.x * v1.z - v1.x * v2.z; >+ v3.z = v1.x * v2.y - v2.x * v1.y; >+ color = vec4((v3 + 1.0) / 2.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cross/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cross/input.run.txt >new file mode 100644 >index 00000000000..4ce9794db51 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/cross/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+cross_001_to_002.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/default.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/default.frag >new file mode 100644 >index 00000000000..e9d460fb20c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/default.frag >@@ -0,0 +1,34 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ gl_FragColor = color; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/default.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/default.vert >new file mode 100644 >index 00000000000..72e83fd0322 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/default.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ color = gtf_Color; >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+ gl_PointSize = 1.0; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/default_001_to_001.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/default_001_to_001.html >new file mode 100644 >index 00000000000..065e66f967e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/default_001_to_001.html >@@ -0,0 +1,64 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: default_001_to_001.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "default.vert", >+ "fragmentShader": "default.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "default.vert", >+ "fragmentShader": "default.frag" >+ }, >+ "name": "default.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/default_textured.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/default_textured.frag >new file mode 100644 >index 00000000000..8db3c6954f7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/default_textured.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+uniform sampler2D gtf_Texture0; >+varying vec4 color; >+varying vec4 gtf_TexCoord[1]; >+ >+void main (void) >+{ >+ gl_FragColor = texture2D(gtf_Texture0, gtf_TexCoord[0].xy); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/default_textured.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/default_textured.vert >new file mode 100644 >index 00000000000..1b5b7831a46 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/default_textured.vert >@@ -0,0 +1,39 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 gtf_TexCoord[1]; >+attribute vec4 gtf_MultiTexCoord0; >+varying vec4 color; >+ >+void main (void) >+{ >+ color = gtf_Color; >+ gtf_TexCoord[0] = gtf_MultiTexCoord0; >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+ gl_PointSize = 1.0; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/expected.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/expected.frag >new file mode 100644 >index 00000000000..3d543f343ba >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/expected.frag >@@ -0,0 +1,34 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+uniform vec4 result; >+ >+void main (void) >+{ >+ gl_FragColor = result; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/input.run.txt >new file mode 100644 >index 00000000000..44c03e906b0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/default/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+default_001_to_001.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_001_to_006.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_001_to_006.html >new file mode 100644 >index 00000000000..3743110081a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_001_to_006.html >@@ -0,0 +1,129 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: degrees_001_to_006.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "degrees_float_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "degrees_float_frag_xvary.frag" >+ }, >+ "name": "degrees_float_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "degrees_vec2_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "degrees_vec2_frag_xvary.frag" >+ }, >+ "name": "degrees_vec2_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "degrees_vec3_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "degrees_vec3_frag_xvary.frag" >+ }, >+ "name": "degrees_vec3_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "degrees_float_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "degrees_float_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "degrees_float_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "degrees_vec2_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "degrees_vec2_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "degrees_vec2_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "degrees_vec3_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "degrees_vec3_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "degrees_vec3_vert_xvary.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_float_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_float_frag_xvary.frag >new file mode 100644 >index 00000000000..52d2e724a12 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_float_frag_xvary.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float c = 2.0 * M_PI * 2.0 * (color.r - 0.5); >+ gl_FragColor = vec4(degrees(c) / (2.0 * 360.0) + 0.5, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_float_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_float_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..b3675b0454c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_float_frag_xvary_ref.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float c = 2.0 * M_PI * 2.0 * (color.r - 0.5); >+ gl_FragColor = vec4((c * 180.0 / M_PI) / (2.0 * 360.0) + 0.5, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_float_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_float_vert_xvary.vert >new file mode 100644 >index 00000000000..69b026d7db1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_float_vert_xvary.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float c = 2.0 * M_PI * 2.0 * (gtf_Color.r - 0.5); >+ color = vec4(degrees(c) / (2.0 * 360.0) + 0.5, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_float_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_float_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..4b919b44bb9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_float_vert_xvary_ref.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ float c = 2.0 * M_PI * 2.0 * (gtf_Color.r - 0.5); >+ color = vec4((c * 180.0 / M_PI) / (2.0 * 360.0) + 0.5, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec2_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec2_frag_xvary.frag >new file mode 100644 >index 00000000000..3c01fb83eb0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec2_frag_xvary.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 c = 2.0 * M_PI * 2.0 * (color.rg - 0.5); >+ gl_FragColor = vec4(degrees(c) / (2.0 * 360.0) + 0.5, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec2_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec2_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..0706159c0ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec2_frag_xvary_ref.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 c = 2.0 * M_PI * 2.0 * (color.rg - 0.5); >+ gl_FragColor = vec4((c * 180.0 / M_PI) / (2.0 * 360.0) + 0.5, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec2_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec2_vert_xvary.vert >new file mode 100644 >index 00000000000..e7c59c30052 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec2_vert_xvary.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 c = 2.0 * M_PI * 2.0 * (gtf_Color.rg - 0.5); >+ color = vec4(degrees(c) / (2.0 * 360.0) + 0.5, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec2_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec2_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..f2d52d129ec >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec2_vert_xvary_ref.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec2 c = 2.0 * M_PI * 2.0 * (gtf_Color.rg - 0.5); >+ color = vec4((c * 180.0 / M_PI) / (2.0 * 360.0) + 0.5, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec3_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec3_frag_xvary.frag >new file mode 100644 >index 00000000000..48c5cb1de39 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec3_frag_xvary.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 c = 2.0 * M_PI * 2.0 * (color.rgb - 0.5); >+ gl_FragColor = vec4(degrees(c) / (2.0 * 360.0) + 0.5, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec3_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec3_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..e970bd14115 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec3_frag_xvary_ref.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 c = 2.0 * M_PI * 2.0 * (color.rgb - 0.5); >+ gl_FragColor = vec4((c * 180.0 / M_PI) / (2.0 * 360.0) + 0.5, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec3_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec3_vert_xvary.vert >new file mode 100644 >index 00000000000..520f0bb652f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec3_vert_xvary.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 c = 2.0 * M_PI * 2.0 * (gtf_Color.rgb - 0.5); >+ color = vec4(degrees(c) / (2.0 * 360.0) + 0.5, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec3_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec3_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..ef8d0e4ab9b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/degrees_vec3_vert_xvary_ref.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ vec3 c = 2.0 * M_PI * 2.0 * (gtf_Color.rgb - 0.5); >+ color = vec4((c * 180.0 / M_PI) / (2.0 * 360.0) + 0.5, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/input.run.txt >new file mode 100644 >index 00000000000..caa0c110d0d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/degrees/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+degrees_001_to_006.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/discard/discard_001_to_002.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/discard/discard_001_to_002.html >new file mode 100644 >index 00000000000..9f46ba5a6b8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/discard/discard_001_to_002.html >@@ -0,0 +1,89 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: discard_001_to_002.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 0.0, >+ 0.0, >+ 0.0, >+ 0.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "discard_frag.frag" >+ }, >+ "name": "discard_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "discard_cond_frag_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "discard_cond_frag.frag" >+ }, >+ "name": "discard_cond_frag.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/discard/discard_cond_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/discard/discard_cond_frag.frag >new file mode 100644 >index 00000000000..89c664cdf3e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/discard/discard_cond_frag.frag >@@ -0,0 +1,41 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ bool toDiscard = false; >+ if(color.r > 0.75) toDiscard = true; >+ else if(color.g > 0.75) toDiscard = true; >+ else if(color.b > 0.75) toDiscard = true; >+ >+ if (toDiscard) discard; >+ >+ gl_FragColor = color; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/discard/discard_cond_frag_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/discard/discard_cond_frag_ref.frag >new file mode 100644 >index 00000000000..05bb08a0391 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/discard/discard_cond_frag_ref.frag >@@ -0,0 +1,44 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ if(color.r > 0.75 || color.g > 0.75 || color.b > 0.75) >+ { >+ /* The background color is black by default. >+ * Setting the fragment color to it simulates a discarded fragment. >+ */ >+ gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); >+ } >+ else >+ { >+ gl_FragColor = color; >+ } >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/discard/discard_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/discard/discard_frag.frag >new file mode 100644 >index 00000000000..6420e95bf70 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/discard/discard_frag.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ gl_FragColor = color; >+ discard; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/discard/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/discard/input.run.txt >new file mode 100644 >index 00000000000..ff9bfa993dd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/discard/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+discard_001_to_002.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_001_to_006.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_001_to_006.html >new file mode 100644 >index 00000000000..acdbde3da19 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_001_to_006.html >@@ -0,0 +1,129 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: distance_001_to_006.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "distance_float_frag_xvaryyhalf_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "distance_float_frag_xvaryyhalf.frag" >+ }, >+ "name": "distance_float_frag_xvaryyhalf.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "distance_vec2_frag_xvaryyhalf_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "distance_vec2_frag_xvaryyhalf.frag" >+ }, >+ "name": "distance_vec2_frag_xvaryyhalf.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "distance_vec3_frag_xvaryyhalf_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "distance_vec3_frag_xvaryyhalf.frag" >+ }, >+ "name": "distance_vec3_frag_xvaryyhalf.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "distance_float_vert_xvaryyhalf_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "distance_float_vert_xvaryyhalf.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "distance_float_vert_xvaryyhalf.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "distance_vec2_vert_xvaryyhalf_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "distance_vec2_vert_xvaryyhalf.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "distance_vec2_vert_xvaryyhalf.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "distance_vec3_vert_xvaryyhalf_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "distance_vec3_vert_xvaryyhalf.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "distance_vec3_vert_xvaryyhalf.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_float_frag_xvaryyhalf.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_float_frag_xvaryyhalf.frag >new file mode 100644 >index 00000000000..90d38ddcffb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_float_frag_xvaryyhalf.frag >@@ -0,0 +1,34 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ gl_FragColor = vec4(vec3(distance(color.r, 0.5)), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_float_frag_xvaryyhalf_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_float_frag_xvaryyhalf_ref.frag >new file mode 100644 >index 00000000000..d5c87c09ee3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_float_frag_xvaryyhalf_ref.frag >@@ -0,0 +1,34 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ gl_FragColor = vec4(vec3(sqrt(pow(abs(color.r - 0.5), 2.0))), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_float_vert_xvaryyhalf.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_float_vert_xvaryyhalf.vert >new file mode 100644 >index 00000000000..574bf00c331 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_float_vert_xvaryyhalf.vert >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ color = vec4(vec3(distance(gtf_Color.r, 0.5)), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_float_vert_xvaryyhalf_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_float_vert_xvaryyhalf_ref.vert >new file mode 100644 >index 00000000000..694c7d1f7d0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_float_vert_xvaryyhalf_ref.vert >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ color = vec4(vec3(sqrt(pow(abs(gtf_Color.r - 0.5), 2.0))), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec2_frag_xvaryyhalf.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec2_frag_xvaryyhalf.frag >new file mode 100644 >index 00000000000..c39308d1e65 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec2_frag_xvaryyhalf.frag >@@ -0,0 +1,34 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ gl_FragColor = vec4(vec3(distance(color.rg, vec2(0.5))), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec2_frag_xvaryyhalf_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec2_frag_xvaryyhalf_ref.frag >new file mode 100644 >index 00000000000..61e18003227 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec2_frag_xvaryyhalf_ref.frag >@@ -0,0 +1,34 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ gl_FragColor = vec4(vec3(sqrt(pow(abs(color.r - 0.5), 2.0) + pow(abs(color.g - 0.5), 2.0))), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec2_vert_xvaryyhalf.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec2_vert_xvaryyhalf.vert >new file mode 100644 >index 00000000000..9807d91fed7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec2_vert_xvaryyhalf.vert >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ color = vec4(vec3(distance(gtf_Color.rg, vec2(0.5))), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec2_vert_xvaryyhalf_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec2_vert_xvaryyhalf_ref.vert >new file mode 100644 >index 00000000000..f70d7a78c91 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec2_vert_xvaryyhalf_ref.vert >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ color = vec4(vec3(sqrt(pow(abs(gtf_Color.r - 0.5), 2.0) + pow(abs(gtf_Color.g - 0.5), 2.0))), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec3_frag_xvaryyhalf.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec3_frag_xvaryyhalf.frag >new file mode 100644 >index 00000000000..c356d342409 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec3_frag_xvaryyhalf.frag >@@ -0,0 +1,34 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ gl_FragColor = vec4(vec3(distance(color.rgb, vec3(0.5))), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec3_frag_xvaryyhalf_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec3_frag_xvaryyhalf_ref.frag >new file mode 100644 >index 00000000000..b016b64db9e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec3_frag_xvaryyhalf_ref.frag >@@ -0,0 +1,34 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ gl_FragColor = vec4(vec3(sqrt(pow(abs(color.r - 0.5), 2.0) + pow(abs(color.g - 0.5), 2.0) + pow(abs(color.b - 0.5), 2.0))), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec3_vert_xvaryyhalf.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec3_vert_xvaryyhalf.vert >new file mode 100644 >index 00000000000..f0ce5c4bd4c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec3_vert_xvaryyhalf.vert >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ color = vec4(vec3(distance(gtf_Color.rgb, vec3(0.5))), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec3_vert_xvaryyhalf_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec3_vert_xvaryyhalf_ref.vert >new file mode 100644 >index 00000000000..7fdd7f986fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/distance_vec3_vert_xvaryyhalf_ref.vert >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ color = vec4(vec3(sqrt(pow(abs(gtf_Color.r - 0.5), 2.0) + pow(abs(gtf_Color.g - 0.5), 2.0) + pow(abs(gtf_Color.b - 0.5), 2.0))), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/input.run.txt >new file mode 100644 >index 00000000000..bfbce99ed16 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/distance/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+distance_001_to_006.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_001_to_006.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_001_to_006.html >new file mode 100644 >index 00000000000..94188a747c9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_001_to_006.html >@@ -0,0 +1,129 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: dot_001_to_006.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "dot_float_frag_xvaryyone_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "dot_float_frag_xvaryyone.frag" >+ }, >+ "name": "dot_float_frag_xvaryyone.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "dot_vec2_frag_xvaryyhalf_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "dot_vec2_frag_xvaryyhalf.frag" >+ }, >+ "name": "dot_vec2_frag_xvaryyhalf.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "dot_vec3_frag_xvaryythird_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "dot_vec3_frag_xvaryythird.frag" >+ }, >+ "name": "dot_vec3_frag_xvaryythird.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "dot_float_vert_xvaryyone_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "dot_float_vert_xvaryyone.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "dot_float_vert_xvaryyone.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "dot_vec2_vert_xvaryyhalf_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "dot_vec2_vert_xvaryyhalf.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "dot_vec2_vert_xvaryyhalf.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "dot_vec3_vert_xvaryythird_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "dot_vec3_vert_xvaryythird.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "dot_vec3_vert_xvaryythird.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_float_frag_xvaryyone.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_float_frag_xvaryyone.frag >new file mode 100644 >index 00000000000..4dfef129c0a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_float_frag_xvaryyone.frag >@@ -0,0 +1,34 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ gl_FragColor = vec4(vec3(dot(color.r, 1.0)), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_float_frag_xvaryyone_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_float_frag_xvaryyone_ref.frag >new file mode 100644 >index 00000000000..1d8b5594dab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_float_frag_xvaryyone_ref.frag >@@ -0,0 +1,34 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ gl_FragColor = vec4(vec3(color.r), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_float_vert_xvaryyone.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_float_vert_xvaryyone.vert >new file mode 100644 >index 00000000000..d1df51840b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_float_vert_xvaryyone.vert >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ color = vec4(vec3(dot(gtf_Color.r, 1.0)), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_float_vert_xvaryyone_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_float_vert_xvaryyone_ref.vert >new file mode 100644 >index 00000000000..3d37b84fddd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_float_vert_xvaryyone_ref.vert >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ color = vec4(vec3(gtf_Color.r), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec2_frag_xvaryyhalf.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec2_frag_xvaryyhalf.frag >new file mode 100644 >index 00000000000..dc4389716de >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec2_frag_xvaryyhalf.frag >@@ -0,0 +1,34 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ gl_FragColor = vec4(vec3(dot(color.rg, vec2(0.5))), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec2_frag_xvaryyhalf_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec2_frag_xvaryyhalf_ref.frag >new file mode 100644 >index 00000000000..515e4965183 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec2_frag_xvaryyhalf_ref.frag >@@ -0,0 +1,34 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ gl_FragColor = vec4(vec3(color.r + color.g) * 0.5, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec2_vert_xvaryyhalf.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec2_vert_xvaryyhalf.vert >new file mode 100644 >index 00000000000..48cc60154d7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec2_vert_xvaryyhalf.vert >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ color = vec4(vec3(dot(gtf_Color.rg, vec2(0.5))), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec2_vert_xvaryyhalf_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec2_vert_xvaryyhalf_ref.vert >new file mode 100644 >index 00000000000..d5e6df67b18 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec2_vert_xvaryyhalf_ref.vert >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ color = vec4(vec3(gtf_Color.r + gtf_Color.g) * 0.5, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec3_frag_xvaryythird.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec3_frag_xvaryythird.frag >new file mode 100644 >index 00000000000..55205c28490 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec3_frag_xvaryythird.frag >@@ -0,0 +1,34 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ gl_FragColor = vec4(vec3(dot(color.rgb, vec3(0.3333))), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec3_frag_xvaryythird_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec3_frag_xvaryythird_ref.frag >new file mode 100644 >index 00000000000..cc4a934fb26 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec3_frag_xvaryythird_ref.frag >@@ -0,0 +1,34 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ gl_FragColor = vec4(vec3(color.r + color.g + color.b) * 0.3333, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec3_vert_xvaryythird.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec3_vert_xvaryythird.vert >new file mode 100644 >index 00000000000..69493de3ee2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec3_vert_xvaryythird.vert >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ color = vec4(vec3(dot(gtf_Color.rgb, vec3(0.3333))), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec3_vert_xvaryythird_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec3_vert_xvaryythird_ref.vert >new file mode 100644 >index 00000000000..5fc4c88057d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/dot_vec3_vert_xvaryythird_ref.vert >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ color = vec4(vec3(gtf_Color.r + gtf_Color.g + gtf_Color.b) * 0.3333, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/input.run.txt >new file mode 100644 >index 00000000000..e87547fd338 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/dot/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+dot_001_to_006.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_001_to_008.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_001_to_008.html >new file mode 100644 >index 00000000000..4342fa4478c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_001_to_008.html >@@ -0,0 +1,155 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: equal_001_to_008.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "equal_vec2_frag_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "equal_vec2_frag.frag" >+ }, >+ "name": "equal_vec2_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "equal_vec2_vert_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "equal_vec2_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "equal_vec2_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "equal_vec3_frag_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "equal_vec3_frag.frag" >+ }, >+ "name": "equal_vec3_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "equal_vec3_vert_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "equal_vec3_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "equal_vec3_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "equal_ivec2_frag_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "equal_ivec2_frag.frag" >+ }, >+ "name": "equal_ivec2_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "equal_ivec2_vert_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "equal_ivec2_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "equal_ivec2_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "equal_ivec3_frag_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "equal_ivec3_frag.frag" >+ }, >+ "name": "equal_ivec3_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "equal_ivec3_vert_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "equal_ivec3_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "equal_ivec3_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_009_to_012.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_009_to_012.html >new file mode 100644 >index 00000000000..ed5aa1a43ee >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_009_to_012.html >@@ -0,0 +1,103 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: equal_009_to_012.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "equal_bvec2_frag_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "equal_bvec2_frag.frag" >+ }, >+ "name": "equal_bvec2_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "equal_bvec2_vert_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "equal_bvec2_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "equal_bvec2_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "equal_bvec3_frag_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "equal_bvec3_frag.frag" >+ }, >+ "name": "equal_bvec3_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "equal_bvec3_vert_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "equal_bvec3_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "equal_bvec3_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec2_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec2_frag.frag >new file mode 100644 >index 00000000000..f934ea91c04 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec2_frag.frag >@@ -0,0 +1,40 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+#ifdef GL_FRAGMENT_PRECISION_HIGH >+precision highp float; >+#else >+precision mediump float; >+#endif >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = floor(1.5 * color.rg); // 1/3 true, 2/3 false >+ vec2 result = vec2(equal(bvec2(c), bvec2(true))); >+ gl_FragColor = vec4(result, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec2_frag_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec2_frag_ref.frag >new file mode 100644 >index 00000000000..574f95e09b8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec2_frag_ref.frag >@@ -0,0 +1,50 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+#ifdef GL_FRAGMENT_PRECISION_HIGH >+precision highp float; >+#else >+precision mediump float; >+#endif >+#endif >+varying vec4 color; >+ >+bvec2 eq(in bvec2 a, in bvec2 b) >+{ >+ bvec2 result; >+ if(a[0] == b[0]) result[0] = true; >+ else result[0] = false; >+ if(a[1] == b[1]) result[1] = true; >+ else result[1] = false; >+ return result; >+} >+ >+void main (void) >+{ >+ vec2 c = floor(1.5 * color.rg); // 1/3 true, 2/3 false >+ vec2 result = vec2(eq(bvec2(c), bvec2(true))); >+ gl_FragColor = vec4(result, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec2_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec2_vert.vert >new file mode 100644 >index 00000000000..0644c69de81 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec2_vert.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = floor(1.5 * gtf_Color.rg); // 1/3 true, 2/3 false >+ vec2 result = vec2(equal(bvec2(c), bvec2(true))); >+ color = vec4(result, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec2_vert_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec2_vert_ref.vert >new file mode 100644 >index 00000000000..fefac95747f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec2_vert_ref.vert >@@ -0,0 +1,47 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+bvec2 eq(in bvec2 a, in bvec2 b) >+{ >+ bvec2 result; >+ if(a[0] == b[0]) result[0] = true; >+ else result[0] = false; >+ if(a[1] == b[1]) result[1] = true; >+ else result[1] = false; >+ return result; >+} >+ >+void main (void) >+{ >+ vec2 c = floor(1.5 * gtf_Color.rg); // 1/3 true, 2/3 false >+ vec2 result = vec2(eq(bvec2(c), bvec2(true))); >+ color = vec4(result, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec3_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec3_frag.frag >new file mode 100644 >index 00000000000..f35039b8258 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec3_frag.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = floor(1.5 * color.rgb); // 1/3 true, 2/3 false >+ vec3 result = vec3(equal(bvec3(c), bvec3(true))); >+ gl_FragColor = vec4(result, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec3_frag_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec3_frag_ref.frag >new file mode 100644 >index 00000000000..e9047836e6e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec3_frag_ref.frag >@@ -0,0 +1,48 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+bvec3 eq(in bvec3 a, in bvec3 b) >+{ >+ bvec3 result; >+ if(a[0] == b[0]) result[0] = true; >+ else result[0] = false; >+ if(a[1] == b[1]) result[1] = true; >+ else result[1] = false; >+ if(a[2] == b[2]) result[2] = true; >+ else result[2] = false; >+ return result; >+} >+ >+void main (void) >+{ >+ vec3 c = floor(1.5 * color.rgb); // 1/3 true, 2/3 false >+ vec3 result = vec3(eq(bvec3(c), bvec3(true))); >+ gl_FragColor = vec4(result, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec3_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec3_vert.vert >new file mode 100644 >index 00000000000..8fd3ac79cf0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec3_vert.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = floor(1.5 * gtf_Color.rgb); // 1/3 true, 2/3 false >+ vec3 result = vec3(equal(bvec3(c), bvec3(true))); >+ color = vec4(result, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec3_vert_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec3_vert_ref.vert >new file mode 100644 >index 00000000000..528c56cc5a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_bvec3_vert_ref.vert >@@ -0,0 +1,49 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+bvec3 eq(in bvec3 a, in bvec3 b) >+{ >+ bvec3 result; >+ if(a[0] == b[0]) result[0] = true; >+ else result[0] = false; >+ if(a[1] == b[1]) result[1] = true; >+ else result[1] = false; >+ if(a[2] == b[2]) result[2] = true; >+ else result[2] = false; >+ return result; >+} >+ >+void main (void) >+{ >+ vec3 c = floor(1.5 * gtf_Color.rgb); // 1/3 true, 2/3 false >+ vec3 result = vec3(eq(bvec3(c), bvec3(true))); >+ color = vec4(result, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec2_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec2_frag.frag >new file mode 100644 >index 00000000000..03586f30372 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec2_frag.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = floor(10.0 * color.rg - 4.5); // round to the nearest integer >+ vec2 result = vec2(equal(ivec2(c), ivec2(0))); >+ gl_FragColor = vec4(result, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec2_frag_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec2_frag_ref.frag >new file mode 100644 >index 00000000000..0d714400ed4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec2_frag_ref.frag >@@ -0,0 +1,46 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+bvec2 eq(in ivec2 a, in ivec2 b) >+{ >+ bvec2 result; >+ if(a[0] == b[0]) result[0] = true; >+ else result[0] = false; >+ if(a[1] == b[1]) result[1] = true; >+ else result[1] = false; >+ return result; >+} >+ >+void main (void) >+{ >+ vec2 c = floor(10.0 * color.rg - 4.5); // round to the nearest integer >+ vec2 result = vec2(eq(ivec2(c), ivec2(0))); >+ gl_FragColor = vec4(result, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec2_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec2_vert.vert >new file mode 100644 >index 00000000000..eab3324fd66 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec2_vert.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = floor(10.0 * gtf_Color.rg - 4.5); // round to the nearest integer >+ vec2 result = vec2(equal(ivec2(c), ivec2(0))); >+ color = vec4(result, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec2_vert_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec2_vert_ref.vert >new file mode 100644 >index 00000000000..738a3d93b46 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec2_vert_ref.vert >@@ -0,0 +1,47 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+bvec2 eq(in ivec2 a, in ivec2 b) >+{ >+ bvec2 result; >+ if(a[0] == b[0]) result[0] = true; >+ else result[0] = false; >+ if(a[1] == b[1]) result[1] = true; >+ else result[1] = false; >+ return result; >+} >+ >+void main (void) >+{ >+ vec2 c = floor(10.0 * gtf_Color.rg - 4.5); // round to the nearest integer >+ vec2 result = vec2(eq(ivec2(c), ivec2(0))); >+ color = vec4(result, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec3_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec3_frag.frag >new file mode 100644 >index 00000000000..34ab9ce3eea >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec3_frag.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = floor(10.0 * color.rgb - 4.5); // round to the nearest integer >+ vec3 result = vec3(equal(ivec3(c), ivec3(0))); >+ gl_FragColor = vec4(result, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec3_frag_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec3_frag_ref.frag >new file mode 100644 >index 00000000000..3b6b2bc1bbd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec3_frag_ref.frag >@@ -0,0 +1,48 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+bvec3 eq(in ivec3 a, in ivec3 b) >+{ >+ bvec3 result; >+ if(a[0] == b[0]) result[0] = true; >+ else result[0] = false; >+ if(a[1] == b[1]) result[1] = true; >+ else result[1] = false; >+ if(a[2] == b[2]) result[2] = true; >+ else result[2] = false; >+ return result; >+} >+ >+void main (void) >+{ >+ vec3 c = floor(10.0 * color.rgb - 4.5); // round to the nearest integer >+ vec3 result = vec3(eq(ivec3(c), ivec3(0))); >+ gl_FragColor = vec4(result, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec3_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec3_vert.vert >new file mode 100644 >index 00000000000..dd847155526 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec3_vert.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = floor(10.0 * gtf_Color.rgb - 4.5); // round to the nearest integer >+ vec3 result = vec3(equal(ivec3(c), ivec3(0))); >+ color = vec4(result, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec3_vert_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec3_vert_ref.vert >new file mode 100644 >index 00000000000..5884c39a2a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_ivec3_vert_ref.vert >@@ -0,0 +1,49 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+bvec3 eq(in ivec3 a, in ivec3 b) >+{ >+ bvec3 result; >+ if(a[0] == b[0]) result[0] = true; >+ else result[0] = false; >+ if(a[1] == b[1]) result[1] = true; >+ else result[1] = false; >+ if(a[2] == b[2]) result[2] = true; >+ else result[2] = false; >+ return result; >+} >+ >+void main (void) >+{ >+ vec3 c = floor(10.0 * gtf_Color.rgb - 4.5); // round to the nearest integer >+ vec3 result = vec3(eq(ivec3(c), ivec3(0))); >+ color = vec4(result, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec2_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec2_frag.frag >new file mode 100644 >index 00000000000..33723d45353 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec2_frag.frag >@@ -0,0 +1,40 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+#ifdef GL_FRAGMENT_PRECISION_HIGH >+precision highp float; >+#else >+precision mediump float; >+#endif >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = floor(10.0 * color.rg - 4.5); // round to the nearest integer >+ vec2 result = vec2(equal(c, vec2(0.0))); >+ gl_FragColor = vec4(result, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec2_frag_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec2_frag_ref.frag >new file mode 100644 >index 00000000000..b343d82a2dc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec2_frag_ref.frag >@@ -0,0 +1,50 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+#ifdef GL_FRAGMENT_PRECISION_HIGH >+precision highp float; >+#else >+precision mediump float; >+#endif >+#endif >+varying vec4 color; >+ >+bvec2 eq(in vec2 a, in vec2 b) >+{ >+ bvec2 result; >+ if(a[0] == b[0]) result[0] = true; >+ else result[0] = false; >+ if(a[1] == b[1]) result[1] = true; >+ else result[1] = false; >+ return result; >+} >+ >+void main (void) >+{ >+ vec2 c = floor(10.0 * color.rg - 4.5); // round to the nearest integer >+ vec2 result = vec2(eq(c, vec2(0.0))); >+ gl_FragColor = vec4(result, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec2_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec2_vert.vert >new file mode 100644 >index 00000000000..bebfbb5e682 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec2_vert.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = floor(10.0 * gtf_Color.rg - 4.5); // round to the nearest integer >+ vec2 result = vec2(equal(c, vec2(0.0))); >+ color = vec4(result, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec2_vert_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec2_vert_ref.vert >new file mode 100644 >index 00000000000..89290a76066 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec2_vert_ref.vert >@@ -0,0 +1,47 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+bvec2 eq(in vec2 a, in vec2 b) >+{ >+ bvec2 result; >+ if(a[0] == b[0]) result[0] = true; >+ else result[0] = false; >+ if(a[1] == b[1]) result[1] = true; >+ else result[1] = false; >+ return result; >+} >+ >+void main (void) >+{ >+ vec2 c = floor(10.0 * gtf_Color.rg - 4.5); // round to the nearest integer >+ vec2 result = vec2(eq(c, vec2(0.0))); >+ color = vec4(result, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec3_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec3_frag.frag >new file mode 100644 >index 00000000000..fdccc651017 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec3_frag.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = floor(10.0 * color.rgb - 4.5); // round to the nearest integer >+ vec3 result = vec3(equal(c, vec3(0.0))); >+ gl_FragColor = vec4(result, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec3_frag_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec3_frag_ref.frag >new file mode 100644 >index 00000000000..541de85710d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec3_frag_ref.frag >@@ -0,0 +1,48 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+bvec3 eq(in vec3 a, in vec3 b) >+{ >+ bvec3 result; >+ if(a[0] == b[0]) result[0] = true; >+ else result[0] = false; >+ if(a[1] == b[1]) result[1] = true; >+ else result[1] = false; >+ if(a[2] == b[2]) result[2] = true; >+ else result[2] = false; >+ return result; >+} >+ >+void main (void) >+{ >+ vec3 c = floor(10.0 * color.rgb - 4.5); // round to the nearest integer >+ vec3 result = vec3(eq(c, vec3(0.0))); >+ gl_FragColor = vec4(result, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec3_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec3_vert.vert >new file mode 100644 >index 00000000000..d975735f3e0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec3_vert.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = floor(10.0 * gtf_Color.rgb - 4.5); // round to the nearest integer >+ vec3 result = vec3(equal(c, vec3(0.0))); >+ color = vec4(result, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec3_vert_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec3_vert_ref.vert >new file mode 100644 >index 00000000000..1dc5e80eac6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/equal_vec3_vert_ref.vert >@@ -0,0 +1,49 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+bvec3 eq(in vec3 a, in vec3 b) >+{ >+ bvec3 result; >+ if(a[0] == b[0]) result[0] = true; >+ else result[0] = false; >+ if(a[1] == b[1]) result[1] = true; >+ else result[1] = false; >+ if(a[2] == b[2]) result[2] = true; >+ else result[2] = false; >+ return result; >+} >+ >+void main (void) >+{ >+ vec3 c = floor(10.0 * gtf_Color.rgb - 4.5); // round to the nearest integer >+ vec3 result = vec3(eq(c, vec3(0.0))); >+ color = vec4(result, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/input.run.txt >new file mode 100644 >index 00000000000..cd4a81eb519 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/equal/input.run.txt >@@ -0,0 +1,3 @@ >+# this file is auto-generated. DO NOT EDIT. >+equal_001_to_008.html >+equal_009_to_012.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_001_to_008.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_001_to_008.html >new file mode 100644 >index 00000000000..6c765122077 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_001_to_008.html >@@ -0,0 +1,155 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: exp_001_to_008.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp_float_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp_float_frag_xvary.frag" >+ }, >+ "name": "exp_float_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp_vec2_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp_vec2_frag_xvary.frag" >+ }, >+ "name": "exp_vec2_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp_vec3_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp_vec3_frag_xvary.frag" >+ }, >+ "name": "exp_vec3_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp_float_frag_xvaryneg_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp_float_frag_xvaryneg.frag" >+ }, >+ "name": "exp_float_frag_xvaryneg.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp_vec2_frag_xvaryneg_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp_vec2_frag_xvaryneg.frag" >+ }, >+ "name": "exp_vec2_frag_xvaryneg.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp_vec3_frag_xvaryneg_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp_vec3_frag_xvaryneg.frag" >+ }, >+ "name": "exp_vec3_frag_xvaryneg.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "exp_float_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "exp_float_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "exp_float_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "exp_vec2_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "exp_vec2_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "exp_vec2_vert_xvary.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_009_to_012.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_009_to_012.html >new file mode 100644 >index 00000000000..f93be54e51c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_009_to_012.html >@@ -0,0 +1,103 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: exp_009_to_012.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "exp_vec3_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "exp_vec3_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "exp_vec3_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "exp_float_vert_xvaryneg_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "exp_float_vert_xvaryneg.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "exp_float_vert_xvaryneg.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "exp_vec2_vert_xvaryneg_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "exp_vec2_vert_xvaryneg.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "exp_vec2_vert_xvaryneg.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "exp_vec3_vert_xvaryneg_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "exp_vec3_vert_xvaryneg.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "exp_vec3_vert_xvaryneg.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_frag_xvary.frag >new file mode 100644 >index 00000000000..86ed7588cd0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_frag_xvary.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float exp3 = 20.0855; >+ float c = color.r; >+ gl_FragColor = vec4(exp(3.0 * c) / exp3, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..f13fca97d9e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_frag_xvary_ref.frag >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float exp1 = 2.7183; >+ const float exp3 = 20.0855; >+ float c = color.r; >+ gl_FragColor = vec4(pow(exp1, 3.0 * c) / exp3, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_frag_xvaryneg.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_frag_xvaryneg.frag >new file mode 100644 >index 00000000000..785a464714c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_frag_xvaryneg.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = -color.r; >+ gl_FragColor = vec4(exp(3.0 * c), 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_frag_xvaryneg_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_frag_xvaryneg_ref.frag >new file mode 100644 >index 00000000000..08503fa51dc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_frag_xvaryneg_ref.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float exp1 = 2.7183; >+ float c = color.r; >+ gl_FragColor = vec4(1.0 / pow(exp1, 3.0 * c), 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_vert_xvary.vert >new file mode 100644 >index 00000000000..df41faff3a1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_vert_xvary.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float exp3 = 20.0855; >+ float c = gtf_Color.r; >+ color = vec4(exp(3.0 * c) / exp3, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..f83a25bb8e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_vert_xvary_ref.vert >@@ -0,0 +1,38 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float exp1 = 2.7183; >+ const float exp3 = 20.0855; >+ float c = gtf_Color.r; >+ color = vec4(pow(exp1, 3.0 * c) / exp3, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_vert_xvaryneg.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_vert_xvaryneg.vert >new file mode 100644 >index 00000000000..7d1f08a6bbf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_vert_xvaryneg.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = -gtf_Color.r; >+ color = vec4(exp(3.0 * c), 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_vert_xvaryneg_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_vert_xvaryneg_ref.vert >new file mode 100644 >index 00000000000..b429ff8ff82 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_float_vert_xvaryneg_ref.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float exp1 = 2.7183; >+ float c = gtf_Color.r; >+ color = vec4(1.0 / pow(exp1, 3.0 * c), 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_frag_xvary.frag >new file mode 100644 >index 00000000000..be85cb373bc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_frag_xvary.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float exp3 = 20.0855; >+ vec2 c = color.rg; >+ gl_FragColor = vec4(exp(3.0 * c) / exp3, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..9b11c76721a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_frag_xvary_ref.frag >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float exp1 = 2.7183; >+ const float exp3 = 20.0855; >+ vec2 c = color.rg; >+ gl_FragColor = vec4(pow(vec2(exp1), 3.0 * c) / exp3, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_frag_xvaryneg.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_frag_xvaryneg.frag >new file mode 100644 >index 00000000000..5a81055ee72 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_frag_xvaryneg.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = -color.rg; >+ gl_FragColor = vec4(exp(3.0 * c), 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_frag_xvaryneg_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_frag_xvaryneg_ref.frag >new file mode 100644 >index 00000000000..ddfeae7f811 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_frag_xvaryneg_ref.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float exp1 = 2.7183; >+ vec2 c = color.rg; >+ gl_FragColor = vec4(1.0 / pow(vec2(exp1), 3.0 * c), 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_vert_xvary.vert >new file mode 100644 >index 00000000000..c22d89ed377 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_vert_xvary.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float exp3 = 20.0855; >+ vec2 c = gtf_Color.rg; >+ color = vec4(exp(3.0 * c) / exp3, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..47a68f504a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_vert_xvary_ref.vert >@@ -0,0 +1,38 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float exp1 = 2.7183; >+ const float exp3 = 20.0855; >+ vec2 c = gtf_Color.rg; >+ color = vec4(pow(vec2(exp1), 3.0 * c) / exp3, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_vert_xvaryneg.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_vert_xvaryneg.vert >new file mode 100644 >index 00000000000..aae926d6cfe >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_vert_xvaryneg.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = -gtf_Color.rg; >+ color = vec4(exp(3.0 * c), 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_vert_xvaryneg_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_vert_xvaryneg_ref.vert >new file mode 100644 >index 00000000000..90069564842 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec2_vert_xvaryneg_ref.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float exp1 = 2.7183; >+ vec2 c = gtf_Color.rg; >+ color = vec4(1.0 / pow(vec2(exp1), 3.0 * c), 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_frag_xvary.frag >new file mode 100644 >index 00000000000..446532a2ef3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_frag_xvary.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float exp3 = 20.0855; >+ vec3 c = color.rgb; >+ gl_FragColor = vec4(exp(3.0 * c) / exp3, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..b481b7dcd6b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_frag_xvary_ref.frag >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float exp1 = 2.7183; >+ const float exp3 = 20.0855; >+ vec3 c = color.rgb; >+ gl_FragColor = vec4(pow(vec3(exp1), 3.0 * c) / exp3, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_frag_xvaryneg.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_frag_xvaryneg.frag >new file mode 100644 >index 00000000000..a836e87868d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_frag_xvaryneg.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = -color.rgb; >+ gl_FragColor = vec4(exp(3.0 * c), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_frag_xvaryneg_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_frag_xvaryneg_ref.frag >new file mode 100644 >index 00000000000..e710a7973a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_frag_xvaryneg_ref.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float exp1 = 2.7183; >+ vec3 c = color.rgb; >+ gl_FragColor = vec4(1.0 / pow(vec3(exp1), 3.0 * c), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_vert_xvary.vert >new file mode 100644 >index 00000000000..b1056c28a24 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_vert_xvary.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float exp3 = 20.0855; >+ vec3 c = gtf_Color.rgb; >+ color = vec4(exp(3.0 * c) / exp3, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..f1385688cac >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_vert_xvary_ref.vert >@@ -0,0 +1,38 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float exp1 = 2.7183; >+ const float exp3 = 20.0855; >+ vec3 c = gtf_Color.rgb; >+ color = vec4(pow(vec3(exp1), 3.0 * c) / exp3, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_vert_xvaryneg.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_vert_xvaryneg.vert >new file mode 100644 >index 00000000000..d6c6c56446e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_vert_xvaryneg.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = -gtf_Color.rgb; >+ color = vec4(exp(3.0 * c), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_vert_xvaryneg_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_vert_xvaryneg_ref.vert >new file mode 100644 >index 00000000000..f361d9febf8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/exp_vec3_vert_xvaryneg_ref.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float exp1 = 2.7183; >+ vec3 c = gtf_Color.rgb; >+ color = vec4(1.0 / pow(vec3(exp1), 3.0 * c), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/input.run.txt >new file mode 100644 >index 00000000000..4f56a2b3297 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp/input.run.txt >@@ -0,0 +1,3 @@ >+# this file is auto-generated. DO NOT EDIT. >+exp_001_to_008.html >+exp_009_to_012.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_001_to_008.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_001_to_008.html >new file mode 100644 >index 00000000000..69095670b2a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_001_to_008.html >@@ -0,0 +1,155 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: exp2_001_to_008.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp2_float_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp2_float_frag_xvary.frag" >+ }, >+ "name": "exp2_float_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp2_vec2_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp2_vec2_frag_xvary.frag" >+ }, >+ "name": "exp2_vec2_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp2_vec3_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp2_vec3_frag_xvary.frag" >+ }, >+ "name": "exp2_vec3_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp2_float_frag_xvaryneg_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp2_float_frag_xvaryneg.frag" >+ }, >+ "name": "exp2_float_frag_xvaryneg.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp2_vec2_frag_xvaryneg_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp2_vec2_frag_xvaryneg.frag" >+ }, >+ "name": "exp2_vec2_frag_xvaryneg.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp2_vec3_frag_xvaryneg_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "exp2_vec3_frag_xvaryneg.frag" >+ }, >+ "name": "exp2_vec3_frag_xvaryneg.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "exp2_float_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "exp2_float_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "exp2_float_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "exp2_vec2_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "exp2_vec2_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "exp2_vec2_vert_xvary.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_009_to_012.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_009_to_012.html >new file mode 100644 >index 00000000000..211fac0bcbd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_009_to_012.html >@@ -0,0 +1,103 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: exp2_009_to_012.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "exp2_vec3_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "exp2_vec3_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "exp2_vec3_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "exp2_float_vert_xvaryneg_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "exp2_float_vert_xvaryneg.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "exp2_float_vert_xvaryneg.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "exp2_vec2_vert_xvaryneg_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "exp2_vec2_vert_xvaryneg.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "exp2_vec2_vert_xvaryneg.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "exp2_vec3_vert_xvaryneg_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "exp2_vec3_vert_xvaryneg.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "exp2_vec3_vert_xvaryneg.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_frag_xvary.frag >new file mode 100644 >index 00000000000..922a733df7c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_frag_xvary.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = color.r; >+ gl_FragColor = vec4(exp2(5.0 * c) / 32.0, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..88a6eae8e24 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_frag_xvary_ref.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = color.r; >+ gl_FragColor = vec4(pow(2.0, 5.0 * c) / 32.0, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_frag_xvaryneg.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_frag_xvaryneg.frag >new file mode 100644 >index 00000000000..9140264056f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_frag_xvaryneg.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = -color.r; >+ gl_FragColor = vec4(exp2(5.0 * c), 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_frag_xvaryneg_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_frag_xvaryneg_ref.frag >new file mode 100644 >index 00000000000..d8167046f1f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_frag_xvaryneg_ref.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = color.r; >+ gl_FragColor = vec4(1.0 / pow(2.0, 5.0 * c), 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_vert_xvary.vert >new file mode 100644 >index 00000000000..c3b914833a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_vert_xvary.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = gtf_Color.r; >+ color = vec4(exp2(5.0 * c) / 32.0, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..69898a60302 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_vert_xvary_ref.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = gtf_Color.r; >+ color = vec4(pow(2.0, 5.0 * c) / 32.0, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_vert_xvaryneg.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_vert_xvaryneg.vert >new file mode 100644 >index 00000000000..8955e3cfb0c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_vert_xvaryneg.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = -gtf_Color.r; >+ color = vec4(exp2(5.0 * c), 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_vert_xvaryneg_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_vert_xvaryneg_ref.vert >new file mode 100644 >index 00000000000..2fc614e5a3f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_float_vert_xvaryneg_ref.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = gtf_Color.r; >+ color = vec4(1.0 / pow(2.0, 5.0 * c), 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_frag_xvary.frag >new file mode 100644 >index 00000000000..8af82a79b24 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_frag_xvary.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = color.rg; >+ gl_FragColor = vec4(exp2(5.0 * c) / 32.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..77c44ff3d4d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_frag_xvary_ref.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = color.rg; >+ gl_FragColor = vec4(pow(vec2(2.0), 5.0 * c) / 32.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_frag_xvaryneg.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_frag_xvaryneg.frag >new file mode 100644 >index 00000000000..b7805beadfb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_frag_xvaryneg.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = -color.rg; >+ gl_FragColor = vec4(exp2(5.0 * c), 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_frag_xvaryneg_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_frag_xvaryneg_ref.frag >new file mode 100644 >index 00000000000..ddfaea25027 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_frag_xvaryneg_ref.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = color.rg; >+ gl_FragColor = vec4(1.0 / pow(vec2(2.0), 5.0 * c), 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_vert_xvary.vert >new file mode 100644 >index 00000000000..9903e66923b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_vert_xvary.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = gtf_Color.rg; >+ color = vec4(exp2(5.0 * c) / 32.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..da02403b26d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_vert_xvary_ref.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = gtf_Color.rg; >+ color = vec4(pow(vec2(2.0), 5.0 * c) / 32.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_vert_xvaryneg.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_vert_xvaryneg.vert >new file mode 100644 >index 00000000000..b94b23dd354 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_vert_xvaryneg.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = -gtf_Color.rg; >+ color = vec4(exp2(5.0 * c), 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_vert_xvaryneg_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_vert_xvaryneg_ref.vert >new file mode 100644 >index 00000000000..8284a474ecf >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec2_vert_xvaryneg_ref.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = gtf_Color.rg; >+ color = vec4(1.0 / pow(vec2(2.0), 5.0 * c), 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_frag_xvary.frag >new file mode 100644 >index 00000000000..1f289ce1556 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_frag_xvary.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = color.rgb; >+ gl_FragColor = vec4(exp2(5.0 * c) / 32.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..b75546900e9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_frag_xvary_ref.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = color.rgb; >+ gl_FragColor = vec4(pow(vec3(2.0), 5.0 * c) / 32.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_frag_xvaryneg.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_frag_xvaryneg.frag >new file mode 100644 >index 00000000000..c401e57d88e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_frag_xvaryneg.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = -color.rgb; >+ gl_FragColor = vec4(exp2(5.0 * c), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_frag_xvaryneg_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_frag_xvaryneg_ref.frag >new file mode 100644 >index 00000000000..6f945903d5f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_frag_xvaryneg_ref.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = color.rgb; >+ gl_FragColor = vec4(1.0 / pow(vec3(2.0), 5.0 * c), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_vert_xvary.vert >new file mode 100644 >index 00000000000..d59cb3ef5f8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_vert_xvary.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = gtf_Color.rgb; >+ color = vec4(exp2(5.0 * c) / 32.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..3e8cc48a036 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_vert_xvary_ref.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = gtf_Color.rgb; >+ color = vec4(pow(vec3(2.0), 5.0 * c) / 32.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_vert_xvaryneg.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_vert_xvaryneg.vert >new file mode 100644 >index 00000000000..4d154bc17cd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_vert_xvaryneg.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = -gtf_Color.rgb; >+ color = vec4(exp2(5.0 * c), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_vert_xvaryneg_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_vert_xvaryneg_ref.vert >new file mode 100644 >index 00000000000..b0bc7818d32 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/exp2_vec3_vert_xvaryneg_ref.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = gtf_Color.rgb; >+ color = vec4(1.0 / pow(vec3(2.0), 5.0 * c), 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/input.run.txt >new file mode 100644 >index 00000000000..f893cd413eb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/exp2/input.run.txt >@@ -0,0 +1,3 @@ >+# this file is auto-generated. DO NOT EDIT. >+exp2_001_to_008.html >+exp2_009_to_012.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_001_to_006.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_001_to_006.html >new file mode 100644 >index 00000000000..4d484d5e419 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_001_to_006.html >@@ -0,0 +1,129 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: faceforward_001_to_006.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "faceforward_float_frag_nvaryiconst_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "faceforward_float_frag_nvaryiconst.frag" >+ }, >+ "name": "faceforward_float_frag_nvaryiconst.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "faceforward_float_vert_nvaryiconst_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "faceforward_float_vert_nvaryiconst.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "faceforward_float_vert_nvaryiconst.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "faceforward_vec2_frag_nvaryiconst_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "faceforward_vec2_frag_nvaryiconst.frag" >+ }, >+ "name": "faceforward_vec2_frag_nvaryiconst.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "faceforward_vec2_vert_nvaryiconst_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "faceforward_vec2_vert_nvaryiconst.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "faceforward_vec2_vert_nvaryiconst.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "faceforward_vec3_frag_nvaryiconst_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "faceforward_vec3_frag_nvaryiconst.frag" >+ }, >+ "name": "faceforward_vec3_frag_nvaryiconst.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "faceforward_vec3_vert_nvaryiconst_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "faceforward_vec3_vert_nvaryiconst.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "faceforward_vec3_vert_nvaryiconst.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_float_frag_nvaryiconst.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_float_frag_nvaryiconst.frag >new file mode 100644 >index 00000000000..07ef6fbf0db >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_float_frag_nvaryiconst.frag >@@ -0,0 +1,40 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ >+ // Both are unit vectors >+ float v1 = (color.g * 2.0) - 1.0; >+ float v2 = (color.b * 2.0) - 1.0; >+ >+ gl_FragColor = vec4((faceforward(v1, v2, v1) + 1.0) / 2.0, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_float_frag_nvaryiconst_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_float_frag_nvaryiconst_ref.frag >new file mode 100644 >index 00000000000..5b5b2fd3e9d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_float_frag_nvaryiconst_ref.frag >@@ -0,0 +1,41 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ >+ // Both are unit vectors >+ float v1 = (color.g * 2.0) - 1.0; >+ float v2 = (color.b * 2.0) - 1.0; >+ >+ if(dot(v1, v2) >= 0.0) v1 *= -1.0; >+ gl_FragColor = vec4((v1 + 1.0) / 2.0, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_float_vert_nvaryiconst.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_float_vert_nvaryiconst.vert >new file mode 100644 >index 00000000000..77d5d796ecc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_float_vert_nvaryiconst.vert >@@ -0,0 +1,41 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ >+ // Both are unit vectors >+ float v1 = (gtf_Color.g * 2.0) - 1.0; >+ float v2 = (gtf_Color.b * 2.0) - 1.0; >+ >+ color = vec4((faceforward(v1, v2, v1) + 1.0) / 2.0, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_float_vert_nvaryiconst_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_float_vert_nvaryiconst_ref.vert >new file mode 100644 >index 00000000000..0e1d365b3bc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_float_vert_nvaryiconst_ref.vert >@@ -0,0 +1,42 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ >+ // Both are unit vectors >+ float v1 = (gtf_Color.g * 2.0) - 1.0; >+ float v2 = (gtf_Color.b * 2.0) - 1.0; >+ >+ if(dot(v1, v2) >= 0.0) v1 *= -1.0; >+ color = vec4((v1 + 1.0) / 2.0, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec2_frag_nvaryiconst.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec2_frag_nvaryiconst.frag >new file mode 100644 >index 00000000000..ec0f1c2f357 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec2_frag_nvaryiconst.frag >@@ -0,0 +1,46 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ >+ // Both are unit vectors >+ vec2 v1; >+ vec2 v2 = normalize(vec2(1.0, 1.0)); >+ >+ >+ float theta = color.g * 2.0 * M_PI; >+ float phi = color.b * 2.0 * M_PI; >+ v1.x = cos(theta) * sin(phi); >+ v1.y = sin(theta) * sin(phi); >+ >+ gl_FragColor = vec4((faceforward(v1, v2, v1) + 1.0) / 2.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec2_frag_nvaryiconst_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec2_frag_nvaryiconst_ref.frag >new file mode 100644 >index 00000000000..a50f4548506 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec2_frag_nvaryiconst_ref.frag >@@ -0,0 +1,47 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ >+ // Both are unit vectors >+ vec2 v1; >+ vec2 v2 = normalize(vec2(1.0, 1.0)); >+ >+ >+ float theta = color.g * 2.0 * M_PI; >+ float phi = color.b * 2.0 * M_PI; >+ v1.x = cos(theta) * sin(phi); >+ v1.y = sin(theta) * sin(phi); >+ >+ if(dot(v1, v2) >= 0.0) v1 *= -1.0; >+ gl_FragColor = vec4((v1 + 1.0) / 2.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec2_vert_nvaryiconst.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec2_vert_nvaryiconst.vert >new file mode 100644 >index 00000000000..80d186c978a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec2_vert_nvaryiconst.vert >@@ -0,0 +1,46 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ >+ // Both are unit vectors >+ vec2 v1; >+ vec2 v2 = normalize(vec2(1.0, 1.0)); >+ >+ float theta = gtf_Color.g * 2.0 * M_PI; >+ float phi = gtf_Color.b * 2.0 * M_PI; >+ v1.x = cos(theta) * sin(phi); >+ v1.y = sin(theta) * sin(phi); >+ >+ color = vec4((faceforward(v1, v2, v1) + 1.0) / 2.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec2_vert_nvaryiconst_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec2_vert_nvaryiconst_ref.vert >new file mode 100644 >index 00000000000..41a04ef6035 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec2_vert_nvaryiconst_ref.vert >@@ -0,0 +1,47 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ >+ // Both are unit vectors >+ vec2 v1; >+ vec2 v2 = normalize(vec2(1.0, 1.0)); >+ >+ float theta = gtf_Color.g * 2.0 * M_PI; >+ float phi = gtf_Color.b * 2.0 * M_PI; >+ v1.x = cos(theta) * sin(phi); >+ v1.y = sin(theta) * sin(phi); >+ >+ if(dot(v1, v2) >= 0.0) v1 *= -1.0; >+ color = vec4((v1 + 1.0) / 2.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec3_frag_nvaryiconst.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec3_frag_nvaryiconst.frag >new file mode 100644 >index 00000000000..5db1d0fc5fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec3_frag_nvaryiconst.frag >@@ -0,0 +1,47 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ >+ // Both are unit vectors >+ vec3 v1; >+ vec3 v2 = normalize(vec3(1.0, 1.0, 1.0)); >+ >+ >+ float theta = color.g * 2.0 * M_PI; >+ float phi = color.b * 2.0 * M_PI; >+ v1.x = cos(theta) * sin(phi); >+ v1.y = sin(theta) * sin(phi); >+ v1.z = cos(phi); >+ >+ gl_FragColor = vec4((faceforward(v1, v2, v1) + 1.0) / 2.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec3_frag_nvaryiconst_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec3_frag_nvaryiconst_ref.frag >new file mode 100644 >index 00000000000..fb68855f7fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec3_frag_nvaryiconst_ref.frag >@@ -0,0 +1,48 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ >+ // Both are unit vectors >+ vec3 v1; >+ vec3 v2 = normalize(vec3(1.0, 1.0, 1.0)); >+ >+ >+ float theta = color.g * 2.0 * M_PI; >+ float phi = color.b * 2.0 * M_PI; >+ v1.x = cos(theta) * sin(phi); >+ v1.y = sin(theta) * sin(phi); >+ v1.z = cos(phi); >+ >+ if(dot(v1, v2) >= 0.0) v1 *= -1.0; >+ gl_FragColor = vec4((v1 + 1.0) / 2.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec3_vert_nvaryiconst.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec3_vert_nvaryiconst.vert >new file mode 100644 >index 00000000000..a745681dd55 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec3_vert_nvaryiconst.vert >@@ -0,0 +1,47 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ >+ // Both are unit vectors >+ vec3 v1; >+ vec3 v2 = normalize(vec3(1.0, 1.0, 1.0)); >+ >+ float theta = gtf_Color.g * 2.0 * M_PI; >+ float phi = gtf_Color.b * 2.0 * M_PI; >+ v1.x = cos(theta) * sin(phi); >+ v1.y = sin(theta) * sin(phi); >+ v1.z = cos(phi); >+ >+ color = vec4((faceforward(v1, v2, v1) + 1.0) / 2.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec3_vert_nvaryiconst_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec3_vert_nvaryiconst_ref.vert >new file mode 100644 >index 00000000000..d08a74620a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/faceforward_vec3_vert_nvaryiconst_ref.vert >@@ -0,0 +1,48 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ const float M_PI = 3.14159265358979323846; >+ >+ // Both are unit vectors >+ vec3 v1; >+ vec3 v2 = normalize(vec3(1.0, 1.0, 1.0)); >+ >+ float theta = gtf_Color.g * 2.0 * M_PI; >+ float phi = gtf_Color.b * 2.0 * M_PI; >+ v1.x = cos(theta) * sin(phi); >+ v1.y = sin(theta) * sin(phi); >+ v1.z = cos(phi); >+ >+ if(dot(v1, v2) >= 0.0) v1 *= -1.0; >+ color = vec4((v1 + 1.0) / 2.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/input.run.txt >new file mode 100644 >index 00000000000..4107e639799 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/faceforward/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+faceforward_001_to_006.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_001_to_006.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_001_to_006.html >new file mode 100644 >index 00000000000..97033bf5783 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_001_to_006.html >@@ -0,0 +1,129 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: floor_001_to_006.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "floor_float_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "floor_float_frag_xvary.frag" >+ }, >+ "name": "floor_float_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "floor_vec2_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "floor_vec2_frag_xvary.frag" >+ }, >+ "name": "floor_vec2_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "floor_vec3_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "floor_vec3_frag_xvary.frag" >+ }, >+ "name": "floor_vec3_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "floor_float_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "floor_float_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "floor_float_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "floor_vec2_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "floor_vec2_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "floor_vec2_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "floor_vec3_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "floor_vec3_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "floor_vec3_vert_xvary.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_float_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_float_frag_xvary.frag >new file mode 100644 >index 00000000000..3f918841870 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_float_frag_xvary.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = 10.0 * 2.0 * (color.r - 0.5); >+ gl_FragColor = vec4((floor(c) + 10.0) / 20.0, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_float_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_float_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..11ec5e6e275 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_float_frag_xvary_ref.frag >@@ -0,0 +1,44 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+float floor_ref(float x) >+{ >+ if(x >= 0.0) >+ x = float(int(x)); >+ else >+ x = float(int(x) - 1); >+ return x; >+} >+ >+void main (void) >+{ >+ float c = 10.0 * 2.0 * (color.r - 0.5); >+ gl_FragColor = vec4((floor_ref(c) + 10.0) / 20.0, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_float_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_float_vert_xvary.vert >new file mode 100644 >index 00000000000..1ed8d39c665 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_float_vert_xvary.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = 10.0 * 2.0 * (gtf_Color.r - 0.5); >+ color = vec4((floor(c) + 10.0) / 20.0, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_float_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_float_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..5be14322e69 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_float_vert_xvary_ref.vert >@@ -0,0 +1,45 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+float floor_ref(float x) >+{ >+ if(x >= 0.0) >+ x = float(int(x)); >+ else >+ x = float(int(x) - 1); >+ return x; >+} >+ >+void main (void) >+{ >+ float c = 10.0 * 2.0 * (gtf_Color.r - 0.5); >+ color = vec4((floor_ref(c) + 10.0) / 20.0, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec2_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec2_frag_xvary.frag >new file mode 100644 >index 00000000000..1a56a4fcf47 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec2_frag_xvary.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = 10.0 * 2.0 * (color.rg - 0.5); >+ gl_FragColor = vec4((floor(c) + 10.0) / 20.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec2_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec2_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..f8aba8d5e62 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec2_frag_xvary_ref.frag >@@ -0,0 +1,48 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+vec2 floor_ref(vec2 x) >+{ >+ if(x[0] >= 0.0) >+ x[0] = float(int(x[0])); >+ else >+ x[0] = float(int(x[0]) - 1); >+ if(x[1] >= 0.0) >+ x[1] = float(int(x[1])); >+ else >+ x[1] = float(int(x[1]) - 1); >+ return x; >+} >+ >+void main (void) >+{ >+ vec2 c = 10.0 * 2.0 * (color.rg - 0.5); >+ gl_FragColor = vec4((floor_ref(c) + 10.0) / 20.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec2_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec2_vert_xvary.vert >new file mode 100644 >index 00000000000..c977d879b22 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec2_vert_xvary.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = 10.0 * 2.0 * (gtf_Color.rg - 0.5); >+ color = vec4((floor(c) + 10.0) / 20.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec2_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec2_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..232d5fee3a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec2_vert_xvary_ref.vert >@@ -0,0 +1,49 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+vec2 floor_ref(vec2 x) >+{ >+ if(x[0] >= 0.0) >+ x[0] = float(int(x[0])); >+ else >+ x[0] = float(int(x[0]) - 1); >+ if(x[1] >= 0.0) >+ x[1] = float(int(x[1])); >+ else >+ x[1] = float(int(x[1]) - 1); >+ return x; >+} >+ >+void main (void) >+{ >+ vec2 c = 10.0 * 2.0 * (gtf_Color.rg - 0.5); >+ color = vec4((floor_ref(c) + 10.0) / 20.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec3_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec3_frag_xvary.frag >new file mode 100644 >index 00000000000..bb7f72018d7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec3_frag_xvary.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = 10.0 * 2.0 * (color.rgb - 0.5); >+ gl_FragColor = vec4((floor(c) + 10.0) / 20.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec3_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec3_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..1209631ef0f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec3_frag_xvary_ref.frag >@@ -0,0 +1,52 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+vec3 floor_ref(vec3 x) >+{ >+ if(x[0] >= 0.0) >+ x[0] = float(int(x[0])); >+ else >+ x[0] = float(int(x[0]) - 1); >+ if(x[1] >= 0.0) >+ x[1] = float(int(x[1])); >+ else >+ x[1] = float(int(x[1]) - 1); >+ if(x[2] >= 0.0) >+ x[2] = float(int(x[2])); >+ else >+ x[2] = float(int(x[2]) - 1); >+ return x; >+} >+ >+void main (void) >+{ >+ vec3 c = 10.0 * 2.0 * (color.rgb - 0.5); >+ gl_FragColor = vec4((floor_ref(c) + 10.0) / 20.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec3_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec3_vert_xvary.vert >new file mode 100644 >index 00000000000..febeb930c41 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec3_vert_xvary.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = 10.0 * 2.0 * (gtf_Color.rgb - 0.5); >+ color = vec4((floor(c) + 10.0) / 20.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec3_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec3_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..247aa1aa35d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/floor_vec3_vert_xvary_ref.vert >@@ -0,0 +1,53 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+vec3 floor_ref(vec3 x) >+{ >+ if(x[0] >= 0.0) >+ x[0] = float(int(x[0])); >+ else >+ x[0] = float(int(x[0]) - 1); >+ if(x[1] >= 0.0) >+ x[1] = float(int(x[1])); >+ else >+ x[1] = float(int(x[1]) - 1); >+ if(x[2] >= 0.0) >+ x[2] = float(int(x[2])); >+ else >+ x[2] = float(int(x[2]) - 1); >+ return x; >+} >+ >+void main (void) >+{ >+ vec3 c = 10.0 * 2.0 * (gtf_Color.rgb - 0.5); >+ color = vec4((floor_ref(c) + 10.0) / 20.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/input.run.txt >new file mode 100644 >index 00000000000..337787db8b9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/floor/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+floor_001_to_006.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_001_to_006.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_001_to_006.html >new file mode 100644 >index 00000000000..a750cb2fbce >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_001_to_006.html >@@ -0,0 +1,129 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: fract_001_to_006.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "fract_float_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "fract_float_frag_xvary.frag" >+ }, >+ "name": "fract_float_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "fract_vec2_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "fract_vec2_frag_xvary.frag" >+ }, >+ "name": "fract_vec2_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "fract_vec3_frag_xvary_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "fract_vec3_frag_xvary.frag" >+ }, >+ "name": "fract_vec3_frag_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "fract_float_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "fract_float_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "fract_float_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "fract_vec2_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "fract_vec2_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "fract_vec2_vert_xvary.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "fract_vec3_vert_xvary_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "fract_vec3_vert_xvary.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "fract_vec3_vert_xvary.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_float_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_float_frag_xvary.frag >new file mode 100644 >index 00000000000..8ad6c92f968 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_float_frag_xvary.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = 10.0 * 2.0 * (color.r - 0.5); >+ c = abs(fract(c) - 0.5) * 2.0; >+ gl_FragColor = vec4(c, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_float_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_float_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..2105d7fcd78 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_float_frag_xvary_ref.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = 10.0 * 2.0 * (color.r - 0.5); >+ c = abs((c - floor(c)) - 0.5) * 2.0; >+ gl_FragColor = vec4(c, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_float_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_float_vert_xvary.vert >new file mode 100644 >index 00000000000..8724037ff68 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_float_vert_xvary.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = 10.0 * 2.0 * (gtf_Color.r - 0.5); >+ c = abs(fract(c) - 0.5) * 2.0; >+ color = vec4(c, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_float_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_float_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..773fd79049a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_float_vert_xvary_ref.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ float c = 10.0 * 2.0 * (gtf_Color.r - 0.5); >+ c = abs((c - floor(c)) - 0.5) * 2.0; >+ color = vec4(c, 0.0, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec2_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec2_frag_xvary.frag >new file mode 100644 >index 00000000000..6d9e3fa0bd1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec2_frag_xvary.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = 10.0 * 2.0 * (color.rg - 0.5); >+ c = abs(fract(c) - 0.5) * 2.0; >+ gl_FragColor = vec4(c, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec2_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec2_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..222b2e96f57 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec2_frag_xvary_ref.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = 10.0 * 2.0 * (color.rg - 0.5); >+ c = abs((c - floor(c)) - 0.5) * 2.0; >+ gl_FragColor = vec4(c, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec2_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec2_vert_xvary.vert >new file mode 100644 >index 00000000000..bb8acce361a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec2_vert_xvary.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = 10.0 * 2.0 * (gtf_Color.rg - 0.5); >+ c = abs(fract(c) - 0.5) * 2.0; >+ color = vec4(c, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec2_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec2_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..31546ff4a82 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec2_vert_xvary_ref.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = 10.0 * 2.0 * (gtf_Color.rg - 0.5); >+ c = abs((c - floor(c)) - 0.5) * 2.0; >+ color = vec4(c, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec3_frag_xvary.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec3_frag_xvary.frag >new file mode 100644 >index 00000000000..bf409a7a040 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec3_frag_xvary.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = 10.0 * 2.0 * (color.rgb - 0.5); >+ c = abs(fract(c) - 0.5) * 2.0; >+ gl_FragColor = vec4(c, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec3_frag_xvary_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec3_frag_xvary_ref.frag >new file mode 100644 >index 00000000000..8a684230394 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec3_frag_xvary_ref.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = 10.0 * 2.0 * (color.rgb - 0.5); >+ c = abs((c - floor(c)) - 0.5) * 2.0; >+ gl_FragColor = vec4(c, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec3_vert_xvary.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec3_vert_xvary.vert >new file mode 100644 >index 00000000000..2d83b034800 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec3_vert_xvary.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = 10.0 * 2.0 * (gtf_Color.rgb - 0.5); >+ c = abs(fract(c) - 0.5) * 2.0; >+ color = vec4(c, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec3_vert_xvary_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec3_vert_xvary_ref.vert >new file mode 100644 >index 00000000000..5092c853393 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/fract_vec3_vert_xvary_ref.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec3 c = 10.0 * 2.0 * (gtf_Color.rgb - 0.5); >+ c = abs((c - floor(c)) - 0.5) * 2.0; >+ color = vec4(c, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/input.run.txt >new file mode 100644 >index 00000000000..74ccc68b54c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/fract/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+fract_001_to_006.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/array_float_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/array_float_frag.frag >new file mode 100644 >index 00000000000..594afd9409f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/array_float_frag.frag >@@ -0,0 +1,102 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+ >+ >+void qualifiers(in float a[4], out float b[4], inout float c[4], const in float d[4], float e[4]) >+{ >+ b[0] = a[0]; >+ c[0] += d[0]; >+ a[0] += 1.0; >+ e[0] += 1.0; >+ >+ b[1] = a[1]; >+ c[1] += d[1]; >+ a[1] += 1.0; >+ e[1] += 1.0; >+ >+ b[2] = a[2]; >+ c[2] += d[2]; >+ a[2] += 1.0; >+ e[2] += 1.0; >+ >+ b[3] = a[3]; >+ c[3] += d[3]; >+ a[3] += 1.0; >+ e[3] += 1.0; >+} >+ >+ >+ >+void main (void) >+{ >+ float a[4]; >+ float b[4]; >+ float c[4]; >+ float d[4]; >+ float e[4]; >+ float q = 0.0; >+ float q2 = 0.0; >+ >+ a[0] = 1.0; >+ b[0] = 2.0; >+ c[0] = 3.0; >+ d[0] = 4.0; >+ e[0] = 1.0; >+ >+ a[1] = 1.0; >+ b[1] = 2.0; >+ c[1] = 3.0; >+ d[1] = 4.0; >+ e[1] = 1.0; >+ >+ a[2] = 1.0; >+ b[2] = 2.0; >+ c[2] = 3.0; >+ d[2] = 4.0; >+ e[2] = 1.0; >+ >+ a[3] = 1.0; >+ b[3] = 2.0; >+ c[3] = 3.0; >+ d[3] = 4.0; >+ e[3] = 1.0; >+ >+ qualifiers(a, b, c, d, e); >+ >+ // randomly test a value >+ if(a[0] == 1.0) q += 1.0; >+ if(b[1] == 1.0) q += 2.0; >+ if(c[2] == 7.0) q += 4.0; >+ if(d[3] == 4.0) q2 += 1.0; >+ if(e[0] == 1.0) q2 += 2.0; >+ >+ gl_FragColor = vec4(vec2(q / 7.0, q2 / 3.0), 1.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/array_float_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/array_float_vert.vert >new file mode 100644 >index 00000000000..64d23d278ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/array_float_vert.vert >@@ -0,0 +1,103 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+ >+ >+void qualifiers(in float a[4], out float b[4], inout float c[4], const in float d[4], float e[4]) >+{ >+ b[0] = a[0]; >+ c[0] += d[0]; >+ a[0] += 1.0; >+ e[0] += 1.0; >+ >+ b[1] = a[1]; >+ c[1] += d[1]; >+ a[1] += 1.0; >+ e[1] += 1.0; >+ >+ b[2] = a[2]; >+ c[2] += d[2]; >+ a[2] += 1.0; >+ e[2] += 1.0; >+ >+ b[3] = a[3]; >+ c[3] += d[3]; >+ a[3] += 1.0; >+ e[3] += 1.0; >+} >+ >+ >+ >+ >+void main (void) >+{ >+ float a[4]; >+ float b[4]; >+ float c[4]; >+ float d[4]; >+ float e[4]; >+ float q = 0.0; >+ float q2 = 0.0; >+ >+ a[0] = 1.0; >+ b[0] = 2.0; >+ c[0] = 3.0; >+ d[0] = 4.0; >+ e[0] = 1.0; >+ >+ a[1] = 1.0; >+ b[1] = 2.0; >+ c[1] = 3.0; >+ d[1] = 4.0; >+ e[1] = 1.0; >+ >+ a[2] = 1.0; >+ b[2] = 2.0; >+ c[2] = 3.0; >+ d[2] = 4.0; >+ e[2] = 1.0; >+ >+ a[3] = 1.0; >+ b[3] = 2.0; >+ c[3] = 3.0; >+ d[3] = 4.0; >+ e[3] = 1.0; >+ >+ qualifiers(a, b, c, d, e); >+ >+ // randomly test a value >+ if(a[0] == 1.0) q += 1.0; >+ if(b[1] == 1.0) q += 2.0; >+ if(c[2] == 7.0) q += 4.0; >+ if(d[3] == 4.0) q2 += 1.0; >+ if(e[0] == 1.0) q2 += 2.0; >+ >+ color = vec4(vec2(q / 7.0, q2 / 3.0), 1.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_empty_bool_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_empty_bool_array_frag.frag >new file mode 100644 >index 00000000000..6ba41dea092 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_empty_bool_array_frag.frag >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+bool function(bool par[3]); >+bool is_all(const in bool array[3], const in bool value); >+void set_all(out bool array[3], const in bool value); >+ >+void main (void) >+{ >+ bool par[3]; >+ bool ret = false; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to true. >+ set_all(par, true); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return true. >+ if(is_all(par, true) && ret) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+bool function(bool par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, true)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, false); >+ >+ return true; >+ } >+ else >+ return false; >+} >+ >+bool is_all(const in bool array[3], const in bool value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bool array[3], const in bool value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_empty_bool_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_empty_bool_array_vert.vert >new file mode 100644 >index 00000000000..3d643b15239 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_empty_bool_array_vert.vert >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+bool function(bool par[3]); >+bool is_all(const in bool array[3], const in bool value); >+void set_all(out bool array[3], const in bool value); >+ >+void main (void) >+{ >+ bool par[3]; >+ bool ret = false; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to true. >+ set_all(par, true); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return true. >+ if(is_all(par, true) && ret) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+bool function(bool par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, true)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, false); >+ >+ return true; >+ } >+ else >+ return false; >+} >+ >+bool is_all(const in bool array[3], const in bool value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bool array[3], const in bool value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_empty_bool_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_empty_bool_empty_frag.frag >new file mode 100644 >index 00000000000..900dbd26306 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_empty_bool_empty_frag.frag >@@ -0,0 +1,65 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+bool function(bool par); >+ >+void main (void) >+{ >+ bool par = true; >+ bool ret = false; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return true. >+ if(par && ret) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+bool function(bool par) >+{ >+ // Return the value of the parameter. >+ if(par) >+ { >+ // Test parameter qualifier (default is "in"). >+ par = false; >+ >+ return true; >+ } >+ else >+ return false; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_empty_bool_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_empty_bool_empty_vert.vert >new file mode 100644 >index 00000000000..bbf763e948c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_empty_bool_empty_vert.vert >@@ -0,0 +1,65 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+bool function(bool par); >+ >+void main (void) >+{ >+ bool par = true; >+ bool ret = false; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return true. >+ if(par && ret) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+bool function(bool par) >+{ >+ // Return the value of the parameter. >+ if(par) >+ { >+ // Test parameter qualifier (default is "in"). >+ par = false; >+ >+ return true; >+ } >+ else >+ return false; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_in_bool_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_in_bool_array_frag.frag >new file mode 100644 >index 00000000000..1d08ca5e063 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_in_bool_array_frag.frag >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+bool function(in bool par[3]); >+bool is_all(const in bool array[3], const in bool value); >+void set_all(out bool array[3], const in bool value); >+ >+void main (void) >+{ >+ bool par[3]; >+ bool ret = false; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to true. >+ set_all(par, true); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return true. >+ if(is_all(par, true) && ret) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+bool function(in bool par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, true)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, false); >+ >+ return true; >+ } >+ else >+ return false; >+} >+ >+bool is_all(const in bool array[3], const in bool value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bool array[3], const in bool value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_in_bool_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_in_bool_array_vert.vert >new file mode 100644 >index 00000000000..f8b3ec06553 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_in_bool_array_vert.vert >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+bool function(in bool par[3]); >+bool is_all(const in bool array[3], const in bool value); >+void set_all(out bool array[3], const in bool value); >+ >+void main (void) >+{ >+ bool par[3]; >+ bool ret = false; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to true. >+ set_all(par, true); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return true. >+ if(is_all(par, true) && ret) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+bool function(in bool par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, true)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, false); >+ >+ return true; >+ } >+ else >+ return false; >+} >+ >+bool is_all(const in bool array[3], const in bool value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bool array[3], const in bool value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_in_bool_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_in_bool_empty_frag.frag >new file mode 100644 >index 00000000000..bfc49e26f78 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_in_bool_empty_frag.frag >@@ -0,0 +1,65 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+bool function(in bool par); >+ >+void main (void) >+{ >+ bool par = true; >+ bool ret = false; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return true. >+ if(par && ret) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+bool function(in bool par) >+{ >+ // Return the value of the parameter. >+ if(par) >+ { >+ // Test parameter qualifier (default is "in"). >+ par = false; >+ >+ return true; >+ } >+ else >+ return false; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_in_bool_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_in_bool_empty_vert.vert >new file mode 100644 >index 00000000000..a2d51b77d9e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_in_bool_empty_vert.vert >@@ -0,0 +1,65 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+bool function(in bool par); >+ >+void main (void) >+{ >+ bool par = true; >+ bool ret = false; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return true. >+ if(par && ret) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+bool function(in bool par) >+{ >+ // Return the value of the parameter. >+ if(par) >+ { >+ // Test parameter qualifier (default is "in"). >+ par = false; >+ >+ return true; >+ } >+ else >+ return false; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_inout_bool_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_inout_bool_array_frag.frag >new file mode 100644 >index 00000000000..51adf2723c3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_inout_bool_array_frag.frag >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+bool function(inout bool par[3]); >+bool is_all(const in bool array[3], const in bool value); >+void set_all(out bool array[3], const in bool value); >+ >+void main (void) >+{ >+ bool par[3]; >+ bool ret = false; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to true. >+ set_all(par, true); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return true. >+ if(is_all(par, false) && ret) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+bool function(inout bool par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, true)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, false); >+ >+ return true; >+ } >+ else >+ return false; >+} >+ >+bool is_all(const in bool array[3], const in bool value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bool array[3], const in bool value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_inout_bool_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_inout_bool_array_vert.vert >new file mode 100644 >index 00000000000..43429dc9462 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_inout_bool_array_vert.vert >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+bool function(inout bool par[3]); >+bool is_all(const in bool array[3], const in bool value); >+void set_all(out bool array[3], const in bool value); >+ >+void main (void) >+{ >+ bool par[3]; >+ bool ret = false; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to true. >+ set_all(par, true); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return true. >+ if(is_all(par, false) && ret) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+bool function(inout bool par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, true)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, false); >+ >+ return true; >+ } >+ else >+ return false; >+} >+ >+bool is_all(const in bool array[3], const in bool value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bool array[3], const in bool value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_inout_bool_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_inout_bool_empty_frag.frag >new file mode 100644 >index 00000000000..af091de6bdd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_inout_bool_empty_frag.frag >@@ -0,0 +1,65 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+bool function(inout bool par); >+ >+void main (void) >+{ >+ bool par = true; >+ bool ret = false; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return true. >+ if(!par && ret) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+bool function(inout bool par) >+{ >+ // Return the value of the parameter. >+ if(par) >+ { >+ // Test parameter qualifier (default is "in"). >+ par = false; >+ >+ return true; >+ } >+ else >+ return false; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_inout_bool_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_inout_bool_empty_vert.vert >new file mode 100644 >index 00000000000..41552dfeef5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_inout_bool_empty_vert.vert >@@ -0,0 +1,65 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+bool function(inout bool par); >+ >+void main (void) >+{ >+ bool par = true; >+ bool ret = false; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return true. >+ if(!par && ret) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+bool function(inout bool par) >+{ >+ // Return the value of the parameter. >+ if(par) >+ { >+ // Test parameter qualifier (default is "in"). >+ par = false; >+ >+ return true; >+ } >+ else >+ return false; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_out_bool_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_out_bool_array_frag.frag >new file mode 100644 >index 00000000000..10df063d00c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_out_bool_array_frag.frag >@@ -0,0 +1,85 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+bool function(out bool par[3]); >+bool is_all(const in bool array[3], const in bool value); >+void set_all(out bool array[3], const in bool value); >+ >+void main (void) >+{ >+ bool par[3]; >+ bool ret = false; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to true. >+ set_all(par, true); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return true. >+ if(is_all(par, false) && ret) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+bool function(out bool par[3]) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, false); >+ >+ return true; >+} >+ >+bool is_all(const in bool array[3], const in bool value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bool array[3], const in bool value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_out_bool_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_out_bool_array_vert.vert >new file mode 100644 >index 00000000000..85615ac6889 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_out_bool_array_vert.vert >@@ -0,0 +1,85 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+bool function(out bool par[3]); >+bool is_all(const in bool array[3], const in bool value); >+void set_all(out bool array[3], const in bool value); >+ >+void main (void) >+{ >+ bool par[3]; >+ bool ret = false; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to true. >+ set_all(par, true); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return true. >+ if(is_all(par, false) && ret) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+bool function(out bool par[3]) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, false); >+ >+ return true; >+} >+ >+bool is_all(const in bool array[3], const in bool value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bool array[3], const in bool value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_out_bool_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_out_bool_empty_frag.frag >new file mode 100644 >index 00000000000..0a67173a243 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_out_bool_empty_frag.frag >@@ -0,0 +1,59 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+bool function(out bool par); >+ >+void main (void) >+{ >+ bool par = true; >+ bool ret = false; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return true. >+ if(!par && ret) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+bool function(out bool par) >+{ >+ // Test parameter qualifier (default is "in"). >+ par = false; >+ >+ return true; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_out_bool_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_out_bool_empty_vert.vert >new file mode 100644 >index 00000000000..92a46a9081e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bool_empty_out_bool_empty_vert.vert >@@ -0,0 +1,59 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+bool function(out bool par); >+ >+void main (void) >+{ >+ bool par = true; >+ bool ret = false; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return true. >+ if(!par && ret) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+bool function(out bool par) >+{ >+ // Test parameter qualifier (default is "in"). >+ par = false; >+ >+ return true; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_empty_bvec4_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_empty_bvec4_array_frag.frag >new file mode 100644 >index 00000000000..f8a77b8988c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_empty_bvec4_array_frag.frag >@@ -0,0 +1,108 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+bvec4 function(bvec4 par[3]); >+bool is_all(const in bvec4 par, const in bool value); >+bool is_all(const in bvec4 array[3], const in bvec4 value); >+void set_all(out bvec4 array[3], const in bvec4 value); >+ >+void main (void) >+{ >+ bvec4 par[3]; >+ bvec4 ret = bvec4(false, false, false, false); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to true. >+ set_all(par, bvec4(true, true, true, true)); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return true. >+ if(is_all(par, bvec4(true, true, true, true)) && is_all(ret, true)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+bvec4 function(bvec4 par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, bvec4(true, true, true, true))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, bvec4(false, false, false, false)); >+ >+ return bvec4(true, true, true, true); >+ } >+ else >+ return bvec4(false, false, false, false); >+} >+ >+bool is_all(const in bvec4 par, const in bool value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in bvec4 array[3], const in bvec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bvec4 array[3], const in bvec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_empty_bvec4_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_empty_bvec4_array_vert.vert >new file mode 100644 >index 00000000000..1a528b8cfb4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_empty_bvec4_array_vert.vert >@@ -0,0 +1,108 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+bvec4 function(bvec4 par[3]); >+bool is_all(const in bvec4 par, const in bool value); >+bool is_all(const in bvec4 array[3], const in bvec4 value); >+void set_all(out bvec4 array[3], const in bvec4 value); >+ >+void main (void) >+{ >+ bvec4 par[3]; >+ bvec4 ret = bvec4(false, false, false, false); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to true. >+ set_all(par, bvec4(true, true, true, true)); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return true. >+ if(is_all(par, bvec4(true, true, true, true)) && is_all(ret, true)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+bvec4 function(bvec4 par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, bvec4(true, true, true, true))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, bvec4(false, false, false, false)); >+ >+ return bvec4(true, true, true, true); >+ } >+ else >+ return bvec4(false, false, false, false); >+} >+ >+bool is_all(const in bvec4 par, const in bool value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in bvec4 array[3], const in bvec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bvec4 array[3], const in bvec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_empty_bvec4_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_empty_bvec4_empty_frag.frag >new file mode 100644 >index 00000000000..d2f5c7e2960 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_empty_bvec4_empty_frag.frag >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+bvec4 function(bvec4 par); >+bool is_all(const in bvec4 par, const in bool value); >+void set_all(out bvec4 par, const in bool value); >+ >+void main (void) >+{ >+ bvec4 par = bvec4(true, true, true, true); >+ bvec4 ret = bvec4(false, false, false, false); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return true. >+ if(is_all(par, true) && is_all(ret, true)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+bvec4 function(bvec4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, true)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, false); >+ >+ return bvec4(true, true, true, true); >+ } >+ else >+ return bvec4(false, false, false, false); >+} >+ >+bool is_all(const in bvec4 par, const in bool value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bvec4 par, const in bool value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_empty_bvec4_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_empty_bvec4_empty_vert.vert >new file mode 100644 >index 00000000000..e3354f23b93 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_empty_bvec4_empty_vert.vert >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+bvec4 function(bvec4 par); >+bool is_all(const in bvec4 par, const in bool value); >+void set_all(out bvec4 par, const in bool value); >+ >+void main (void) >+{ >+ bvec4 par = bvec4(true, true, true, true); >+ bvec4 ret = bvec4(false, false, false, false); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return true. >+ if(is_all(par, true) && is_all(ret, true)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+bvec4 function(bvec4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, true)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, false); >+ >+ return bvec4(true, true, true, true); >+ } >+ else >+ return bvec4(false, false, false, false); >+} >+ >+bool is_all(const in bvec4 par, const in bool value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bvec4 par, const in bool value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_in_bvec4_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_in_bvec4_array_frag.frag >new file mode 100644 >index 00000000000..f4479e6802e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_in_bvec4_array_frag.frag >@@ -0,0 +1,108 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+bvec4 function(in bvec4 par[3]); >+bool is_all(const in bvec4 par, const in bool value); >+bool is_all(const in bvec4 array[3], const in bvec4 value); >+void set_all(out bvec4 array[3], const in bvec4 value); >+ >+void main (void) >+{ >+ bvec4 par[3]; >+ bvec4 ret = bvec4(false, false, false, false); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to true. >+ set_all(par, bvec4(true, true, true, true)); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return true. >+ if(is_all(par, bvec4(true, true, true, true)) && is_all(ret, true)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+bvec4 function(in bvec4 par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, bvec4(true, true, true, true))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, bvec4(false, false, false, false)); >+ >+ return bvec4(true, true, true, true); >+ } >+ else >+ return bvec4(false, false, false, false); >+} >+ >+bool is_all(const in bvec4 par, const in bool value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in bvec4 array[3], const in bvec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bvec4 array[3], const in bvec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_in_bvec4_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_in_bvec4_array_vert.vert >new file mode 100644 >index 00000000000..ae5dde8038a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_in_bvec4_array_vert.vert >@@ -0,0 +1,108 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+bvec4 function(in bvec4 par[3]); >+bool is_all(const in bvec4 par, const in bool value); >+bool is_all(const in bvec4 array[3], const in bvec4 value); >+void set_all(out bvec4 array[3], const in bvec4 value); >+ >+void main (void) >+{ >+ bvec4 par[3]; >+ bvec4 ret = bvec4(false, false, false, false); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to true. >+ set_all(par, bvec4(true, true, true, true)); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return true. >+ if(is_all(par, bvec4(true, true, true, true)) && is_all(ret, true)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+bvec4 function(in bvec4 par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, bvec4(true, true, true, true))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, bvec4(false, false, false, false)); >+ >+ return bvec4(true, true, true, true); >+ } >+ else >+ return bvec4(false, false, false, false); >+} >+ >+bool is_all(const in bvec4 par, const in bool value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in bvec4 array[3], const in bvec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bvec4 array[3], const in bvec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_in_bvec4_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_in_bvec4_empty_frag.frag >new file mode 100644 >index 00000000000..a13cee3abae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_in_bvec4_empty_frag.frag >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+bvec4 function(in bvec4 par); >+bool is_all(const in bvec4 par, const in bool value); >+void set_all(out bvec4 par, const in bool value); >+ >+void main (void) >+{ >+ bvec4 par = bvec4(true, true, true, true); >+ bvec4 ret = bvec4(false, false, false, false); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return true. >+ if(is_all(par, true) && is_all(ret, true)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+bvec4 function(in bvec4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, true)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, false); >+ >+ return bvec4(true, true, true, true); >+ } >+ else >+ return bvec4(false, false, false, false); >+} >+ >+bool is_all(const in bvec4 par, const in bool value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bvec4 par, const in bool value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_in_bvec4_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_in_bvec4_empty_vert.vert >new file mode 100644 >index 00000000000..b919bf6b864 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_in_bvec4_empty_vert.vert >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+bvec4 function(in bvec4 par); >+bool is_all(const in bvec4 par, const in bool value); >+void set_all(out bvec4 par, const in bool value); >+ >+void main (void) >+{ >+ bvec4 par = bvec4(true, true, true, true); >+ bvec4 ret = bvec4(false, false, false, false); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return true. >+ if(is_all(par, true) && is_all(ret, true)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+bvec4 function(in bvec4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, true)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, false); >+ >+ return bvec4(true, true, true, true); >+ } >+ else >+ return bvec4(false, false, false, false); >+} >+ >+bool is_all(const in bvec4 par, const in bool value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bvec4 par, const in bool value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_inout_bvec4_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_inout_bvec4_array_frag.frag >new file mode 100644 >index 00000000000..e61a00534bd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_inout_bvec4_array_frag.frag >@@ -0,0 +1,108 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+bvec4 function(inout bvec4 par[3]); >+bool is_all(const in bvec4 par, const in bool value); >+bool is_all(const in bvec4 array[3], const in bvec4 value); >+void set_all(out bvec4 array[3], const in bvec4 value); >+ >+void main (void) >+{ >+ bvec4 par[3]; >+ bvec4 ret = bvec4(false, false, false, false); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to true. >+ set_all(par, bvec4(true, true, true, true)); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return true. >+ if(is_all(par, bvec4(false, false, false, false)) && is_all(ret, true)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+bvec4 function(inout bvec4 par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, bvec4(true, true, true, true))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, bvec4(false, false, false, false)); >+ >+ return bvec4(true, true, true, true); >+ } >+ else >+ return bvec4(false, false, false, false); >+} >+ >+bool is_all(const in bvec4 par, const in bool value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in bvec4 array[3], const in bvec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bvec4 array[3], const in bvec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_inout_bvec4_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_inout_bvec4_array_vert.vert >new file mode 100644 >index 00000000000..710ff576a3a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_inout_bvec4_array_vert.vert >@@ -0,0 +1,108 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+bvec4 function(inout bvec4 par[3]); >+bool is_all(const in bvec4 par, const in bool value); >+bool is_all(const in bvec4 array[3], const in bvec4 value); >+void set_all(out bvec4 array[3], const in bvec4 value); >+ >+void main (void) >+{ >+ bvec4 par[3]; >+ bvec4 ret = bvec4(false, false, false, false); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to true. >+ set_all(par, bvec4(true, true, true, true)); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return true. >+ if(is_all(par, bvec4(false, false, false, false)) && is_all(ret, true)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+bvec4 function(inout bvec4 par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, bvec4(true, true, true, true))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, bvec4(false, false, false, false)); >+ >+ return bvec4(true, true, true, true); >+ } >+ else >+ return bvec4(false, false, false, false); >+} >+ >+bool is_all(const in bvec4 par, const in bool value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in bvec4 array[3], const in bvec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bvec4 array[3], const in bvec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_inout_bvec4_bigarray_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_inout_bvec4_bigarray_frag.frag >new file mode 100644 >index 00000000000..5a114e9be3e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_inout_bvec4_bigarray_frag.frag >@@ -0,0 +1,129 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+bvec4 function(inout bvec4 par[10]); >+bool is_all(const in bvec4 par, const in bool value); >+bool is_all(const in bvec4 array[10], const in bvec4 value); >+void set_all(out bvec4 array[10], const in bvec4 value); >+ >+void main (void) >+{ >+ bvec4 par[10]; >+ bvec4 ret = bvec4(false, false, false, false); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to true. >+ set_all(par, bvec4(true, true, true, true)); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return true. >+ if(is_all(par, bvec4(false, false, false, false)) && is_all(ret, true)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+bvec4 function(inout bvec4 par[10]) >+{ >+ // Return the value of the array. >+ if(is_all(par, bvec4(true, true, true, true))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, bvec4(false, false, false, false)); >+ >+ return bvec4(true, true, true, true); >+ } >+ else >+ return bvec4(false, false, false, false); >+} >+ >+bool is_all(const in bvec4 par, const in bool value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in bvec4 array[10], const in bvec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ if(array[3] != value) >+ ret = false; >+ if(array[4] != value) >+ ret = false; >+ if(array[5] != value) >+ ret = false; >+ if(array[6] != value) >+ ret = false; >+ if(array[7] != value) >+ ret = false; >+ if(array[8] != value) >+ ret = false; >+ if(array[9] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bvec4 array[10], const in bvec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+ array[3] = value; >+ array[4] = value; >+ array[5] = value; >+ array[6] = value; >+ array[7] = value; >+ array[8] = value; >+ array[9] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_inout_bvec4_bigarray_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_inout_bvec4_bigarray_vert.vert >new file mode 100644 >index 00000000000..92f5db9a4c6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_inout_bvec4_bigarray_vert.vert >@@ -0,0 +1,129 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+bvec4 function(inout bvec4 par[10]); >+bool is_all(const in bvec4 par, const in bool value); >+bool is_all(const in bvec4 array[10], const in bvec4 value); >+void set_all(out bvec4 array[10], const in bvec4 value); >+ >+void main (void) >+{ >+ bvec4 par[10]; >+ bvec4 ret = bvec4(false, false, false, false); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to true. >+ set_all(par, bvec4(true, true, true, true)); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return true. >+ if(is_all(par, bvec4(false, false, false, false)) && is_all(ret, true)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+bvec4 function(inout bvec4 par[10]) >+{ >+ // Return the value of the array. >+ if(is_all(par, bvec4(true, true, true, true))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, bvec4(false, false, false, false)); >+ >+ return bvec4(true, true, true, true); >+ } >+ else >+ return bvec4(false, false, false, false); >+} >+ >+bool is_all(const in bvec4 par, const in bool value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in bvec4 array[10], const in bvec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ if(array[3] != value) >+ ret = false; >+ if(array[4] != value) >+ ret = false; >+ if(array[5] != value) >+ ret = false; >+ if(array[6] != value) >+ ret = false; >+ if(array[7] != value) >+ ret = false; >+ if(array[8] != value) >+ ret = false; >+ if(array[9] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bvec4 array[10], const in bvec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+ array[3] = value; >+ array[4] = value; >+ array[5] = value; >+ array[6] = value; >+ array[7] = value; >+ array[8] = value; >+ array[9] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_inout_bvec4_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_inout_bvec4_empty_frag.frag >new file mode 100644 >index 00000000000..e1f4a1f915d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_inout_bvec4_empty_frag.frag >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+bvec4 function(inout bvec4 par); >+bool is_all(const in bvec4 par, const in bool value); >+void set_all(out bvec4 par, const in bool value); >+ >+void main (void) >+{ >+ bvec4 par = bvec4(true, true, true, true); >+ bvec4 ret = bvec4(false, false, false, false); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return true. >+ if(is_all(par, false) && is_all(ret, true)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+bvec4 function(inout bvec4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, true)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, false); >+ >+ return bvec4(true, true, true, true); >+ } >+ else >+ return bvec4(false, false, false, false); >+} >+ >+bool is_all(const in bvec4 par, const in bool value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bvec4 par, const in bool value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_inout_bvec4_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_inout_bvec4_empty_vert.vert >new file mode 100644 >index 00000000000..4f8820bc45b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_inout_bvec4_empty_vert.vert >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+bvec4 function(inout bvec4 par); >+bool is_all(const in bvec4 par, const in bool value); >+void set_all(out bvec4 par, const in bool value); >+ >+void main (void) >+{ >+ bvec4 par = bvec4(true, true, true, true); >+ bvec4 ret = bvec4(false, false, false, false); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return true. >+ if(is_all(par, false) && is_all(ret, true)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+bvec4 function(inout bvec4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, true)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, false); >+ >+ return bvec4(true, true, true, true); >+ } >+ else >+ return bvec4(false, false, false, false); >+} >+ >+bool is_all(const in bvec4 par, const in bool value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bvec4 par, const in bool value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_out_bvec4_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_out_bvec4_array_frag.frag >new file mode 100644 >index 00000000000..e3f50a63f12 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_out_bvec4_array_frag.frag >@@ -0,0 +1,102 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+bvec4 function(out bvec4 par[3]); >+bool is_all(const in bvec4 par, const in bool value); >+bool is_all(const in bvec4 array[3], const in bvec4 value); >+void set_all(out bvec4 array[3], const in bvec4 value); >+ >+void main (void) >+{ >+ bvec4 par[3]; >+ bvec4 ret = bvec4(false, false, false, false); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to true. >+ set_all(par, bvec4(true, true, true, true)); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return true. >+ if(is_all(par, bvec4(false, false, false, false)) && is_all(ret, true)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+bvec4 function(out bvec4 par[3]) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, bvec4(false, false, false, false)); >+ >+ return bvec4(true, true, true, true); >+} >+ >+bool is_all(const in bvec4 par, const in bool value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in bvec4 array[3], const in bvec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bvec4 array[3], const in bvec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_out_bvec4_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_out_bvec4_array_vert.vert >new file mode 100644 >index 00000000000..b64a447b196 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_out_bvec4_array_vert.vert >@@ -0,0 +1,102 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+bvec4 function(out bvec4 par[3]); >+bool is_all(const in bvec4 par, const in bool value); >+bool is_all(const in bvec4 array[3], const in bvec4 value); >+void set_all(out bvec4 array[3], const in bvec4 value); >+ >+void main (void) >+{ >+ bvec4 par[3]; >+ bvec4 ret = bvec4(false, false, false, false); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to true. >+ set_all(par, bvec4(true, true, true, true)); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return true. >+ if(is_all(par, bvec4(false, false, false, false)) && is_all(ret, true)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+bvec4 function(out bvec4 par[3]) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, bvec4(false, false, false, false)); >+ >+ return bvec4(true, true, true, true); >+} >+ >+bool is_all(const in bvec4 par, const in bool value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in bvec4 array[3], const in bvec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bvec4 array[3], const in bvec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_out_bvec4_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_out_bvec4_empty_frag.frag >new file mode 100644 >index 00000000000..1f923620085 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_out_bvec4_empty_frag.frag >@@ -0,0 +1,85 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+bvec4 function(out bvec4 par); >+bool is_all(const in bvec4 par, const in bool value); >+void set_all(out bvec4 par, const in bool value); >+ >+void main (void) >+{ >+ bvec4 par = bvec4(true, true, true, true); >+ bvec4 ret = bvec4(false, false, false, false); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return true. >+ if(is_all(par, false) && is_all(ret, true)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+bvec4 function(out bvec4 par) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, false); >+ >+ return bvec4(true, true, true, true); >+} >+ >+bool is_all(const in bvec4 par, const in bool value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bvec4 par, const in bool value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_out_bvec4_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_out_bvec4_empty_vert.vert >new file mode 100644 >index 00000000000..99c318fe7e1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/bvec4_empty_out_bvec4_empty_vert.vert >@@ -0,0 +1,85 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+bvec4 function(out bvec4 par); >+bool is_all(const in bvec4 par, const in bool value); >+void set_all(out bvec4 par, const in bool value); >+ >+void main (void) >+{ >+ bvec4 par = bvec4(true, true, true, true); >+ bvec4 ret = bvec4(false, false, false, false); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return true. >+ if(is_all(par, false) && is_all(ret, true)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+bvec4 function(out bvec4 par) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, false); >+ >+ return bvec4(true, true, true, true); >+} >+ >+bool is_all(const in bvec4 par, const in bool value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out bvec4 par, const in bool value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_empty_float_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_empty_float_array_frag.frag >new file mode 100644 >index 00000000000..b3a130eec1f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_empty_float_array_frag.frag >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+float function(float par[3]); >+bool is_all(const in float array[3], const in float value); >+void set_all(out float array[3], const in float value); >+ >+void main (void) >+{ >+ float par[3]; >+ float ret = 0.0; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, 1.0); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, 1.0) && (ret == 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+float function(float par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, 1.0)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return 1.0; >+ } >+ else >+ return 0.0; >+} >+ >+bool is_all(const in float array[3], const in float value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out float array[3], const in float value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_empty_float_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_empty_float_array_vert.vert >new file mode 100644 >index 00000000000..4763c1ad8ce >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_empty_float_array_vert.vert >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+float function(float par[3]); >+bool is_all(const in float array[3], const in float value); >+void set_all(out float array[3], const in float value); >+ >+void main (void) >+{ >+ float par[3]; >+ float ret = 0.0; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, 1.0); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, 1.0) && (ret == 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+float function(float par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, 1.0)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return 1.0; >+ } >+ else >+ return 0.0; >+} >+ >+bool is_all(const in float array[3], const in float value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out float array[3], const in float value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_empty_float_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_empty_float_empty_frag.frag >new file mode 100644 >index 00000000000..51d735717da >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_empty_float_empty_frag.frag >@@ -0,0 +1,65 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+float function(float par); >+ >+void main (void) >+{ >+ float par = 1.0; >+ float ret = 0.0; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if((par == 1.0) && (ret == 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+float function(float par) >+{ >+ // Return the value of the parameter. >+ if(par == 1.0) >+ { >+ // Test parameter qualifier (default is "in"). >+ par = 0.0; >+ >+ return 1.0; >+ } >+ else >+ return 0.0; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_empty_float_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_empty_float_empty_vert.vert >new file mode 100644 >index 00000000000..f41995b3ef8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_empty_float_empty_vert.vert >@@ -0,0 +1,65 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+float function(float par); >+ >+void main (void) >+{ >+ float par = 1.0; >+ float ret = 0.0; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if((par == 1.0) && (ret == 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+float function(float par) >+{ >+ // Return the value of the parameter. >+ if(par == 1.0) >+ { >+ // Test parameter qualifier (default is "in"). >+ par = 0.0; >+ >+ return 1.0; >+ } >+ else >+ return 0.0; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_in_float_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_in_float_array_frag.frag >new file mode 100644 >index 00000000000..33e0ab61112 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_in_float_array_frag.frag >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+float function(in float par[3]); >+bool is_all(const in float array[3], const in float value); >+void set_all(out float array[3], const in float value); >+ >+void main (void) >+{ >+ float par[3]; >+ float ret = 0.0; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, 1.0); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, 1.0) && (ret == 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+float function(in float par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, 1.0)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return 1.0; >+ } >+ else >+ return 0.0; >+} >+ >+bool is_all(const in float array[3], const in float value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out float array[3], const in float value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_in_float_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_in_float_array_vert.vert >new file mode 100644 >index 00000000000..a685e7345ef >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_in_float_array_vert.vert >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+float function(in float par[3]); >+bool is_all(const in float array[3], const in float value); >+void set_all(out float array[3], const in float value); >+ >+void main (void) >+{ >+ float par[3]; >+ float ret = 0.0; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, 1.0); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, 1.0) && (ret == 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+float function(in float par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, 1.0)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return 1.0; >+ } >+ else >+ return 0.0; >+} >+ >+bool is_all(const in float array[3], const in float value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out float array[3], const in float value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_in_float_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_in_float_empty_frag.frag >new file mode 100644 >index 00000000000..09870afe500 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_in_float_empty_frag.frag >@@ -0,0 +1,65 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+float function(in float par); >+ >+void main (void) >+{ >+ float par = 1.0; >+ float ret = 0.0; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if((par == 1.0) && (ret == 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+float function(in float par) >+{ >+ // Return the value of the parameter. >+ if(par == 1.0) >+ { >+ // Test parameter qualifier (default is "in"). >+ par = 0.0; >+ >+ return 1.0; >+ } >+ else >+ return 0.0; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_in_float_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_in_float_empty_vert.vert >new file mode 100644 >index 00000000000..f1f47f3034a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_in_float_empty_vert.vert >@@ -0,0 +1,65 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+float function(in float par); >+ >+void main (void) >+{ >+ float par = 1.0; >+ float ret = 0.0; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if((par == 1.0) && (ret == 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+float function(in float par) >+{ >+ // Return the value of the parameter. >+ if(par == 1.0) >+ { >+ // Test parameter qualifier (default is "in"). >+ par = 0.0; >+ >+ return 1.0; >+ } >+ else >+ return 0.0; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_inout_float_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_inout_float_array_frag.frag >new file mode 100644 >index 00000000000..fd0fa109691 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_inout_float_array_frag.frag >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+float function(inout float par[3]); >+bool is_all(const in float array[3], const in float value); >+void set_all(out float array[3], const in float value); >+ >+void main (void) >+{ >+ float par[3]; >+ float ret = 0.0; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, 1.0); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, 0.0) && (ret == 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+float function(inout float par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, 1.0)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return 1.0; >+ } >+ else >+ return 0.0; >+} >+ >+bool is_all(const in float array[3], const in float value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out float array[3], const in float value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_inout_float_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_inout_float_array_vert.vert >new file mode 100644 >index 00000000000..d4c82f266a7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_inout_float_array_vert.vert >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+float function(inout float par[3]); >+bool is_all(const in float array[3], const in float value); >+void set_all(out float array[3], const in float value); >+ >+void main (void) >+{ >+ float par[3]; >+ float ret = 0.0; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, 1.0); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, 0.0) && (ret == 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+float function(inout float par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, 1.0)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return 1.0; >+ } >+ else >+ return 0.0; >+} >+ >+bool is_all(const in float array[3], const in float value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out float array[3], const in float value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_inout_float_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_inout_float_empty_frag.frag >new file mode 100644 >index 00000000000..ce0d3d0c5b9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_inout_float_empty_frag.frag >@@ -0,0 +1,65 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+float function(inout float par); >+ >+void main (void) >+{ >+ float par = 1.0; >+ float ret = 0.0; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if((par == 0.0) && (ret == 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+float function(inout float par) >+{ >+ // Return the value of the parameter. >+ if(par == 1.0) >+ { >+ // Test parameter qualifier (default is "in"). >+ par = 0.0; >+ >+ return 1.0; >+ } >+ else >+ return 0.0; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_inout_float_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_inout_float_empty_vert.vert >new file mode 100644 >index 00000000000..04d063561ae >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_inout_float_empty_vert.vert >@@ -0,0 +1,65 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+float function(inout float par); >+ >+void main (void) >+{ >+ float par = 1.0; >+ float ret = 0.0; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if((par == 0.0) && (ret == 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+float function(inout float par) >+{ >+ // Return the value of the parameter. >+ if(par == 1.0) >+ { >+ // Test parameter qualifier (default is "in"). >+ par = 0.0; >+ >+ return 1.0; >+ } >+ else >+ return 0.0; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_out_float_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_out_float_array_frag.frag >new file mode 100644 >index 00000000000..3df81949369 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_out_float_array_frag.frag >@@ -0,0 +1,85 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+float function(out float par[3]); >+bool is_all(const in float array[3], const in float value); >+void set_all(out float array[3], const in float value); >+ >+void main (void) >+{ >+ float par[3]; >+ float ret = 0.0; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, 1.0); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, 0.0) && (ret == 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+float function(out float par[3]) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return 1.0; >+} >+ >+bool is_all(const in float array[3], const in float value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out float array[3], const in float value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_out_float_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_out_float_array_vert.vert >new file mode 100644 >index 00000000000..212f4e846b3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_out_float_array_vert.vert >@@ -0,0 +1,85 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+float function(out float par[3]); >+bool is_all(const in float array[3], const in float value); >+void set_all(out float array[3], const in float value); >+ >+void main (void) >+{ >+ float par[3]; >+ float ret = 0.0; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, 1.0); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, 0.0) && (ret == 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+float function(out float par[3]) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return 1.0; >+} >+ >+bool is_all(const in float array[3], const in float value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out float array[3], const in float value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_out_float_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_out_float_empty_frag.frag >new file mode 100644 >index 00000000000..c0aafb071e5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_out_float_empty_frag.frag >@@ -0,0 +1,59 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+float function(out float par); >+ >+void main (void) >+{ >+ float par = 1.0; >+ float ret = 0.0; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if((par == 0.0) && (ret == 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+float function(out float par) >+{ >+ // Test parameter qualifier (default is "in"). >+ par = 0.0; >+ >+ return 1.0; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_out_float_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_out_float_empty_vert.vert >new file mode 100644 >index 00000000000..48837c9f3d8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/float_empty_out_float_empty_vert.vert >@@ -0,0 +1,59 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+float function(out float par); >+ >+void main (void) >+{ >+ float par = 1.0; >+ float ret = 0.0; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if((par == 0.0) && (ret == 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+float function(out float par) >+{ >+ // Test parameter qualifier (default is "in"). >+ par = 0.0; >+ >+ return 1.0; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_001_to_008.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_001_to_008.html >new file mode 100644 >index 00000000000..1794e665a11 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_001_to_008.html >@@ -0,0 +1,251 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: functions_001_to_008.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "qualifiers_float_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "qualifiers_float_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "qualifiers_float_frag.frag" >+ }, >+ "name": "qualifiers_float_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "qualifiers_struct_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "qualifiers_struct_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "qualifiers_struct_frag.frag" >+ }, >+ "name": "qualifiers_struct_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "array_float_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "array_float_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "array_float_frag.frag" >+ }, >+ "name": "array_float_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "void_empty_empty_void_empty_frag.frag" >+ }, >+ "name": "void_empty_empty_void_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "void_empty_empty_void_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "void_empty_empty_void_empty_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_009_to_016.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_009_to_016.html >new file mode 100644 >index 00000000000..2904bb259ff >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_009_to_016.html >@@ -0,0 +1,251 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: functions_009_to_016.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "bool_empty_empty_bool_empty_frag.frag" >+ }, >+ "name": "bool_empty_empty_bool_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "bool_empty_empty_bool_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "bool_empty_empty_bool_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "bool_empty_empty_bool_array_frag.frag" >+ }, >+ "name": "bool_empty_empty_bool_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "bool_empty_empty_bool_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "bool_empty_empty_bool_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "bool_empty_in_bool_empty_frag.frag" >+ }, >+ "name": "bool_empty_in_bool_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "bool_empty_in_bool_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "bool_empty_in_bool_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "bool_empty_in_bool_array_frag.frag" >+ }, >+ "name": "bool_empty_in_bool_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "bool_empty_in_bool_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "bool_empty_in_bool_array_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_017_to_024.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_017_to_024.html >new file mode 100644 >index 00000000000..e2e2a4e04d1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_017_to_024.html >@@ -0,0 +1,251 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: functions_017_to_024.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "bool_empty_inout_bool_empty_frag.frag" >+ }, >+ "name": "bool_empty_inout_bool_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "bool_empty_inout_bool_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "bool_empty_inout_bool_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "bool_empty_inout_bool_array_frag.frag" >+ }, >+ "name": "bool_empty_inout_bool_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "bool_empty_inout_bool_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "bool_empty_inout_bool_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "bool_empty_out_bool_empty_frag.frag" >+ }, >+ "name": "bool_empty_out_bool_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "bool_empty_out_bool_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "bool_empty_out_bool_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "bool_empty_out_bool_array_frag.frag" >+ }, >+ "name": "bool_empty_out_bool_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "bool_empty_out_bool_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "bool_empty_out_bool_array_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_025_to_032.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_025_to_032.html >new file mode 100644 >index 00000000000..e3dc8b2249e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_025_to_032.html >@@ -0,0 +1,251 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: functions_025_to_032.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "int_empty_empty_int_empty_frag.frag" >+ }, >+ "name": "int_empty_empty_int_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "int_empty_empty_int_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "int_empty_empty_int_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "int_empty_empty_int_array_frag.frag" >+ }, >+ "name": "int_empty_empty_int_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "int_empty_empty_int_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "int_empty_empty_int_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "int_empty_in_int_empty_frag.frag" >+ }, >+ "name": "int_empty_in_int_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "int_empty_in_int_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "int_empty_in_int_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "int_empty_in_int_array_frag.frag" >+ }, >+ "name": "int_empty_in_int_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "int_empty_in_int_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "int_empty_in_int_array_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_033_to_040.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_033_to_040.html >new file mode 100644 >index 00000000000..b1eeacc985d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_033_to_040.html >@@ -0,0 +1,251 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: functions_033_to_040.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "int_empty_inout_int_empty_frag.frag" >+ }, >+ "name": "int_empty_inout_int_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "int_empty_inout_int_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "int_empty_inout_int_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "int_empty_inout_int_array_frag.frag" >+ }, >+ "name": "int_empty_inout_int_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "int_empty_inout_int_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "int_empty_inout_int_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "int_empty_out_int_empty_frag.frag" >+ }, >+ "name": "int_empty_out_int_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "int_empty_out_int_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "int_empty_out_int_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "int_empty_out_int_array_frag.frag" >+ }, >+ "name": "int_empty_out_int_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "int_empty_out_int_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "int_empty_out_int_array_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_041_to_048.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_041_to_048.html >new file mode 100644 >index 00000000000..eea38d83c5f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_041_to_048.html >@@ -0,0 +1,251 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: functions_041_to_048.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "float_empty_empty_float_empty_frag.frag" >+ }, >+ "name": "float_empty_empty_float_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "float_empty_empty_float_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "float_empty_empty_float_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "float_empty_empty_float_array_frag.frag" >+ }, >+ "name": "float_empty_empty_float_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "float_empty_empty_float_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "float_empty_empty_float_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "float_empty_in_float_empty_frag.frag" >+ }, >+ "name": "float_empty_in_float_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "float_empty_in_float_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "float_empty_in_float_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "float_empty_in_float_array_frag.frag" >+ }, >+ "name": "float_empty_in_float_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "float_empty_in_float_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "float_empty_in_float_array_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_049_to_056.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_049_to_056.html >new file mode 100644 >index 00000000000..27828a95159 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_049_to_056.html >@@ -0,0 +1,251 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: functions_049_to_056.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "float_empty_inout_float_empty_frag.frag" >+ }, >+ "name": "float_empty_inout_float_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "float_empty_inout_float_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "float_empty_inout_float_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "float_empty_inout_float_array_frag.frag" >+ }, >+ "name": "float_empty_inout_float_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "float_empty_inout_float_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "float_empty_inout_float_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "float_empty_out_float_empty_frag.frag" >+ }, >+ "name": "float_empty_out_float_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "float_empty_out_float_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "float_empty_out_float_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "float_empty_out_float_array_frag.frag" >+ }, >+ "name": "float_empty_out_float_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "float_empty_out_float_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "float_empty_out_float_array_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_057_to_064.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_057_to_064.html >new file mode 100644 >index 00000000000..0385f2da0f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_057_to_064.html >@@ -0,0 +1,251 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: functions_057_to_064.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "bvec4_empty_empty_bvec4_empty_frag.frag" >+ }, >+ "name": "bvec4_empty_empty_bvec4_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "bvec4_empty_empty_bvec4_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "bvec4_empty_empty_bvec4_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "bvec4_empty_empty_bvec4_array_frag.frag" >+ }, >+ "name": "bvec4_empty_empty_bvec4_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "bvec4_empty_empty_bvec4_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "bvec4_empty_empty_bvec4_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "bvec4_empty_in_bvec4_empty_frag.frag" >+ }, >+ "name": "bvec4_empty_in_bvec4_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "bvec4_empty_in_bvec4_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "bvec4_empty_in_bvec4_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "bvec4_empty_in_bvec4_array_frag.frag" >+ }, >+ "name": "bvec4_empty_in_bvec4_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "bvec4_empty_in_bvec4_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "bvec4_empty_in_bvec4_array_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_065_to_072.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_065_to_072.html >new file mode 100644 >index 00000000000..d849841b343 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_065_to_072.html >@@ -0,0 +1,251 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: functions_065_to_072.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "bvec4_empty_inout_bvec4_empty_frag.frag" >+ }, >+ "name": "bvec4_empty_inout_bvec4_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "bvec4_empty_inout_bvec4_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "bvec4_empty_inout_bvec4_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "bvec4_empty_inout_bvec4_array_frag.frag" >+ }, >+ "name": "bvec4_empty_inout_bvec4_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "bvec4_empty_inout_bvec4_bigarray_frag.frag" >+ }, >+ "name": "bvec4_empty_inout_bvec4_bigarray_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "bvec4_empty_inout_bvec4_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "bvec4_empty_inout_bvec4_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "bvec4_empty_inout_bvec4_bigarray_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "bvec4_empty_inout_bvec4_bigarray_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "bvec4_empty_out_bvec4_empty_frag.frag" >+ }, >+ "name": "bvec4_empty_out_bvec4_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "bvec4_empty_out_bvec4_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "bvec4_empty_out_bvec4_empty_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_073_to_080.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_073_to_080.html >new file mode 100644 >index 00000000000..1a8c139017c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_073_to_080.html >@@ -0,0 +1,251 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: functions_073_to_080.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "bvec4_empty_out_bvec4_array_frag.frag" >+ }, >+ "name": "bvec4_empty_out_bvec4_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "bvec4_empty_out_bvec4_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "bvec4_empty_out_bvec4_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "ivec4_empty_empty_ivec4_empty_frag.frag" >+ }, >+ "name": "ivec4_empty_empty_ivec4_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "ivec4_empty_empty_ivec4_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "ivec4_empty_empty_ivec4_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "ivec4_empty_empty_ivec4_array_frag.frag" >+ }, >+ "name": "ivec4_empty_empty_ivec4_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "ivec4_empty_empty_ivec4_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "ivec4_empty_empty_ivec4_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "ivec4_empty_in_ivec4_empty_frag.frag" >+ }, >+ "name": "ivec4_empty_in_ivec4_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "ivec4_empty_in_ivec4_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "ivec4_empty_in_ivec4_empty_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_081_to_088.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_081_to_088.html >new file mode 100644 >index 00000000000..3f2b88c5f76 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_081_to_088.html >@@ -0,0 +1,251 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: functions_081_to_088.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "ivec4_empty_in_ivec4_array_frag.frag" >+ }, >+ "name": "ivec4_empty_in_ivec4_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "ivec4_empty_in_ivec4_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "ivec4_empty_in_ivec4_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "ivec4_empty_inout_ivec4_empty_frag.frag" >+ }, >+ "name": "ivec4_empty_inout_ivec4_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "ivec4_empty_inout_ivec4_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "ivec4_empty_inout_ivec4_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "ivec4_empty_inout_ivec4_array_frag.frag" >+ }, >+ "name": "ivec4_empty_inout_ivec4_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "ivec4_empty_inout_ivec4_bigarray_frag.frag" >+ }, >+ "name": "ivec4_empty_inout_ivec4_bigarray_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "ivec4_empty_inout_ivec4_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "ivec4_empty_inout_ivec4_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "ivec4_empty_inout_ivec4_bigarray_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "ivec4_empty_inout_ivec4_bigarray_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_089_to_096.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_089_to_096.html >new file mode 100644 >index 00000000000..c624742fb90 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_089_to_096.html >@@ -0,0 +1,251 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: functions_089_to_096.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "ivec4_empty_out_ivec4_empty_frag.frag" >+ }, >+ "name": "ivec4_empty_out_ivec4_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "ivec4_empty_out_ivec4_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "ivec4_empty_out_ivec4_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "ivec4_empty_out_ivec4_array_frag.frag" >+ }, >+ "name": "ivec4_empty_out_ivec4_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "ivec4_empty_out_ivec4_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "ivec4_empty_out_ivec4_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "vec4_empty_empty_vec4_empty_frag.frag" >+ }, >+ "name": "vec4_empty_empty_vec4_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "vec4_empty_empty_vec4_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "vec4_empty_empty_vec4_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "vec4_empty_empty_vec4_array_frag.frag" >+ }, >+ "name": "vec4_empty_empty_vec4_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "vec4_empty_empty_vec4_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "vec4_empty_empty_vec4_array_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_097_to_104.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_097_to_104.html >new file mode 100644 >index 00000000000..e71def193d0 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_097_to_104.html >@@ -0,0 +1,251 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: functions_097_to_104.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "vec4_empty_in_vec4_empty_frag.frag" >+ }, >+ "name": "vec4_empty_in_vec4_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "vec4_empty_in_vec4_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "vec4_empty_in_vec4_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "vec4_empty_in_vec4_array_frag.frag" >+ }, >+ "name": "vec4_empty_in_vec4_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "vec4_empty_in_vec4_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "vec4_empty_in_vec4_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "vec4_empty_inout_vec4_empty_frag.frag" >+ }, >+ "name": "vec4_empty_inout_vec4_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "vec4_empty_inout_vec4_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "vec4_empty_inout_vec4_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "vec4_empty_inout_vec4_array_frag.frag" >+ }, >+ "name": "vec4_empty_inout_vec4_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "vec4_empty_inout_vec4_bigarray_frag.frag" >+ }, >+ "name": "vec4_empty_inout_vec4_bigarray_frag.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_105_to_112.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_105_to_112.html >new file mode 100644 >index 00000000000..a3813704b91 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_105_to_112.html >@@ -0,0 +1,251 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: functions_105_to_112.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "vec4_empty_inout_vec4_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "vec4_empty_inout_vec4_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "vec4_empty_inout_vec4_bigarray_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "vec4_empty_inout_vec4_bigarray_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "vec4_empty_out_vec4_empty_frag.frag" >+ }, >+ "name": "vec4_empty_out_vec4_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "vec4_empty_out_vec4_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "vec4_empty_out_vec4_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "vec4_empty_out_vec4_array_frag.frag" >+ }, >+ "name": "vec4_empty_out_vec4_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "vec4_empty_out_vec4_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "vec4_empty_out_vec4_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "mat4_empty_empty_mat4_empty_frag.frag" >+ }, >+ "name": "mat4_empty_empty_mat4_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "mat4_empty_empty_mat4_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "mat4_empty_empty_mat4_empty_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_113_to_120.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_113_to_120.html >new file mode 100644 >index 00000000000..f8f723da980 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_113_to_120.html >@@ -0,0 +1,251 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: functions_113_to_120.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "mat4_empty_empty_mat4_array_frag.frag" >+ }, >+ "name": "mat4_empty_empty_mat4_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "mat4_empty_empty_mat4_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "mat4_empty_empty_mat4_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "mat4_empty_in_mat4_empty_frag.frag" >+ }, >+ "name": "mat4_empty_in_mat4_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "mat4_empty_in_mat4_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "mat4_empty_in_mat4_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "mat4_empty_in_mat4_array_frag.frag" >+ }, >+ "name": "mat4_empty_in_mat4_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "mat4_empty_in_mat4_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "mat4_empty_in_mat4_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "mat4_empty_inout_mat4_empty_frag.frag" >+ }, >+ "name": "mat4_empty_inout_mat4_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "mat4_empty_inout_mat4_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "mat4_empty_inout_mat4_empty_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_121_to_126.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_121_to_126.html >new file mode 100644 >index 00000000000..ce9f9037cb9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/functions_121_to_126.html >@@ -0,0 +1,201 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: functions_121_to_126.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "mat4_empty_inout_mat4_array_frag.frag" >+ }, >+ "name": "mat4_empty_inout_mat4_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "mat4_empty_inout_mat4_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "mat4_empty_inout_mat4_array_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "mat4_empty_out_mat4_empty_frag.frag" >+ }, >+ "name": "mat4_empty_out_mat4_empty_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "mat4_empty_out_mat4_empty_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "mat4_empty_out_mat4_empty_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "mat4_empty_out_mat4_array_frag.frag" >+ }, >+ "name": "mat4_empty_out_mat4_array_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 1.0, >+ 1.0, >+ 1.0, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "mat4_empty_out_mat4_array_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "mat4_empty_out_mat4_array_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/input.run.txt >new file mode 100644 >index 00000000000..00b4fa8fa64 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/input.run.txt >@@ -0,0 +1,17 @@ >+# this file is auto-generated. DO NOT EDIT. >+functions_001_to_008.html >+functions_009_to_016.html >+functions_017_to_024.html >+functions_025_to_032.html >+functions_033_to_040.html >+functions_041_to_048.html >+functions_049_to_056.html >+functions_057_to_064.html >+functions_065_to_072.html >+functions_073_to_080.html >+functions_081_to_088.html >+functions_089_to_096.html >+functions_097_to_104.html >+functions_105_to_112.html >+functions_113_to_120.html >+functions_121_to_126.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_empty_int_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_empty_int_array_frag.frag >new file mode 100644 >index 00000000000..59a502afe66 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_empty_int_array_frag.frag >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+int function(int par[3]); >+bool is_all(const in int array[3], const in int value); >+void set_all(out int array[3], const in int value); >+ >+void main (void) >+{ >+ int par[3]; >+ int ret = 0; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1. >+ set_all(par, 1); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1. >+ if(is_all(par, 1) && (ret == 1)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+int function(int par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, 1)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0); >+ >+ return 1; >+ } >+ else >+ return 0; >+} >+ >+bool is_all(const in int array[3], const in int value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out int array[3], const in int value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_empty_int_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_empty_int_array_vert.vert >new file mode 100644 >index 00000000000..8b9e0417deb >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_empty_int_array_vert.vert >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+int function(int par[3]); >+bool is_all(const in int array[3], const in int value); >+void set_all(out int array[3], const in int value); >+ >+void main (void) >+{ >+ int par[3]; >+ int ret = 0; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1. >+ set_all(par, 1); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1. >+ if(is_all(par, 1) && (ret == 1)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+int function(int par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, 1)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0); >+ >+ return 1; >+ } >+ else >+ return 0; >+} >+ >+bool is_all(const in int array[3], const in int value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out int array[3], const in int value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_empty_int_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_empty_int_empty_frag.frag >new file mode 100644 >index 00000000000..3f9fc443807 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_empty_int_empty_frag.frag >@@ -0,0 +1,65 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+int function(int par); >+ >+void main (void) >+{ >+ int par = 1; >+ int ret = 0; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1. >+ if((par == 1) && (ret == 1)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+int function(int par) >+{ >+ // Return the value of the parameter. >+ if(par == 1) >+ { >+ // Test parameter qualifier (default is "in"). >+ par = 0; >+ >+ return 1; >+ } >+ else >+ return 0; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_empty_int_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_empty_int_empty_vert.vert >new file mode 100644 >index 00000000000..73e895d7f43 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_empty_int_empty_vert.vert >@@ -0,0 +1,65 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+int function(int par); >+ >+void main (void) >+{ >+ int par = 1; >+ int ret = 0; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1. >+ if((par == 1) && (ret == 1)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+int function(int par) >+{ >+ // Return the value of the parameter. >+ if(par == 1) >+ { >+ // Test parameter qualifier (default is "in"). >+ par = 0; >+ >+ return 1; >+ } >+ else >+ return 0; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_in_int_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_in_int_array_frag.frag >new file mode 100644 >index 00000000000..b9e2910bcc4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_in_int_array_frag.frag >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+int function(in int par[3]); >+bool is_all(const in int array[3], const in int value); >+void set_all(out int array[3], const in int value); >+ >+void main (void) >+{ >+ int par[3]; >+ int ret = 0; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1. >+ set_all(par, 1); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1. >+ if(is_all(par, 1) && (ret == 1)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+int function(in int par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, 1)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0); >+ >+ return 1; >+ } >+ else >+ return 0; >+} >+ >+bool is_all(const in int array[3], const in int value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out int array[3], const in int value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_in_int_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_in_int_array_vert.vert >new file mode 100644 >index 00000000000..3d807a18ebc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_in_int_array_vert.vert >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+int function(in int par[3]); >+bool is_all(const in int array[3], const in int value); >+void set_all(out int array[3], const in int value); >+ >+void main (void) >+{ >+ int par[3]; >+ int ret = 0; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1. >+ set_all(par, 1); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1. >+ if(is_all(par, 1) && (ret == 1)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+int function(in int par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, 1)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0); >+ >+ return 1; >+ } >+ else >+ return 0; >+} >+ >+bool is_all(const in int array[3], const in int value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out int array[3], const in int value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_in_int_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_in_int_empty_frag.frag >new file mode 100644 >index 00000000000..4be3d649c7d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_in_int_empty_frag.frag >@@ -0,0 +1,65 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+int function(in int par); >+ >+void main (void) >+{ >+ int par = 1; >+ int ret = 0; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1. >+ if((par == 1) && (ret == 1)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+int function(in int par) >+{ >+ // Return the value of the parameter. >+ if(par == 1) >+ { >+ // Test parameter qualifier (default is "in"). >+ par = 0; >+ >+ return 1; >+ } >+ else >+ return 0; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_in_int_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_in_int_empty_vert.vert >new file mode 100644 >index 00000000000..020d7949257 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_in_int_empty_vert.vert >@@ -0,0 +1,65 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+int function(in int par); >+ >+void main (void) >+{ >+ int par = 1; >+ int ret = 0; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1. >+ if((par == 1) && (ret == 1)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+int function(in int par) >+{ >+ // Return the value of the parameter. >+ if(par == 1) >+ { >+ // Test parameter qualifier (default is "in"). >+ par = 0; >+ >+ return 1; >+ } >+ else >+ return 0; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_inout_int_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_inout_int_array_frag.frag >new file mode 100644 >index 00000000000..91d71268d7a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_inout_int_array_frag.frag >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+int function(inout int par[3]); >+bool is_all(const in int array[3], const in int value); >+void set_all(out int array[3], const in int value); >+ >+void main (void) >+{ >+ int par[3]; >+ int ret = 0; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1. >+ set_all(par, 1); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1. >+ if(is_all(par, 0) && (ret == 1)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+int function(inout int par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, 1)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0); >+ >+ return 1; >+ } >+ else >+ return 0; >+} >+ >+bool is_all(const in int array[3], const in int value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out int array[3], const in int value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_inout_int_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_inout_int_array_vert.vert >new file mode 100644 >index 00000000000..efaf9f449c7 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_inout_int_array_vert.vert >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+int function(inout int par[3]); >+bool is_all(const in int array[3], const in int value); >+void set_all(out int array[3], const in int value); >+ >+void main (void) >+{ >+ int par[3]; >+ int ret = 0; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1. >+ set_all(par, 1); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1. >+ if(is_all(par, 0) && (ret == 1)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+int function(inout int par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, 1)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0); >+ >+ return 1; >+ } >+ else >+ return 0; >+} >+ >+bool is_all(const in int array[3], const in int value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out int array[3], const in int value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_inout_int_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_inout_int_empty_frag.frag >new file mode 100644 >index 00000000000..e2780c41cab >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_inout_int_empty_frag.frag >@@ -0,0 +1,65 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+int function(inout int par); >+ >+void main (void) >+{ >+ int par = 1; >+ int ret = 0; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1. >+ if((par == 0) && (ret == 1)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+int function(inout int par) >+{ >+ // Return the value of the parameter. >+ if(par == 1) >+ { >+ // Test parameter qualifier (default is "in"). >+ par = 0; >+ >+ return 1; >+ } >+ else >+ return 0; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_inout_int_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_inout_int_empty_vert.vert >new file mode 100644 >index 00000000000..e252ac4cf45 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_inout_int_empty_vert.vert >@@ -0,0 +1,65 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+int function(inout int par); >+ >+void main (void) >+{ >+ int par = 1; >+ int ret = 0; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1. >+ if((par == 0) && (ret == 1)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+int function(inout int par) >+{ >+ // Return the value of the parameter. >+ if(par == 1) >+ { >+ // Test parameter qualifier (default is "in"). >+ par = 0; >+ >+ return 1; >+ } >+ else >+ return 0; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_out_int_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_out_int_array_frag.frag >new file mode 100644 >index 00000000000..a46c860f841 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_out_int_array_frag.frag >@@ -0,0 +1,85 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+int function(out int par[3]); >+bool is_all(const in int array[3], const in int value); >+void set_all(out int array[3], const in int value); >+ >+void main (void) >+{ >+ int par[3]; >+ int ret = 0; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1. >+ set_all(par, 1); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1. >+ if(is_all(par, 0) && (ret == 1)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+int function(out int par[3]) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0); >+ >+ return 1; >+} >+ >+bool is_all(const in int array[3], const in int value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out int array[3], const in int value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_out_int_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_out_int_array_vert.vert >new file mode 100644 >index 00000000000..5dd10b83375 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_out_int_array_vert.vert >@@ -0,0 +1,85 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+int function(out int par[3]); >+bool is_all(const in int array[3], const in int value); >+void set_all(out int array[3], const in int value); >+ >+void main (void) >+{ >+ int par[3]; >+ int ret = 0; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1. >+ set_all(par, 1); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1. >+ if(is_all(par, 0) && (ret == 1)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+int function(out int par[3]) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0); >+ >+ return 1; >+} >+ >+bool is_all(const in int array[3], const in int value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out int array[3], const in int value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_out_int_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_out_int_empty_frag.frag >new file mode 100644 >index 00000000000..822948a2d9e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_out_int_empty_frag.frag >@@ -0,0 +1,59 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+int function(out int par); >+ >+void main (void) >+{ >+ int par = 1; >+ int ret = 0; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1. >+ if((par == 0) && (ret == 1)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+int function(out int par) >+{ >+ // Test parameter qualifier (default is "in"). >+ par = 0; >+ >+ return 1; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_out_int_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_out_int_empty_vert.vert >new file mode 100644 >index 00000000000..6a5d0b85c32 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/int_empty_out_int_empty_vert.vert >@@ -0,0 +1,59 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+int function(out int par); >+ >+void main (void) >+{ >+ int par = 1; >+ int ret = 0; >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1. >+ if((par == 0) && (ret == 1)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+int function(out int par) >+{ >+ // Test parameter qualifier (default is "in"). >+ par = 0; >+ >+ return 1; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_empty_ivec4_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_empty_ivec4_array_frag.frag >new file mode 100644 >index 00000000000..1ee72fd7fe6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_empty_ivec4_array_frag.frag >@@ -0,0 +1,108 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+ivec4 function(ivec4 par[3]); >+bool is_all(const in ivec4 par, const in int value); >+bool is_all(const in ivec4 array[3], const in ivec4 value); >+void set_all(out ivec4 array[3], const in ivec4 value); >+ >+void main (void) >+{ >+ ivec4 par[3]; >+ ivec4 ret = ivec4(0, 0, 0, 0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1. >+ set_all(par, ivec4(1, 1, 1, 1)); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1. >+ if(is_all(par, ivec4(1, 1, 1, 1)) && is_all(ret, 1)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+ivec4 function(ivec4 par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, ivec4(1, 1, 1, 1))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, ivec4(0, 0, 0, 0)); >+ >+ return ivec4(1, 1, 1, 1); >+ } >+ else >+ return ivec4(0, 0, 0, 0); >+} >+ >+bool is_all(const in ivec4 par, const in int value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in ivec4 array[3], const in ivec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out ivec4 array[3], const in ivec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_empty_ivec4_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_empty_ivec4_array_vert.vert >new file mode 100644 >index 00000000000..82be12d556d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_empty_ivec4_array_vert.vert >@@ -0,0 +1,108 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+ivec4 function(ivec4 par[3]); >+bool is_all(const in ivec4 par, const in int value); >+bool is_all(const in ivec4 array[3], const in ivec4 value); >+void set_all(out ivec4 array[3], const in ivec4 value); >+ >+void main (void) >+{ >+ ivec4 par[3]; >+ ivec4 ret = ivec4(0, 0, 0, 0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1. >+ set_all(par, ivec4(1, 1, 1, 1)); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1. >+ if(is_all(par, ivec4(1, 1, 1, 1)) && is_all(ret, 1)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+ivec4 function(ivec4 par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, ivec4(1, 1, 1, 1))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, ivec4(0, 0, 0, 0)); >+ >+ return ivec4(1, 1, 1, 1); >+ } >+ else >+ return ivec4(0, 0, 0, 0); >+} >+ >+bool is_all(const in ivec4 par, const in int value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in ivec4 array[3], const in ivec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out ivec4 array[3], const in ivec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_empty_ivec4_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_empty_ivec4_empty_frag.frag >new file mode 100644 >index 00000000000..1a66f95e7a6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_empty_ivec4_empty_frag.frag >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+ivec4 function(ivec4 par); >+bool is_all(const in ivec4 par, const in int value); >+void set_all(out ivec4 par, const in int value); >+ >+void main (void) >+{ >+ ivec4 par = ivec4(1, 1, 1, 1); >+ ivec4 ret = ivec4(0, 0, 0, 0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1. >+ if(is_all(par, 1) && is_all(ret, 1)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+ivec4 function(ivec4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, 1)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0); >+ >+ return ivec4(1, 1, 1, 1); >+ } >+ else >+ return ivec4(0, 0, 0, 0); >+} >+ >+bool is_all(const in ivec4 par, const in int value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out ivec4 par, const in int value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_empty_ivec4_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_empty_ivec4_empty_vert.vert >new file mode 100644 >index 00000000000..3680ca05101 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_empty_ivec4_empty_vert.vert >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+ivec4 function(ivec4 par); >+bool is_all(const in ivec4 par, const in int value); >+void set_all(out ivec4 par, const in int value); >+ >+void main (void) >+{ >+ ivec4 par = ivec4(1, 1, 1, 1); >+ ivec4 ret = ivec4(0, 0, 0, 0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1. >+ if(is_all(par, 1) && is_all(ret, 1)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+ivec4 function(ivec4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, 1)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0); >+ >+ return ivec4(1, 1, 1, 1); >+ } >+ else >+ return ivec4(0, 0, 0, 0); >+} >+ >+bool is_all(const in ivec4 par, const in int value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out ivec4 par, const in int value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_in_ivec4_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_in_ivec4_array_frag.frag >new file mode 100644 >index 00000000000..7aa71b48a26 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_in_ivec4_array_frag.frag >@@ -0,0 +1,108 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+ivec4 function(in ivec4 par[3]); >+bool is_all(const in ivec4 par, const in int value); >+bool is_all(const in ivec4 array[3], const in ivec4 value); >+void set_all(out ivec4 array[3], const in ivec4 value); >+ >+void main (void) >+{ >+ ivec4 par[3]; >+ ivec4 ret = ivec4(0, 0, 0, 0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1. >+ set_all(par, ivec4(1, 1, 1, 1)); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1. >+ if(is_all(par, ivec4(1, 1, 1, 1)) && is_all(ret, 1)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+ivec4 function(in ivec4 par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, ivec4(1, 1, 1, 1))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, ivec4(0, 0, 0, 0)); >+ >+ return ivec4(1, 1, 1, 1); >+ } >+ else >+ return ivec4(0, 0, 0, 0); >+} >+ >+bool is_all(const in ivec4 par, const in int value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in ivec4 array[3], const in ivec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out ivec4 array[3], const in ivec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_in_ivec4_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_in_ivec4_array_vert.vert >new file mode 100644 >index 00000000000..df24cc8ff79 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_in_ivec4_array_vert.vert >@@ -0,0 +1,108 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+ivec4 function(in ivec4 par[3]); >+bool is_all(const in ivec4 par, const in int value); >+bool is_all(const in ivec4 array[3], const in ivec4 value); >+void set_all(out ivec4 array[3], const in ivec4 value); >+ >+void main (void) >+{ >+ ivec4 par[3]; >+ ivec4 ret = ivec4(0, 0, 0, 0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1. >+ set_all(par, ivec4(1, 1, 1, 1)); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1. >+ if(is_all(par, ivec4(1, 1, 1, 1)) && is_all(ret, 1)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+ivec4 function(in ivec4 par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, ivec4(1, 1, 1, 1))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, ivec4(0, 0, 0, 0)); >+ >+ return ivec4(1, 1, 1, 1); >+ } >+ else >+ return ivec4(0, 0, 0, 0); >+} >+ >+bool is_all(const in ivec4 par, const in int value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in ivec4 array[3], const in ivec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out ivec4 array[3], const in ivec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_in_ivec4_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_in_ivec4_empty_frag.frag >new file mode 100644 >index 00000000000..bc6c03adc4e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_in_ivec4_empty_frag.frag >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+ivec4 function(in ivec4 par); >+bool is_all(const in ivec4 par, const in int value); >+void set_all(out ivec4 par, const in int value); >+ >+void main (void) >+{ >+ ivec4 par = ivec4(1, 1, 1, 1); >+ ivec4 ret = ivec4(0, 0, 0, 0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1. >+ if(is_all(par, 1) && is_all(ret, 1)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+ivec4 function(in ivec4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, 1)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0); >+ >+ return ivec4(1, 1, 1, 1); >+ } >+ else >+ return ivec4(0, 0, 0, 0); >+} >+ >+bool is_all(const in ivec4 par, const in int value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out ivec4 par, const in int value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_in_ivec4_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_in_ivec4_empty_vert.vert >new file mode 100644 >index 00000000000..1f0e3cd2b13 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_in_ivec4_empty_vert.vert >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+ivec4 function(in ivec4 par); >+bool is_all(const in ivec4 par, const in int value); >+void set_all(out ivec4 par, const in int value); >+ >+void main (void) >+{ >+ ivec4 par = ivec4(1, 1, 1, 1); >+ ivec4 ret = ivec4(0, 0, 0, 0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1. >+ if(is_all(par, 1) && is_all(ret, 1)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+ivec4 function(in ivec4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, 1)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0); >+ >+ return ivec4(1, 1, 1, 1); >+ } >+ else >+ return ivec4(0, 0, 0, 0); >+} >+ >+bool is_all(const in ivec4 par, const in int value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out ivec4 par, const in int value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_inout_ivec4_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_inout_ivec4_array_frag.frag >new file mode 100644 >index 00000000000..4aae9eebf67 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_inout_ivec4_array_frag.frag >@@ -0,0 +1,108 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+ivec4 function(inout ivec4 par[3]); >+bool is_all(const in ivec4 par, const in int value); >+bool is_all(const in ivec4 array[3], const in ivec4 value); >+void set_all(out ivec4 array[3], const in ivec4 value); >+ >+void main (void) >+{ >+ ivec4 par[3]; >+ ivec4 ret = ivec4(0, 0, 0, 0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1. >+ set_all(par, ivec4(1, 1, 1, 1)); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1. >+ if(is_all(par, ivec4(0, 0, 0, 0)) && is_all(ret, 1)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+ivec4 function(inout ivec4 par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, ivec4(1, 1, 1, 1))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, ivec4(0, 0, 0, 0)); >+ >+ return ivec4(1, 1, 1, 1); >+ } >+ else >+ return ivec4(0, 0, 0, 0); >+} >+ >+bool is_all(const in ivec4 par, const in int value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in ivec4 array[3], const in ivec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out ivec4 array[3], const in ivec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_inout_ivec4_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_inout_ivec4_array_vert.vert >new file mode 100644 >index 00000000000..069dae62c65 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_inout_ivec4_array_vert.vert >@@ -0,0 +1,108 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+ivec4 function(inout ivec4 par[3]); >+bool is_all(const in ivec4 par, const in int value); >+bool is_all(const in ivec4 array[3], const in ivec4 value); >+void set_all(out ivec4 array[3], const in ivec4 value); >+ >+void main (void) >+{ >+ ivec4 par[3]; >+ ivec4 ret = ivec4(0, 0, 0, 0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1. >+ set_all(par, ivec4(1, 1, 1, 1)); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1. >+ if(is_all(par, ivec4(0, 0, 0, 0)) && is_all(ret, 1)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+ivec4 function(inout ivec4 par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, ivec4(1, 1, 1, 1))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, ivec4(0, 0, 0, 0)); >+ >+ return ivec4(1, 1, 1, 1); >+ } >+ else >+ return ivec4(0, 0, 0, 0); >+} >+ >+bool is_all(const in ivec4 par, const in int value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in ivec4 array[3], const in ivec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out ivec4 array[3], const in ivec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_inout_ivec4_bigarray_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_inout_ivec4_bigarray_frag.frag >new file mode 100644 >index 00000000000..d2f509df7dc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_inout_ivec4_bigarray_frag.frag >@@ -0,0 +1,129 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+ivec4 function(inout ivec4 par[10]); >+bool is_all(const in ivec4 par, const in int value); >+bool is_all(const in ivec4 array[10], const in ivec4 value); >+void set_all(out ivec4 array[10], const in ivec4 value); >+ >+void main (void) >+{ >+ ivec4 par[10]; >+ ivec4 ret = ivec4(0, 0, 0, 0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1. >+ set_all(par, ivec4(1, 1, 1, 1)); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1. >+ if(is_all(par, ivec4(0, 0, 0, 0)) && is_all(ret, 1)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+ivec4 function(inout ivec4 par[10]) >+{ >+ // Return the value of the array. >+ if(is_all(par, ivec4(1, 1, 1, 1))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, ivec4(0, 0, 0, 0)); >+ >+ return ivec4(1, 1, 1, 1); >+ } >+ else >+ return ivec4(0, 0, 0, 0); >+} >+ >+bool is_all(const in ivec4 par, const in int value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in ivec4 array[10], const in ivec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ if(array[3] != value) >+ ret = false; >+ if(array[4] != value) >+ ret = false; >+ if(array[5] != value) >+ ret = false; >+ if(array[6] != value) >+ ret = false; >+ if(array[7] != value) >+ ret = false; >+ if(array[8] != value) >+ ret = false; >+ if(array[9] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out ivec4 array[10], const in ivec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+ array[3] = value; >+ array[4] = value; >+ array[5] = value; >+ array[6] = value; >+ array[7] = value; >+ array[8] = value; >+ array[9] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_inout_ivec4_bigarray_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_inout_ivec4_bigarray_vert.vert >new file mode 100644 >index 00000000000..0c69946a165 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_inout_ivec4_bigarray_vert.vert >@@ -0,0 +1,129 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+ivec4 function(inout ivec4 par[10]); >+bool is_all(const in ivec4 par, const in int value); >+bool is_all(const in ivec4 array[10], const in ivec4 value); >+void set_all(out ivec4 array[10], const in ivec4 value); >+ >+void main (void) >+{ >+ ivec4 par[10]; >+ ivec4 ret = ivec4(0, 0, 0, 0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1. >+ set_all(par, ivec4(1, 1, 1, 1)); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1. >+ if(is_all(par, ivec4(0, 0, 0, 0)) && is_all(ret, 1)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+ivec4 function(inout ivec4 par[10]) >+{ >+ // Return the value of the array. >+ if(is_all(par, ivec4(1, 1, 1, 1))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, ivec4(0, 0, 0, 0)); >+ >+ return ivec4(1, 1, 1, 1); >+ } >+ else >+ return ivec4(0, 0, 0, 0); >+} >+ >+bool is_all(const in ivec4 par, const in int value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in ivec4 array[10], const in ivec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ if(array[3] != value) >+ ret = false; >+ if(array[4] != value) >+ ret = false; >+ if(array[5] != value) >+ ret = false; >+ if(array[6] != value) >+ ret = false; >+ if(array[7] != value) >+ ret = false; >+ if(array[8] != value) >+ ret = false; >+ if(array[9] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out ivec4 array[10], const in ivec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+ array[3] = value; >+ array[4] = value; >+ array[5] = value; >+ array[6] = value; >+ array[7] = value; >+ array[8] = value; >+ array[9] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_inout_ivec4_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_inout_ivec4_empty_frag.frag >new file mode 100644 >index 00000000000..aa75e3262b5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_inout_ivec4_empty_frag.frag >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+ivec4 function(inout ivec4 par); >+bool is_all(const in ivec4 par, const in int value); >+void set_all(out ivec4 par, const in int value); >+ >+void main (void) >+{ >+ ivec4 par = ivec4(1, 1, 1, 1); >+ ivec4 ret = ivec4(0, 0, 0, 0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1. >+ if(is_all(par, 0) && is_all(ret, 1)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+ivec4 function(inout ivec4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, 1)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0); >+ >+ return ivec4(1, 1, 1, 1); >+ } >+ else >+ return ivec4(0, 0, 0, 0); >+} >+ >+bool is_all(const in ivec4 par, const in int value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out ivec4 par, const in int value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_inout_ivec4_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_inout_ivec4_empty_vert.vert >new file mode 100644 >index 00000000000..40e9db60ca9 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_inout_ivec4_empty_vert.vert >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+ivec4 function(inout ivec4 par); >+bool is_all(const in ivec4 par, const in int value); >+void set_all(out ivec4 par, const in int value); >+ >+void main (void) >+{ >+ ivec4 par = ivec4(1, 1, 1, 1); >+ ivec4 ret = ivec4(0, 0, 0, 0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1. >+ if(is_all(par, 0) && is_all(ret, 1)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+ivec4 function(inout ivec4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, 1)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0); >+ >+ return ivec4(1, 1, 1, 1); >+ } >+ else >+ return ivec4(0, 0, 0, 0); >+} >+ >+bool is_all(const in ivec4 par, const in int value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out ivec4 par, const in int value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_out_ivec4_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_out_ivec4_array_frag.frag >new file mode 100644 >index 00000000000..88ec4b637a8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_out_ivec4_array_frag.frag >@@ -0,0 +1,102 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+ivec4 function(out ivec4 par[3]); >+bool is_all(const in ivec4 par, const in int value); >+bool is_all(const in ivec4 array[3], const in ivec4 value); >+void set_all(out ivec4 array[3], const in ivec4 value); >+ >+void main (void) >+{ >+ ivec4 par[3]; >+ ivec4 ret = ivec4(0, 0, 0, 0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1. >+ set_all(par, ivec4(1, 1, 1, 1)); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1. >+ if(is_all(par, ivec4(0, 0, 0, 0)) && is_all(ret, 1)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+ivec4 function(out ivec4 par[3]) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, ivec4(0, 0, 0, 0)); >+ >+ return ivec4(1, 1, 1, 1); >+} >+ >+bool is_all(const in ivec4 par, const in int value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in ivec4 array[3], const in ivec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out ivec4 array[3], const in ivec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_out_ivec4_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_out_ivec4_array_vert.vert >new file mode 100644 >index 00000000000..c33908198fd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_out_ivec4_array_vert.vert >@@ -0,0 +1,102 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+ivec4 function(out ivec4 par[3]); >+bool is_all(const in ivec4 par, const in int value); >+bool is_all(const in ivec4 array[3], const in ivec4 value); >+void set_all(out ivec4 array[3], const in ivec4 value); >+ >+void main (void) >+{ >+ ivec4 par[3]; >+ ivec4 ret = ivec4(0, 0, 0, 0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1. >+ set_all(par, ivec4(1, 1, 1, 1)); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1. >+ if(is_all(par, ivec4(0, 0, 0, 0)) && is_all(ret, 1)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+ivec4 function(out ivec4 par[3]) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, ivec4(0, 0, 0, 0)); >+ >+ return ivec4(1, 1, 1, 1); >+} >+ >+bool is_all(const in ivec4 par, const in int value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in ivec4 array[3], const in ivec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out ivec4 array[3], const in ivec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_out_ivec4_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_out_ivec4_empty_frag.frag >new file mode 100644 >index 00000000000..9886a204f3e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_out_ivec4_empty_frag.frag >@@ -0,0 +1,85 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+ivec4 function(out ivec4 par); >+bool is_all(const in ivec4 par, const in int value); >+void set_all(out ivec4 par, const in int value); >+ >+void main (void) >+{ >+ ivec4 par = ivec4(1, 1, 1, 1); >+ ivec4 ret = ivec4(0, 0, 0, 0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1. >+ if(is_all(par, 0) && is_all(ret, 1)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+ivec4 function(out ivec4 par) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0); >+ >+ return ivec4(1, 1, 1, 1); >+} >+ >+bool is_all(const in ivec4 par, const in int value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out ivec4 par, const in int value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_out_ivec4_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_out_ivec4_empty_vert.vert >new file mode 100644 >index 00000000000..1e376e399a4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/ivec4_empty_out_ivec4_empty_vert.vert >@@ -0,0 +1,85 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+ivec4 function(out ivec4 par); >+bool is_all(const in ivec4 par, const in int value); >+void set_all(out ivec4 par, const in int value); >+ >+void main (void) >+{ >+ ivec4 par = ivec4(1, 1, 1, 1); >+ ivec4 ret = ivec4(0, 0, 0, 0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1. >+ if(is_all(par, 0) && is_all(ret, 1)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+ivec4 function(out ivec4 par) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0); >+ >+ return ivec4(1, 1, 1, 1); >+} >+ >+bool is_all(const in ivec4 par, const in int value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out ivec4 par, const in int value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_empty_mat4_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_empty_mat4_array_frag.frag >new file mode 100644 >index 00000000000..9ee51b4a870 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_empty_mat4_array_frag.frag >@@ -0,0 +1,141 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+const mat4 mat_ones = mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+const mat4 mat_zeros = mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+ >+// Function declarations. >+mat4 function(mat4 par[2]); >+bool is_all(const in mat4 par, const in float value); >+bool is_all(const in mat4 array[2], const in mat4 value); >+void set_all(out mat4 array[2], const in mat4 value); >+ >+void main (void) >+{ >+ mat4 par[2]; >+ mat4 ret = mat_zeros; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, mat_ones); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, mat_ones) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+mat4 function(mat4 par[2]) >+{ >+ // Return the value of the array. >+ if(is_all(par, mat_ones)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, mat_zeros); >+ >+ return mat_ones; >+ } >+ else >+ return mat_zeros; >+} >+ >+bool is_all(const in mat4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0][0] != value) >+ ret = false; >+ if(par[0][1] != value) >+ ret = false; >+ if(par[0][2] != value) >+ ret = false; >+ if(par[0][3] != value) >+ ret = false; >+ >+ if(par[1][0] != value) >+ ret = false; >+ if(par[1][1] != value) >+ ret = false; >+ if(par[1][2] != value) >+ ret = false; >+ if(par[1][3] != value) >+ ret = false; >+ >+ if(par[2][0] != value) >+ ret = false; >+ if(par[2][1] != value) >+ ret = false; >+ if(par[2][2] != value) >+ ret = false; >+ if(par[2][3] != value) >+ ret = false; >+ >+ if(par[3][0] != value) >+ ret = false; >+ if(par[3][1] != value) >+ ret = false; >+ if(par[3][2] != value) >+ ret = false; >+ if(par[3][3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in mat4 array[2], const in mat4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out mat4 array[2], const in mat4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_empty_mat4_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_empty_mat4_array_vert.vert >new file mode 100644 >index 00000000000..fd810d298a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_empty_mat4_array_vert.vert >@@ -0,0 +1,141 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+const mat4 mat_ones = mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+const mat4 mat_zeros = mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+ >+// Function declarations. >+mat4 function(mat4 par[2]); >+bool is_all(const in mat4 par, const in float value); >+bool is_all(const in mat4 array[2], const in mat4 value); >+void set_all(out mat4 array[2], const in mat4 value); >+ >+void main (void) >+{ >+ mat4 par[2]; >+ mat4 ret = mat_zeros; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, mat_ones); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, mat_ones) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+mat4 function(mat4 par[2]) >+{ >+ // Return the value of the array. >+ if(is_all(par, mat_ones)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, mat_zeros); >+ >+ return mat_ones; >+ } >+ else >+ return mat_zeros; >+} >+ >+bool is_all(const in mat4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0][0] != value) >+ ret = false; >+ if(par[0][1] != value) >+ ret = false; >+ if(par[0][2] != value) >+ ret = false; >+ if(par[0][3] != value) >+ ret = false; >+ >+ if(par[1][0] != value) >+ ret = false; >+ if(par[1][1] != value) >+ ret = false; >+ if(par[1][2] != value) >+ ret = false; >+ if(par[1][3] != value) >+ ret = false; >+ >+ if(par[2][0] != value) >+ ret = false; >+ if(par[2][1] != value) >+ ret = false; >+ if(par[2][2] != value) >+ ret = false; >+ if(par[2][3] != value) >+ ret = false; >+ >+ if(par[3][0] != value) >+ ret = false; >+ if(par[3][1] != value) >+ ret = false; >+ if(par[3][2] != value) >+ ret = false; >+ if(par[3][3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in mat4 array[2], const in mat4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out mat4 array[2], const in mat4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_empty_mat4_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_empty_mat4_empty_frag.frag >new file mode 100644 >index 00000000000..284dcaa2e57 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_empty_mat4_empty_frag.frag >@@ -0,0 +1,145 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+mat4 function(mat4 par); >+bool is_all(const in mat4 par, const in float value); >+void set_all(out mat4 par, const in float value); >+ >+void main (void) >+{ >+ mat4 par = mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+ mat4 ret = mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, 1.0) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+mat4 function(mat4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, 1.0)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in mat4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0][0] != value) >+ ret = false; >+ if(par[0][1] != value) >+ ret = false; >+ if(par[0][2] != value) >+ ret = false; >+ if(par[0][3] != value) >+ ret = false; >+ >+ if(par[1][0] != value) >+ ret = false; >+ if(par[1][1] != value) >+ ret = false; >+ if(par[1][2] != value) >+ ret = false; >+ if(par[1][3] != value) >+ ret = false; >+ >+ if(par[2][0] != value) >+ ret = false; >+ if(par[2][1] != value) >+ ret = false; >+ if(par[2][2] != value) >+ ret = false; >+ if(par[2][3] != value) >+ ret = false; >+ >+ if(par[3][0] != value) >+ ret = false; >+ if(par[3][1] != value) >+ ret = false; >+ if(par[3][2] != value) >+ ret = false; >+ if(par[3][3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out mat4 par, const in float value) >+{ >+ par[0][0] = value; >+ par[0][1] = value; >+ par[0][2] = value; >+ par[0][3] = value; >+ >+ par[1][0] = value; >+ par[1][1] = value; >+ par[1][2] = value; >+ par[1][3] = value; >+ >+ par[2][0] = value; >+ par[2][1] = value; >+ par[2][2] = value; >+ par[2][3] = value; >+ >+ par[3][0] = value; >+ par[3][1] = value; >+ par[3][2] = value; >+ par[3][3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_empty_mat4_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_empty_mat4_empty_vert.vert >new file mode 100644 >index 00000000000..c3e32d3887f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_empty_mat4_empty_vert.vert >@@ -0,0 +1,145 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+mat4 function(mat4 par); >+bool is_all(const in mat4 par, const in float value); >+void set_all(out mat4 par, const in float value); >+ >+void main (void) >+{ >+ mat4 par = mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+ mat4 ret = mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, 1.0) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+mat4 function(mat4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, 1.0)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in mat4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0][0] != value) >+ ret = false; >+ if(par[0][1] != value) >+ ret = false; >+ if(par[0][2] != value) >+ ret = false; >+ if(par[0][3] != value) >+ ret = false; >+ >+ if(par[1][0] != value) >+ ret = false; >+ if(par[1][1] != value) >+ ret = false; >+ if(par[1][2] != value) >+ ret = false; >+ if(par[1][3] != value) >+ ret = false; >+ >+ if(par[2][0] != value) >+ ret = false; >+ if(par[2][1] != value) >+ ret = false; >+ if(par[2][2] != value) >+ ret = false; >+ if(par[2][3] != value) >+ ret = false; >+ >+ if(par[3][0] != value) >+ ret = false; >+ if(par[3][1] != value) >+ ret = false; >+ if(par[3][2] != value) >+ ret = false; >+ if(par[3][3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out mat4 par, const in float value) >+{ >+ par[0][0] = value; >+ par[0][1] = value; >+ par[0][2] = value; >+ par[0][3] = value; >+ >+ par[1][0] = value; >+ par[1][1] = value; >+ par[1][2] = value; >+ par[1][3] = value; >+ >+ par[2][0] = value; >+ par[2][1] = value; >+ par[2][2] = value; >+ par[2][3] = value; >+ >+ par[3][0] = value; >+ par[3][1] = value; >+ par[3][2] = value; >+ par[3][3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_in_mat4_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_in_mat4_array_frag.frag >new file mode 100644 >index 00000000000..4f17432df39 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_in_mat4_array_frag.frag >@@ -0,0 +1,141 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+const mat4 mat_ones = mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+const mat4 mat_zeros = mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+ >+// Function declarations. >+mat4 function(in mat4 par[2]); >+bool is_all(const in mat4 par, const in float value); >+bool is_all(const in mat4 array[2], const in mat4 value); >+void set_all(out mat4 array[2], const in mat4 value); >+ >+void main (void) >+{ >+ mat4 par[2]; >+ mat4 ret = mat_zeros; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, mat_ones); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, mat_ones) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+mat4 function(in mat4 par[2]) >+{ >+ // Return the value of the array. >+ if(is_all(par, mat_ones)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, mat_zeros); >+ >+ return mat_ones; >+ } >+ else >+ return mat_zeros; >+} >+ >+bool is_all(const in mat4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0][0] != value) >+ ret = false; >+ if(par[0][1] != value) >+ ret = false; >+ if(par[0][2] != value) >+ ret = false; >+ if(par[0][3] != value) >+ ret = false; >+ >+ if(par[1][0] != value) >+ ret = false; >+ if(par[1][1] != value) >+ ret = false; >+ if(par[1][2] != value) >+ ret = false; >+ if(par[1][3] != value) >+ ret = false; >+ >+ if(par[2][0] != value) >+ ret = false; >+ if(par[2][1] != value) >+ ret = false; >+ if(par[2][2] != value) >+ ret = false; >+ if(par[2][3] != value) >+ ret = false; >+ >+ if(par[3][0] != value) >+ ret = false; >+ if(par[3][1] != value) >+ ret = false; >+ if(par[3][2] != value) >+ ret = false; >+ if(par[3][3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in mat4 array[2], const in mat4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out mat4 array[2], const in mat4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_in_mat4_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_in_mat4_array_vert.vert >new file mode 100644 >index 00000000000..9d28c3693b2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_in_mat4_array_vert.vert >@@ -0,0 +1,141 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+const mat4 mat_ones = mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+const mat4 mat_zeros = mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+ >+// Function declarations. >+mat4 function(in mat4 par[2]); >+bool is_all(const in mat4 par, const in float value); >+bool is_all(const in mat4 array[2], const in mat4 value); >+void set_all(out mat4 array[2], const in mat4 value); >+ >+void main (void) >+{ >+ mat4 par[2]; >+ mat4 ret = mat_zeros; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, mat_ones); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, mat_ones) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+mat4 function(in mat4 par[2]) >+{ >+ // Return the value of the array. >+ if(is_all(par, mat_ones)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, mat_zeros); >+ >+ return mat_ones; >+ } >+ else >+ return mat_zeros; >+} >+ >+bool is_all(const in mat4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0][0] != value) >+ ret = false; >+ if(par[0][1] != value) >+ ret = false; >+ if(par[0][2] != value) >+ ret = false; >+ if(par[0][3] != value) >+ ret = false; >+ >+ if(par[1][0] != value) >+ ret = false; >+ if(par[1][1] != value) >+ ret = false; >+ if(par[1][2] != value) >+ ret = false; >+ if(par[1][3] != value) >+ ret = false; >+ >+ if(par[2][0] != value) >+ ret = false; >+ if(par[2][1] != value) >+ ret = false; >+ if(par[2][2] != value) >+ ret = false; >+ if(par[2][3] != value) >+ ret = false; >+ >+ if(par[3][0] != value) >+ ret = false; >+ if(par[3][1] != value) >+ ret = false; >+ if(par[3][2] != value) >+ ret = false; >+ if(par[3][3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in mat4 array[2], const in mat4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out mat4 array[2], const in mat4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_in_mat4_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_in_mat4_empty_frag.frag >new file mode 100644 >index 00000000000..fd1faebce18 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_in_mat4_empty_frag.frag >@@ -0,0 +1,145 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+mat4 function(in mat4 par); >+bool is_all(const in mat4 par, const in float value); >+void set_all(out mat4 par, const in float value); >+ >+void main (void) >+{ >+ mat4 par = mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+ mat4 ret = mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, 1.0) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+mat4 function(in mat4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, 1.0)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in mat4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0][0] != value) >+ ret = false; >+ if(par[0][1] != value) >+ ret = false; >+ if(par[0][2] != value) >+ ret = false; >+ if(par[0][3] != value) >+ ret = false; >+ >+ if(par[1][0] != value) >+ ret = false; >+ if(par[1][1] != value) >+ ret = false; >+ if(par[1][2] != value) >+ ret = false; >+ if(par[1][3] != value) >+ ret = false; >+ >+ if(par[2][0] != value) >+ ret = false; >+ if(par[2][1] != value) >+ ret = false; >+ if(par[2][2] != value) >+ ret = false; >+ if(par[2][3] != value) >+ ret = false; >+ >+ if(par[3][0] != value) >+ ret = false; >+ if(par[3][1] != value) >+ ret = false; >+ if(par[3][2] != value) >+ ret = false; >+ if(par[3][3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out mat4 par, const in float value) >+{ >+ par[0][0] = value; >+ par[0][1] = value; >+ par[0][2] = value; >+ par[0][3] = value; >+ >+ par[1][0] = value; >+ par[1][1] = value; >+ par[1][2] = value; >+ par[1][3] = value; >+ >+ par[2][0] = value; >+ par[2][1] = value; >+ par[2][2] = value; >+ par[2][3] = value; >+ >+ par[3][0] = value; >+ par[3][1] = value; >+ par[3][2] = value; >+ par[3][3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_in_mat4_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_in_mat4_empty_vert.vert >new file mode 100644 >index 00000000000..d606b7a43f4 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_in_mat4_empty_vert.vert >@@ -0,0 +1,145 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+mat4 function(in mat4 par); >+bool is_all(const in mat4 par, const in float value); >+void set_all(out mat4 par, const in float value); >+ >+void main (void) >+{ >+ mat4 par = mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+ mat4 ret = mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, 1.0) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+mat4 function(in mat4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, 1.0)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in mat4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0][0] != value) >+ ret = false; >+ if(par[0][1] != value) >+ ret = false; >+ if(par[0][2] != value) >+ ret = false; >+ if(par[0][3] != value) >+ ret = false; >+ >+ if(par[1][0] != value) >+ ret = false; >+ if(par[1][1] != value) >+ ret = false; >+ if(par[1][2] != value) >+ ret = false; >+ if(par[1][3] != value) >+ ret = false; >+ >+ if(par[2][0] != value) >+ ret = false; >+ if(par[2][1] != value) >+ ret = false; >+ if(par[2][2] != value) >+ ret = false; >+ if(par[2][3] != value) >+ ret = false; >+ >+ if(par[3][0] != value) >+ ret = false; >+ if(par[3][1] != value) >+ ret = false; >+ if(par[3][2] != value) >+ ret = false; >+ if(par[3][3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out mat4 par, const in float value) >+{ >+ par[0][0] = value; >+ par[0][1] = value; >+ par[0][2] = value; >+ par[0][3] = value; >+ >+ par[1][0] = value; >+ par[1][1] = value; >+ par[1][2] = value; >+ par[1][3] = value; >+ >+ par[2][0] = value; >+ par[2][1] = value; >+ par[2][2] = value; >+ par[2][3] = value; >+ >+ par[3][0] = value; >+ par[3][1] = value; >+ par[3][2] = value; >+ par[3][3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_inout_mat4_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_inout_mat4_array_frag.frag >new file mode 100644 >index 00000000000..e0d21a4f444 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_inout_mat4_array_frag.frag >@@ -0,0 +1,141 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+const mat4 mat_ones = mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+const mat4 mat_zeros = mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+ >+// Function declarations. >+mat4 function(inout mat4 par[2]); >+bool is_all(const in mat4 par, const in float value); >+bool is_all(const in mat4 array[2], const in mat4 value); >+void set_all(out mat4 array[2], const in mat4 value); >+ >+void main (void) >+{ >+ mat4 par[2]; >+ mat4 ret = mat_zeros; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, mat_ones); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, mat_zeros) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+mat4 function(inout mat4 par[2]) >+{ >+ // Return the value of the array. >+ if(is_all(par, mat_ones)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, mat_zeros); >+ >+ return mat_ones; >+ } >+ else >+ return mat_zeros; >+} >+ >+bool is_all(const in mat4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0][0] != value) >+ ret = false; >+ if(par[0][1] != value) >+ ret = false; >+ if(par[0][2] != value) >+ ret = false; >+ if(par[0][3] != value) >+ ret = false; >+ >+ if(par[1][0] != value) >+ ret = false; >+ if(par[1][1] != value) >+ ret = false; >+ if(par[1][2] != value) >+ ret = false; >+ if(par[1][3] != value) >+ ret = false; >+ >+ if(par[2][0] != value) >+ ret = false; >+ if(par[2][1] != value) >+ ret = false; >+ if(par[2][2] != value) >+ ret = false; >+ if(par[2][3] != value) >+ ret = false; >+ >+ if(par[3][0] != value) >+ ret = false; >+ if(par[3][1] != value) >+ ret = false; >+ if(par[3][2] != value) >+ ret = false; >+ if(par[3][3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in mat4 array[2], const in mat4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out mat4 array[2], const in mat4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_inout_mat4_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_inout_mat4_array_vert.vert >new file mode 100644 >index 00000000000..981a119721e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_inout_mat4_array_vert.vert >@@ -0,0 +1,141 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+const mat4 mat_ones = mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+const mat4 mat_zeros = mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+ >+// Function declarations. >+mat4 function(inout mat4 par[2]); >+bool is_all(const in mat4 par, const in float value); >+bool is_all(const in mat4 array[2], const in mat4 value); >+void set_all(out mat4 array[2], const in mat4 value); >+ >+void main (void) >+{ >+ mat4 par[2]; >+ mat4 ret = mat_zeros; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, mat_ones); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, mat_zeros) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+mat4 function(inout mat4 par[2]) >+{ >+ // Return the value of the array. >+ if(is_all(par, mat_ones)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, mat_zeros); >+ >+ return mat_ones; >+ } >+ else >+ return mat_zeros; >+} >+ >+bool is_all(const in mat4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0][0] != value) >+ ret = false; >+ if(par[0][1] != value) >+ ret = false; >+ if(par[0][2] != value) >+ ret = false; >+ if(par[0][3] != value) >+ ret = false; >+ >+ if(par[1][0] != value) >+ ret = false; >+ if(par[1][1] != value) >+ ret = false; >+ if(par[1][2] != value) >+ ret = false; >+ if(par[1][3] != value) >+ ret = false; >+ >+ if(par[2][0] != value) >+ ret = false; >+ if(par[2][1] != value) >+ ret = false; >+ if(par[2][2] != value) >+ ret = false; >+ if(par[2][3] != value) >+ ret = false; >+ >+ if(par[3][0] != value) >+ ret = false; >+ if(par[3][1] != value) >+ ret = false; >+ if(par[3][2] != value) >+ ret = false; >+ if(par[3][3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in mat4 array[2], const in mat4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out mat4 array[2], const in mat4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_inout_mat4_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_inout_mat4_empty_frag.frag >new file mode 100644 >index 00000000000..5ad7e175521 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_inout_mat4_empty_frag.frag >@@ -0,0 +1,145 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+mat4 function(inout mat4 par); >+bool is_all(const in mat4 par, const in float value); >+void set_all(out mat4 par, const in float value); >+ >+void main (void) >+{ >+ mat4 par = mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+ mat4 ret = mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, 0.0) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+mat4 function(inout mat4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, 1.0)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in mat4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0][0] != value) >+ ret = false; >+ if(par[0][1] != value) >+ ret = false; >+ if(par[0][2] != value) >+ ret = false; >+ if(par[0][3] != value) >+ ret = false; >+ >+ if(par[1][0] != value) >+ ret = false; >+ if(par[1][1] != value) >+ ret = false; >+ if(par[1][2] != value) >+ ret = false; >+ if(par[1][3] != value) >+ ret = false; >+ >+ if(par[2][0] != value) >+ ret = false; >+ if(par[2][1] != value) >+ ret = false; >+ if(par[2][2] != value) >+ ret = false; >+ if(par[2][3] != value) >+ ret = false; >+ >+ if(par[3][0] != value) >+ ret = false; >+ if(par[3][1] != value) >+ ret = false; >+ if(par[3][2] != value) >+ ret = false; >+ if(par[3][3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out mat4 par, const in float value) >+{ >+ par[0][0] = value; >+ par[0][1] = value; >+ par[0][2] = value; >+ par[0][3] = value; >+ >+ par[1][0] = value; >+ par[1][1] = value; >+ par[1][2] = value; >+ par[1][3] = value; >+ >+ par[2][0] = value; >+ par[2][1] = value; >+ par[2][2] = value; >+ par[2][3] = value; >+ >+ par[3][0] = value; >+ par[3][1] = value; >+ par[3][2] = value; >+ par[3][3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_inout_mat4_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_inout_mat4_empty_vert.vert >new file mode 100644 >index 00000000000..b56fe2a97c5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_inout_mat4_empty_vert.vert >@@ -0,0 +1,145 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+mat4 function(inout mat4 par); >+bool is_all(const in mat4 par, const in float value); >+void set_all(out mat4 par, const in float value); >+ >+void main (void) >+{ >+ mat4 par = mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+ mat4 ret = mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, 0.0) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+mat4 function(inout mat4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, 1.0)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in mat4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0][0] != value) >+ ret = false; >+ if(par[0][1] != value) >+ ret = false; >+ if(par[0][2] != value) >+ ret = false; >+ if(par[0][3] != value) >+ ret = false; >+ >+ if(par[1][0] != value) >+ ret = false; >+ if(par[1][1] != value) >+ ret = false; >+ if(par[1][2] != value) >+ ret = false; >+ if(par[1][3] != value) >+ ret = false; >+ >+ if(par[2][0] != value) >+ ret = false; >+ if(par[2][1] != value) >+ ret = false; >+ if(par[2][2] != value) >+ ret = false; >+ if(par[2][3] != value) >+ ret = false; >+ >+ if(par[3][0] != value) >+ ret = false; >+ if(par[3][1] != value) >+ ret = false; >+ if(par[3][2] != value) >+ ret = false; >+ if(par[3][3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out mat4 par, const in float value) >+{ >+ par[0][0] = value; >+ par[0][1] = value; >+ par[0][2] = value; >+ par[0][3] = value; >+ >+ par[1][0] = value; >+ par[1][1] = value; >+ par[1][2] = value; >+ par[1][3] = value; >+ >+ par[2][0] = value; >+ par[2][1] = value; >+ par[2][2] = value; >+ par[2][3] = value; >+ >+ par[3][0] = value; >+ par[3][1] = value; >+ par[3][2] = value; >+ par[3][3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_out_mat4_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_out_mat4_array_frag.frag >new file mode 100644 >index 00000000000..61b5da60481 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_out_mat4_array_frag.frag >@@ -0,0 +1,135 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+const mat4 mat_ones = mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+const mat4 mat_zeros = mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+ >+// Function declarations. >+mat4 function(out mat4 par[2]); >+bool is_all(const in mat4 par, const in float value); >+bool is_all(const in mat4 array[2], const in mat4 value); >+void set_all(out mat4 array[2], const in mat4 value); >+ >+void main (void) >+{ >+ mat4 par[2]; >+ mat4 ret = mat_zeros; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, mat_ones); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, mat_zeros) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+mat4 function(out mat4 par[2]) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, mat_zeros); >+ >+ return mat_ones; >+} >+ >+bool is_all(const in mat4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0][0] != value) >+ ret = false; >+ if(par[0][1] != value) >+ ret = false; >+ if(par[0][2] != value) >+ ret = false; >+ if(par[0][3] != value) >+ ret = false; >+ >+ if(par[1][0] != value) >+ ret = false; >+ if(par[1][1] != value) >+ ret = false; >+ if(par[1][2] != value) >+ ret = false; >+ if(par[1][3] != value) >+ ret = false; >+ >+ if(par[2][0] != value) >+ ret = false; >+ if(par[2][1] != value) >+ ret = false; >+ if(par[2][2] != value) >+ ret = false; >+ if(par[2][3] != value) >+ ret = false; >+ >+ if(par[3][0] != value) >+ ret = false; >+ if(par[3][1] != value) >+ ret = false; >+ if(par[3][2] != value) >+ ret = false; >+ if(par[3][3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in mat4 array[2], const in mat4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out mat4 array[2], const in mat4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_out_mat4_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_out_mat4_array_vert.vert >new file mode 100644 >index 00000000000..dcccaa317c8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_out_mat4_array_vert.vert >@@ -0,0 +1,135 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+const mat4 mat_ones = mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+const mat4 mat_zeros = mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+ >+// Function declarations. >+mat4 function(out mat4 par[2]); >+bool is_all(const in mat4 par, const in float value); >+bool is_all(const in mat4 array[2], const in mat4 value); >+void set_all(out mat4 array[2], const in mat4 value); >+ >+void main (void) >+{ >+ mat4 par[2]; >+ mat4 ret = mat_zeros; >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, mat_ones); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, mat_zeros) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+mat4 function(out mat4 par[2]) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, mat_zeros); >+ >+ return mat_ones; >+} >+ >+bool is_all(const in mat4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0][0] != value) >+ ret = false; >+ if(par[0][1] != value) >+ ret = false; >+ if(par[0][2] != value) >+ ret = false; >+ if(par[0][3] != value) >+ ret = false; >+ >+ if(par[1][0] != value) >+ ret = false; >+ if(par[1][1] != value) >+ ret = false; >+ if(par[1][2] != value) >+ ret = false; >+ if(par[1][3] != value) >+ ret = false; >+ >+ if(par[2][0] != value) >+ ret = false; >+ if(par[2][1] != value) >+ ret = false; >+ if(par[2][2] != value) >+ ret = false; >+ if(par[2][3] != value) >+ ret = false; >+ >+ if(par[3][0] != value) >+ ret = false; >+ if(par[3][1] != value) >+ ret = false; >+ if(par[3][2] != value) >+ ret = false; >+ if(par[3][3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in mat4 array[2], const in mat4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out mat4 array[2], const in mat4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_out_mat4_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_out_mat4_empty_frag.frag >new file mode 100644 >index 00000000000..870ee304c73 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_out_mat4_empty_frag.frag >@@ -0,0 +1,136 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+mat4 function(out mat4 par); >+bool is_all(const in mat4 par, const in float value); >+void set_all(out mat4 par, const in float value); >+ >+void main (void) >+{ >+ mat4 par = mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+ mat4 ret = mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, 0.0) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+mat4 function(out mat4 par) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+} >+ >+bool is_all(const in mat4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0][0] != value) >+ ret = false; >+ if(par[0][1] != value) >+ ret = false; >+ if(par[0][2] != value) >+ ret = false; >+ if(par[0][3] != value) >+ ret = false; >+ >+ if(par[1][0] != value) >+ ret = false; >+ if(par[1][1] != value) >+ ret = false; >+ if(par[1][2] != value) >+ ret = false; >+ if(par[1][3] != value) >+ ret = false; >+ >+ if(par[2][0] != value) >+ ret = false; >+ if(par[2][1] != value) >+ ret = false; >+ if(par[2][2] != value) >+ ret = false; >+ if(par[2][3] != value) >+ ret = false; >+ >+ if(par[3][0] != value) >+ ret = false; >+ if(par[3][1] != value) >+ ret = false; >+ if(par[3][2] != value) >+ ret = false; >+ if(par[3][3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out mat4 par, const in float value) >+{ >+ par[0][0] = value; >+ par[0][1] = value; >+ par[0][2] = value; >+ par[0][3] = value; >+ >+ par[1][0] = value; >+ par[1][1] = value; >+ par[1][2] = value; >+ par[1][3] = value; >+ >+ par[2][0] = value; >+ par[2][1] = value; >+ par[2][2] = value; >+ par[2][3] = value; >+ >+ par[3][0] = value; >+ par[3][1] = value; >+ par[3][2] = value; >+ par[3][3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_out_mat4_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_out_mat4_empty_vert.vert >new file mode 100644 >index 00000000000..12a42d34395 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/mat4_empty_out_mat4_empty_vert.vert >@@ -0,0 +1,136 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+mat4 function(out mat4 par); >+bool is_all(const in mat4 par, const in float value); >+void set_all(out mat4 par, const in float value); >+ >+void main (void) >+{ >+ mat4 par = mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+ mat4 ret = mat4(0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0, >+ 0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, 0.0) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+mat4 function(out mat4 par) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return mat4(1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0, >+ 1.0, 1.0, 1.0, 1.0); >+} >+ >+bool is_all(const in mat4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0][0] != value) >+ ret = false; >+ if(par[0][1] != value) >+ ret = false; >+ if(par[0][2] != value) >+ ret = false; >+ if(par[0][3] != value) >+ ret = false; >+ >+ if(par[1][0] != value) >+ ret = false; >+ if(par[1][1] != value) >+ ret = false; >+ if(par[1][2] != value) >+ ret = false; >+ if(par[1][3] != value) >+ ret = false; >+ >+ if(par[2][0] != value) >+ ret = false; >+ if(par[2][1] != value) >+ ret = false; >+ if(par[2][2] != value) >+ ret = false; >+ if(par[2][3] != value) >+ ret = false; >+ >+ if(par[3][0] != value) >+ ret = false; >+ if(par[3][1] != value) >+ ret = false; >+ if(par[3][2] != value) >+ ret = false; >+ if(par[3][3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out mat4 par, const in float value) >+{ >+ par[0][0] = value; >+ par[0][1] = value; >+ par[0][2] = value; >+ par[0][3] = value; >+ >+ par[1][0] = value; >+ par[1][1] = value; >+ par[1][2] = value; >+ par[1][3] = value; >+ >+ par[2][0] = value; >+ par[2][1] = value; >+ par[2][2] = value; >+ par[2][3] = value; >+ >+ par[3][0] = value; >+ par[3][1] = value; >+ par[3][2] = value; >+ par[3][3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/qualifiers_float_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/qualifiers_float_frag.frag >new file mode 100644 >index 00000000000..2328826d691 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/qualifiers_float_frag.frag >@@ -0,0 +1,59 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+ >+ >+float qualifiers(in float a, out float b, inout float c, const in float d, float e) >+{ >+ b = a; >+ c += d; >+ a += 1.0; >+ return e; >+} >+ >+ >+ >+void main (void) >+{ >+ float a = 1.0, b = 2.0, c = 3.0, d = 4.0, e = 1.0, f = 0.0; >+ float q = 0.0; >+ float q2 = 0.0; >+ >+ f = qualifiers(a, b, c, d, e); >+ >+ if(a == 1.0) q += 1.0; >+ if(b == 1.0) q += 2.0; >+ if(c == 7.0) q += 4.0; >+ if(d == 4.0) q2 += 1.0; >+ if(e == 1.0) q2 += 2.0; >+ if(f == 1.0) q2 += 4.0; >+ >+ gl_FragColor = vec4(vec2(q / 7.0, q2 / 7.0), 1.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/qualifiers_float_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/qualifiers_float_vert.vert >new file mode 100644 >index 00000000000..b5b7095b43e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/qualifiers_float_vert.vert >@@ -0,0 +1,59 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+ >+ >+float qualifiers(in float a, out float b, inout float c, const in float d, float e) >+{ >+ b = a; >+ c += d; >+ a += 1.0; >+ return e; >+} >+ >+ >+ >+void main (void) >+{ >+ float a = 1.0, b = 2.0, c = 3.0, d = 4.0, e = 1.0, f = 0.0; >+ float q = 0.0; >+ float q2 = 0.0; >+ >+ f = qualifiers(a, b, c, d, e); >+ >+ if(a == 1.0) q += 1.0; >+ if(b == 1.0) q += 2.0; >+ if(c == 7.0) q += 4.0; >+ if(d == 4.0) q2 += 1.0; >+ if(e == 1.0) q2 += 2.0; >+ if(f == 1.0) q2 += 4.0; >+ >+ color = vec4(vec2(q / 7.0, q2 / 7.0), 1.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/qualifiers_struct_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/qualifiers_struct_frag.frag >new file mode 100644 >index 00000000000..f176cdb0e4b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/qualifiers_struct_frag.frag >@@ -0,0 +1,83 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+struct sabcd >+{ >+ float a; >+ float b; >+ float c; >+ float d; >+}; >+ >+ >+ >+sabcd qualifiers(in sabcd a, out sabcd b, inout sabcd c, const in sabcd d, >+sabcd e) >+{ >+ sabcd one = sabcd(1.0, 1.0, 1.0, 1.0); >+ >+ b = a; >+ >+ c.a += d.a; >+ c.b += d.b; >+ c.c += d.c; >+ c.d += d.d; >+ >+ a.a += one.a; >+ a.b += one.b; >+ a.c += one.c; >+ a.d += one.d; >+ >+ return e; >+} >+ >+void main (void) >+{ >+ sabcd a = sabcd(1.0, 1.0, 1.0, 1.0); >+ sabcd b = sabcd(2.0, 2.0, 2.0, 2.0); >+ sabcd c = sabcd(3.0, 3.0, 3.0, 3.0); >+ sabcd d = sabcd(4.0, 4.0, 4.0, 4.0); >+ sabcd e = sabcd(1.0, 1.0, 1.0, 1.0); >+ sabcd f = sabcd(0.0, 0.0, 0.0, 0.0); >+ sabcd one = sabcd(1.0, 1.0, 1.0, 1.0); >+ sabcd four = sabcd(4.0, 4.0, 4.0, 4.0); >+ sabcd seven = sabcd(7.0, 7.0, 7.0, 7.0); >+ float q = 0.0; >+ float q2 = 0.0; >+ >+ f = qualifiers(a, b, c, d, e); >+ >+ if(a == one) q += 1.0; >+ if(b == one) q += 2.0; >+ if(c == seven) q += 4.0; >+ if(d == four) q2 += 1.0; >+ if(e == one) q2 += 2.0; >+ if(f == one) q2 += 4.0; >+ >+ gl_FragColor = vec4(vec2(q / 7.0, q2 / 7.0), 1.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/qualifiers_struct_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/qualifiers_struct_vert.vert >new file mode 100644 >index 00000000000..8d0b205be5b >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/qualifiers_struct_vert.vert >@@ -0,0 +1,87 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+ >+ >+struct sabcd >+{ >+ float a; >+ float b; >+ float c; >+ float d; >+}; >+ >+ >+ >+sabcd qualifiers(in sabcd a, out sabcd b, inout sabcd c, const in sabcd d, >+sabcd e) >+{ >+ sabcd one = sabcd(1.0, 1.0, 1.0, 1.0); >+ >+ b = a; >+ >+ c.a += d.a; >+ c.b += d.b; >+ c.c += d.c; >+ c.d += d.d; >+ >+ a.a += one.a; >+ a.b += one.b; >+ a.c += one.c; >+ a.d += one.d; >+ >+ return e; >+} >+ >+void main (void) >+{ >+ sabcd a = sabcd(1.0, 1.0, 1.0, 1.0); >+ sabcd b = sabcd(2.0, 2.0, 2.0, 2.0); >+ sabcd c = sabcd(3.0, 3.0, 3.0, 3.0); >+ sabcd d = sabcd(4.0, 4.0, 4.0, 4.0); >+ sabcd e = sabcd(1.0, 1.0, 1.0, 1.0); >+ sabcd f = sabcd(0.0, 0.0, 0.0, 0.0); >+ sabcd one = sabcd(1.0, 1.0, 1.0, 1.0); >+ sabcd four = sabcd(4.0, 4.0, 4.0, 4.0); >+ sabcd seven = sabcd(7.0, 7.0, 7.0, 7.0); >+ float q = 0.0; >+ float q2 = 0.0; >+ >+ f = qualifiers(a, b, c, d, e); >+ >+ if(a == one) q += 1.0; >+ if(b == one) q += 2.0; >+ if(c == seven) q += 4.0; >+ if(d == four) q2 += 1.0; >+ if(e == one) q2 += 2.0; >+ if(f == one) q2 += 4.0; >+ >+ color = vec4(vec2(q / 7.0, q2 / 7.0), 1.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_empty_vec4_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_empty_vec4_array_frag.frag >new file mode 100644 >index 00000000000..1ffc79ea334 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_empty_vec4_array_frag.frag >@@ -0,0 +1,108 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+vec4 function(vec4 par[3]); >+bool is_all(const in vec4 par, const in float value); >+bool is_all(const in vec4 array[3], const in vec4 value); >+void set_all(out vec4 array[3], const in vec4 value); >+ >+void main (void) >+{ >+ vec4 par[3]; >+ vec4 ret = vec4(0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, vec4(1.0, 1.0, 1.0, 1.0)); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, vec4(1.0, 1.0, 1.0, 1.0)) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+vec4 function(vec4 par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, vec4(1.0, 1.0, 1.0, 1.0))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, vec4(0.0, 0.0, 0.0, 0.0)); >+ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return vec4(0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in vec4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in vec4 array[3], const in vec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out vec4 array[3], const in vec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_empty_vec4_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_empty_vec4_array_vert.vert >new file mode 100644 >index 00000000000..df7c8af7780 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_empty_vec4_array_vert.vert >@@ -0,0 +1,108 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+vec4 function(vec4 par[3]); >+bool is_all(const in vec4 par, const in float value); >+bool is_all(const in vec4 array[3], const in vec4 value); >+void set_all(out vec4 array[3], const in vec4 value); >+ >+void main (void) >+{ >+ vec4 par[3]; >+ vec4 ret = vec4(0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, vec4(1.0, 1.0, 1.0, 1.0)); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, vec4(1.0, 1.0, 1.0, 1.0)) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+vec4 function(vec4 par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, vec4(1.0, 1.0, 1.0, 1.0))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, vec4(0.0, 0.0, 0.0, 0.0)); >+ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return vec4(0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in vec4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in vec4 array[3], const in vec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out vec4 array[3], const in vec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_empty_vec4_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_empty_vec4_empty_frag.frag >new file mode 100644 >index 00000000000..59691446f31 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_empty_vec4_empty_frag.frag >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+vec4 function(vec4 par); >+bool is_all(const in vec4 par, const in float value); >+void set_all(out vec4 par, const in float value); >+ >+void main (void) >+{ >+ vec4 par = vec4(1.0, 1.0, 1.0, 1.0); >+ vec4 ret = vec4(0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, 1.0) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+vec4 function(vec4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, 1.0)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return vec4(0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in vec4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out vec4 par, const in float value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_empty_vec4_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_empty_vec4_empty_vert.vert >new file mode 100644 >index 00000000000..f6ca32e1019 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_empty_vec4_empty_vert.vert >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+vec4 function(vec4 par); >+bool is_all(const in vec4 par, const in float value); >+void set_all(out vec4 par, const in float value); >+ >+void main (void) >+{ >+ vec4 par = vec4(1.0, 1.0, 1.0, 1.0); >+ vec4 ret = vec4(0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, 1.0) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+vec4 function(vec4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, 1.0)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return vec4(0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in vec4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out vec4 par, const in float value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_in_vec4_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_in_vec4_array_frag.frag >new file mode 100644 >index 00000000000..9120bb3812f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_in_vec4_array_frag.frag >@@ -0,0 +1,108 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+vec4 function(in vec4 par[3]); >+bool is_all(const in vec4 par, const in float value); >+bool is_all(const in vec4 array[3], const in vec4 value); >+void set_all(out vec4 array[3], const in vec4 value); >+ >+void main (void) >+{ >+ vec4 par[3]; >+ vec4 ret = vec4(0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, vec4(1.0, 1.0, 1.0, 1.0)); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, vec4(1.0, 1.0, 1.0, 1.0)) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+vec4 function(in vec4 par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, vec4(1.0, 1.0, 1.0, 1.0))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, vec4(0.0, 0.0, 0.0, 0.0)); >+ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return vec4(0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in vec4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in vec4 array[3], const in vec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out vec4 array[3], const in vec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_in_vec4_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_in_vec4_array_vert.vert >new file mode 100644 >index 00000000000..4805d42fd51 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_in_vec4_array_vert.vert >@@ -0,0 +1,108 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+vec4 function(in vec4 par[3]); >+bool is_all(const in vec4 par, const in float value); >+bool is_all(const in vec4 array[3], const in vec4 value); >+void set_all(out vec4 array[3], const in vec4 value); >+ >+void main (void) >+{ >+ vec4 par[3]; >+ vec4 ret = vec4(0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, vec4(1.0, 1.0, 1.0, 1.0)); >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, vec4(1.0, 1.0, 1.0, 1.0)) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+vec4 function(in vec4 par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, vec4(1.0, 1.0, 1.0, 1.0))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, vec4(0.0, 0.0, 0.0, 0.0)); >+ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return vec4(0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in vec4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in vec4 array[3], const in vec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out vec4 array[3], const in vec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_in_vec4_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_in_vec4_empty_frag.frag >new file mode 100644 >index 00000000000..bbe63fa2874 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_in_vec4_empty_frag.frag >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+vec4 function(in vec4 par); >+bool is_all(const in vec4 par, const in float value); >+void set_all(out vec4 par, const in float value); >+ >+void main (void) >+{ >+ vec4 par = vec4(1.0, 1.0, 1.0, 1.0); >+ vec4 ret = vec4(0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, 1.0) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+vec4 function(in vec4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, 1.0)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return vec4(0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in vec4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out vec4 par, const in float value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_in_vec4_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_in_vec4_empty_vert.vert >new file mode 100644 >index 00000000000..c6ab4b4e519 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_in_vec4_empty_vert.vert >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+vec4 function(in vec4 par); >+bool is_all(const in vec4 par, const in float value); >+void set_all(out vec4 par, const in float value); >+ >+void main (void) >+{ >+ vec4 par = vec4(1.0, 1.0, 1.0, 1.0); >+ vec4 ret = vec4(0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should remain unchanged by the function and the function should return 1.0. >+ if(is_all(par, 1.0) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+vec4 function(in vec4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, 1.0)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return vec4(0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in vec4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out vec4 par, const in float value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_inout_vec4_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_inout_vec4_array_frag.frag >new file mode 100644 >index 00000000000..3aafe12675a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_inout_vec4_array_frag.frag >@@ -0,0 +1,108 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+vec4 function(inout vec4 par[3]); >+bool is_all(const in vec4 par, const in float value); >+bool is_all(const in vec4 array[3], const in vec4 value); >+void set_all(out vec4 array[3], const in vec4 value); >+ >+void main (void) >+{ >+ vec4 par[3]; >+ vec4 ret = vec4(0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, vec4(1.0, 1.0, 1.0, 1.0)); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, vec4(0.0, 0.0, 0.0, 0.0)) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+vec4 function(inout vec4 par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, vec4(1.0, 1.0, 1.0, 1.0))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, vec4(0.0, 0.0, 0.0, 0.0)); >+ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return vec4(0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in vec4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in vec4 array[3], const in vec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out vec4 array[3], const in vec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_inout_vec4_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_inout_vec4_array_vert.vert >new file mode 100644 >index 00000000000..1c0d0451144 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_inout_vec4_array_vert.vert >@@ -0,0 +1,108 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+vec4 function(inout vec4 par[3]); >+bool is_all(const in vec4 par, const in float value); >+bool is_all(const in vec4 array[3], const in vec4 value); >+void set_all(out vec4 array[3], const in vec4 value); >+ >+void main (void) >+{ >+ vec4 par[3]; >+ vec4 ret = vec4(0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, vec4(1.0, 1.0, 1.0, 1.0)); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, vec4(0.0, 0.0, 0.0, 0.0)) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+vec4 function(inout vec4 par[3]) >+{ >+ // Return the value of the array. >+ if(is_all(par, vec4(1.0, 1.0, 1.0, 1.0))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, vec4(0.0, 0.0, 0.0, 0.0)); >+ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return vec4(0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in vec4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in vec4 array[3], const in vec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out vec4 array[3], const in vec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_inout_vec4_bigarray_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_inout_vec4_bigarray_frag.frag >new file mode 100644 >index 00000000000..3f28f2822c3 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_inout_vec4_bigarray_frag.frag >@@ -0,0 +1,129 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+vec4 function(inout vec4 par[10]); >+bool is_all(const in vec4 par, const in float value); >+bool is_all(const in vec4 array[10], const in vec4 value); >+void set_all(out vec4 array[10], const in vec4 value); >+ >+void main (void) >+{ >+ vec4 par[10]; >+ vec4 ret = vec4(0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, vec4(1.0, 1.0, 1.0, 1.0)); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, vec4(0.0, 0.0, 0.0, 0.0)) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+vec4 function(inout vec4 par[10]) >+{ >+ // Return the value of the array. >+ if(is_all(par, vec4(1.0, 1.0, 1.0, 1.0))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, vec4(0.0, 0.0, 0.0, 0.0)); >+ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return vec4(0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in vec4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in vec4 array[10], const in vec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ if(array[3] != value) >+ ret = false; >+ if(array[4] != value) >+ ret = false; >+ if(array[5] != value) >+ ret = false; >+ if(array[6] != value) >+ ret = false; >+ if(array[7] != value) >+ ret = false; >+ if(array[8] != value) >+ ret = false; >+ if(array[9] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out vec4 array[10], const in vec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+ array[3] = value; >+ array[4] = value; >+ array[5] = value; >+ array[6] = value; >+ array[7] = value; >+ array[8] = value; >+ array[9] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_inout_vec4_bigarray_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_inout_vec4_bigarray_vert.vert >new file mode 100644 >index 00000000000..7a3ba4e2e69 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_inout_vec4_bigarray_vert.vert >@@ -0,0 +1,129 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+vec4 function(inout vec4 par[10]); >+bool is_all(const in vec4 par, const in float value); >+bool is_all(const in vec4 array[10], const in vec4 value); >+void set_all(out vec4 array[10], const in vec4 value); >+ >+void main (void) >+{ >+ vec4 par[10]; >+ vec4 ret = vec4(0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, vec4(1.0, 1.0, 1.0, 1.0)); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, vec4(0.0, 0.0, 0.0, 0.0)) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+vec4 function(inout vec4 par[10]) >+{ >+ // Return the value of the array. >+ if(is_all(par, vec4(1.0, 1.0, 1.0, 1.0))) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, vec4(0.0, 0.0, 0.0, 0.0)); >+ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return vec4(0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in vec4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in vec4 array[10], const in vec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ if(array[3] != value) >+ ret = false; >+ if(array[4] != value) >+ ret = false; >+ if(array[5] != value) >+ ret = false; >+ if(array[6] != value) >+ ret = false; >+ if(array[7] != value) >+ ret = false; >+ if(array[8] != value) >+ ret = false; >+ if(array[9] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out vec4 array[10], const in vec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+ array[3] = value; >+ array[4] = value; >+ array[5] = value; >+ array[6] = value; >+ array[7] = value; >+ array[8] = value; >+ array[9] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_inout_vec4_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_inout_vec4_empty_frag.frag >new file mode 100644 >index 00000000000..04a76748b73 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_inout_vec4_empty_frag.frag >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+vec4 function(inout vec4 par); >+bool is_all(const in vec4 par, const in float value); >+void set_all(out vec4 par, const in float value); >+ >+void main (void) >+{ >+ vec4 par = vec4(1.0, 1.0, 1.0, 1.0); >+ vec4 ret = vec4(0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, 0.0) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+vec4 function(inout vec4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, 1.0)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return vec4(0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in vec4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out vec4 par, const in float value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_inout_vec4_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_inout_vec4_empty_vert.vert >new file mode 100644 >index 00000000000..f35fbdd856d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_inout_vec4_empty_vert.vert >@@ -0,0 +1,91 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+vec4 function(inout vec4 par); >+bool is_all(const in vec4 par, const in float value); >+void set_all(out vec4 par, const in float value); >+ >+void main (void) >+{ >+ vec4 par = vec4(1.0, 1.0, 1.0, 1.0); >+ vec4 ret = vec4(0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, 0.0) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+vec4 function(inout vec4 par) >+{ >+ // Return the value of the parameter. >+ if(is_all(par, 1.0)) >+ { >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+ } >+ else >+ return vec4(0.0, 0.0, 0.0, 0.0); >+} >+ >+bool is_all(const in vec4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out vec4 par, const in float value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_out_vec4_array_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_out_vec4_array_frag.frag >new file mode 100644 >index 00000000000..c8ebf2cf6be >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_out_vec4_array_frag.frag >@@ -0,0 +1,102 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declarations. >+vec4 function(out vec4 par[3]); >+bool is_all(const in vec4 par, const in float value); >+bool is_all(const in vec4 array[3], const in vec4 value); >+void set_all(out vec4 array[3], const in vec4 value); >+ >+void main (void) >+{ >+ vec4 par[3]; >+ vec4 ret = vec4(0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, vec4(1.0, 1.0, 1.0, 1.0)); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, vec4(0.0, 0.0, 0.0, 0.0)) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definitions. >+vec4 function(out vec4 par[3]) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, vec4(0.0, 0.0, 0.0, 0.0)); >+ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+} >+ >+bool is_all(const in vec4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in vec4 array[3], const in vec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out vec4 array[3], const in vec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_out_vec4_array_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_out_vec4_array_vert.vert >new file mode 100644 >index 00000000000..df37032afb8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_out_vec4_array_vert.vert >@@ -0,0 +1,102 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declarations. >+vec4 function(out vec4 par[3]); >+bool is_all(const in vec4 par, const in float value); >+bool is_all(const in vec4 array[3], const in vec4 value); >+void set_all(out vec4 array[3], const in vec4 value); >+ >+void main (void) >+{ >+ vec4 par[3]; >+ vec4 ret = vec4(0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ // Initialize the entire array to 1.0. >+ set_all(par, vec4(1.0, 1.0, 1.0, 1.0)); >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, vec4(0.0, 0.0, 0.0, 0.0)) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definitions. >+vec4 function(out vec4 par[3]) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, vec4(0.0, 0.0, 0.0, 0.0)); >+ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+} >+ >+bool is_all(const in vec4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+bool is_all(const in vec4 array[3], const in vec4 value) >+{ >+ bool ret = true; >+ >+ if(array[0] != value) >+ ret = false; >+ if(array[1] != value) >+ ret = false; >+ if(array[2] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out vec4 array[3], const in vec4 value) >+{ >+ array[0] = value; >+ array[1] = value; >+ array[2] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_out_vec4_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_out_vec4_empty_frag.frag >new file mode 100644 >index 00000000000..403d8756505 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_out_vec4_empty_frag.frag >@@ -0,0 +1,85 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+// Function declaration. >+vec4 function(out vec4 par); >+bool is_all(const in vec4 par, const in float value); >+void set_all(out vec4 par, const in float value); >+ >+void main (void) >+{ >+ vec4 par = vec4(1.0, 1.0, 1.0, 1.0); >+ vec4 ret = vec4(0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, 0.0) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+vec4 function(out vec4 par) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+} >+ >+bool is_all(const in vec4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out vec4 par, const in float value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_out_vec4_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_out_vec4_empty_vert.vert >new file mode 100644 >index 00000000000..070945644da >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/vec4_empty_out_vec4_empty_vert.vert >@@ -0,0 +1,85 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+// Function declaration. >+vec4 function(out vec4 par); >+bool is_all(const in vec4 par, const in float value); >+void set_all(out vec4 par, const in float value); >+ >+void main (void) >+{ >+ vec4 par = vec4(1.0, 1.0, 1.0, 1.0); >+ vec4 ret = vec4(0.0, 0.0, 0.0, 0.0); >+ >+ float gray = 0.0; >+ >+ ret = function(par); >+ >+ // The parameter should be changed by the function and the function should return 1.0. >+ if(is_all(par, 0.0) && is_all(ret, 1.0)) >+ { >+ gray = 1.0; >+ } >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+vec4 function(out vec4 par) >+{ >+ // Test parameter qualifier (default is "in"). >+ set_all(par, 0.0); >+ >+ return vec4(1.0, 1.0, 1.0, 1.0); >+} >+ >+bool is_all(const in vec4 par, const in float value) >+{ >+ bool ret = true; >+ >+ if(par[0] != value) >+ ret = false; >+ if(par[1] != value) >+ ret = false; >+ if(par[2] != value) >+ ret = false; >+ if(par[3] != value) >+ ret = false; >+ >+ return ret; >+} >+ >+void set_all(out vec4 par, const in float value) >+{ >+ par[0] = value; >+ par[1] = value; >+ par[2] = value; >+ par[3] = value; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/void_empty_empty_void_empty_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/void_empty_empty_void_empty_frag.frag >new file mode 100644 >index 00000000000..c926874adbd >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/void_empty_empty_void_empty_frag.frag >@@ -0,0 +1,49 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+float gray = 0.0; >+ >+// Function declaration. >+void function(void); >+ >+void main (void) >+{ >+ gray = 0.0; >+ >+ function(); >+ >+ gl_FragColor = vec4(gray, gray, gray, 1.0); >+} >+ >+// Function definition. >+void function(void) >+{ >+ gray = 1.0; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/void_empty_empty_void_empty_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/void_empty_empty_void_empty_vert.vert >new file mode 100644 >index 00000000000..ebb2711cee2 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/functions/void_empty_empty_void_empty_vert.vert >@@ -0,0 +1,49 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+float gray = 0.0; >+ >+// Function declaration. >+void function(void); >+ >+void main (void) >+{ >+ gray = 0.0; >+ >+ function(); >+ >+ color = vec4(gray, gray, gray, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >+ >+// Function definition. >+void function(void) >+{ >+ gray = 1.0; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_001_to_003.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_001_to_003.html >new file mode 100644 >index 00000000000..c0a41c98284 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_001_to_003.html >@@ -0,0 +1,110 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: gl_FragCoord_001_to_003.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "gl_FragCoord_xy_frag_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "gl_FragCoord_xy_frag.frag" >+ }, >+ "name": "gl_FragCoord_xy_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "gl_FragCoord_z_frag_ref.vert", >+ "fragmentShader": "gl_FragCoord_z_frag_ref.frag", >+ "builtin_uniforms": { >+ "min_required": 2, >+ "valid_values": [ >+ "gl_DepthRange.near", >+ "gl_DepthRange.far", >+ "gl_DepthRange.diff" >+ ], >+ } >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "gl_FragCoord_z_frag.frag" >+ }, >+ "name": "gl_FragCoord_z_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "uniforms": { >+ "result": { >+ "count": 1, >+ "type": "uniform4fv", >+ "value": [ >+ 0.5, >+ 0.5, >+ 0.5, >+ 1.0 >+ ] >+ } >+ }, >+ "fragmentShader": "../default/expected.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "gl_FragCoord_w_frag.frag" >+ }, >+ "name": "gl_FragCoord_w_frag.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_w_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_w_frag.frag >new file mode 100644 >index 00000000000..3efa089c7a5 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_w_frag.frag >@@ -0,0 +1,32 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+void main(void) >+{ >+ gl_FragColor = vec4(vec3(gl_FragCoord.w), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_xy_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_xy_frag.frag >new file mode 100644 >index 00000000000..722b9a70ead >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_xy_frag.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+uniform float viewportwidth; >+uniform float viewportheight; >+ >+void main(void) >+{ >+ // The image width is 500 so scale the position to 0...1 for color >+ gl_FragColor = vec4(gl_FragCoord.x /viewportwidth , gl_FragCoord.y/viewportheight, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_xy_frag_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_xy_frag_ref.frag >new file mode 100644 >index 00000000000..29a66e1b0b6 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_xy_frag_ref.frag >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main(void) >+{ >+ // The image width is 500x500 and the rectangle is 434x434 >+ // The green component corresponds to x (0...1 left to right) and the >+ // blue component corresponds to y (0...1 bottom to top) >+ gl_FragColor = vec4((434.0 / 500.0) * (color.gb - 0.5) + 0.5, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_z_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_z_frag.frag >new file mode 100644 >index 00000000000..a18d52494fc >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_z_frag.frag >@@ -0,0 +1,32 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+void main(void) >+{ >+ gl_FragColor = vec4(vec3(gl_FragCoord.z), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_z_frag_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_z_frag_ref.frag >new file mode 100644 >index 00000000000..7be3a42faad >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_z_frag_ref.frag >@@ -0,0 +1,42 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 position; >+ >+void main(void) >+{ >+ // Normalized device coordinates >+ float z = position.z / position.w; >+ float f = gl_DepthRange.far; >+ float n = gl_DepthRange.near; >+ >+ // Window coordinates >+ z = ((f - n) / 2.0) * z + (f + n) / 2.0; >+ >+ gl_FragColor = vec4(vec3(z), 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_z_frag_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_z_frag_ref.vert >new file mode 100644 >index 00000000000..2779f89e2c8 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_z_frag_ref.vert >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 position; >+ >+void main(void) >+{ >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+ >+ // Vertex's clip coordinates >+ position = gl_Position; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/input.run.txt >new file mode 100644 >index 00000000000..588cde7bff1 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FragCoord/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+gl_FragCoord_001_to_003.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FrontFacing/gl_FrontFacing_001_to_001.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FrontFacing/gl_FrontFacing_001_to_001.html >new file mode 100644 >index 00000000000..bf5403b3426 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FrontFacing/gl_FrontFacing_001_to_001.html >@@ -0,0 +1,64 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: gl_FrontFacing_001_to_001.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "frontbacksquare", >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "gl_FrontFacing_frag.frag" >+ }, >+ "name": "gl_FrontFacing_frag.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FrontFacing/gl_FrontFacing_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FrontFacing/gl_FrontFacing_frag.frag >new file mode 100644 >index 00000000000..0c8d629ba2e >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FrontFacing/gl_FrontFacing_frag.frag >@@ -0,0 +1,35 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+void main(void) >+{ >+ if(gl_FrontFacing) >+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); >+ else >+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FrontFacing/input.run.txt b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FrontFacing/input.run.txt >new file mode 100644 >index 00000000000..6244419195c >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/gl_FrontFacing/input.run.txt >@@ -0,0 +1,2 @@ >+# this file is auto-generated. DO NOT EDIT. >+gl_FrontFacing_001_to_001.html >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_001_to_008.html b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_001_to_008.html >new file mode 100644 >index 00000000000..689d35a148d >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_001_to_008.html >@@ -0,0 +1,155 @@ >+<!DOCTYPE html> >+<!-- this file is auto-generated. DO NOT EDIT. >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+--> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>WebGL GLSL conformance test: greaterThan_001_to_008.html</title> >+<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> >+<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> >+<script src="../../../../js/js-test-pre.js"></script> >+<script src="../../../../js/webgl-test-utils.js"></script> >+<script src="../../ogles-utils.js"></script> >+</head> >+<body> >+<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> >+<div id="description"></div> >+<div id="console"></div> >+</body> >+<script> >+"use strict"; >+OpenGLESTestRunner.run({ >+ "tests": [ >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "greaterThan_vec2_frag_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "greaterThan_vec2_frag.frag" >+ }, >+ "name": "greaterThan_vec2_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "greaterThan_vec2_vert_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "greaterThan_vec2_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "greaterThan_vec2_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "greaterThan_vec3_frag_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "greaterThan_vec3_frag.frag" >+ }, >+ "name": "greaterThan_vec3_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "greaterThan_vec3_vert_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "greaterThan_vec3_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "greaterThan_vec3_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "greaterThan_ivec2_frag_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "greaterThan_ivec2_frag.frag" >+ }, >+ "name": "greaterThan_ivec2_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "greaterThan_ivec2_vert_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "greaterThan_ivec2_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "greaterThan_ivec2_vert.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "greaterThan_ivec3_frag_ref.frag" >+ }, >+ "model": null, >+ "testProgram": { >+ "vertexShader": "../default/default.vert", >+ "fragmentShader": "greaterThan_ivec3_frag.frag" >+ }, >+ "name": "greaterThan_ivec3_frag.test.html", >+ "pattern": "compare" >+ }, >+ { >+ "referenceProgram": { >+ "vertexShader": "greaterThan_ivec3_vert_ref.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "model": "grid", >+ "testProgram": { >+ "vertexShader": "greaterThan_ivec3_vert.vert", >+ "fragmentShader": "../default/default.frag" >+ }, >+ "name": "greaterThan_ivec3_vert.test.html", >+ "pattern": "compare" >+ } >+ ] >+}); >+var successfullyParsed = true; >+</script> >+</html> >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_ivec2_frag.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_ivec2_frag.frag >new file mode 100644 >index 00000000000..1a1f2f3b77f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_ivec2_frag.frag >@@ -0,0 +1,36 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = floor(10.0 * color.rg - 4.5); // round to the nearest integer >+ vec2 result = vec2(greaterThan(ivec2(c), ivec2(0))); >+ gl_FragColor = vec4(result, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_ivec2_frag_ref.frag b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_ivec2_frag_ref.frag >new file mode 100644 >index 00000000000..055d2c28e74 >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_ivec2_frag_ref.frag >@@ -0,0 +1,46 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+#ifdef GL_ES >+precision mediump float; >+#endif >+varying vec4 color; >+ >+bvec2 gt(in ivec2 a, in ivec2 b) >+{ >+ bvec2 result; >+ if(a[0] > b[0]) result[0] = true; >+ else result[0] = false; >+ if(a[1] > b[1]) result[1] = true; >+ else result[1] = false; >+ return result; >+} >+ >+void main (void) >+{ >+ vec2 c = floor(10.0 * color.rg - 4.5); // round to the nearest integer >+ vec2 result = vec2(gt(ivec2(c), ivec2(0))); >+ gl_FragColor = vec4(result, 0.0, 1.0); >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_ivec2_vert.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_ivec2_vert.vert >new file mode 100644 >index 00000000000..f883a87a25f >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_ivec2_vert.vert >@@ -0,0 +1,37 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >+** Permission is hereby granted, free of charge, to any person obtaining a >+** copy of this software and/or associated documentation files (the >+** "Materials"), to deal in the Materials without restriction, including >+** without limitation the rights to use, copy, modify, merge, publish, >+** distribute, sublicense, and/or sell copies of the Materials, and to >+** permit persons to whom the Materials are furnished to do so, subject to >+** the following conditions: >+** >+** The above copyright notice and this permission notice shall be included >+** in all copies or substantial portions of the Materials. >+** >+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. >+*/ >+ >+ >+attribute vec4 gtf_Color; >+attribute vec4 gtf_Vertex; >+uniform mat4 gtf_ModelViewProjectionMatrix; >+varying vec4 color; >+ >+void main (void) >+{ >+ vec2 c = floor(10.0 * gtf_Color.rg - 4.5); // round to the nearest integer >+ vec2 result = vec2(greaterThan(ivec2(c), ivec2(0))); >+ color = vec4(result, 0.0, 1.0); >+ gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; >+} >diff --git a/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_ivec2_vert_ref.vert b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_ivec2_vert_ref.vert >new file mode 100644 >index 00000000000..5c62957a35a >--- /dev/null >+++ b/LayoutTests/webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/greaterThan/greaterThan_ivec2_vert_ref.vert >@@ -0,0 +1,47 @@ >+ >+/* >+** Copyright (c) 2012 The Khronos Group Inc. >+** >